1# OpenThread CLI Reference
2
3The OpenThread CLI exposes configuration and management APIs via a command line interface. Use the CLI to play with OpenThread, which can also be used with additional application code. The OpenThread test scripts use the CLI to execute test cases.
4
5## Separator and escaping characters
6
7The whitespace character (`' '`) is used to delimit the command name and the different arguments, together with tab (`'\t'`) and new line characters (`'\r'`, `'\n'`).
8
9Some arguments might require to accept whitespaces on them. For those cases the backslash character (`'\'`) can be used to escape separators or the backslash itself.
10
11Example:
12
13```bash
14> networkname Test\ Network
15Done
16> networkname
17Test Network
18Done
19>
20```
21
22## OpenThread Command List
23
24- [ba](#ba)
25- [bbr](#bbr)
26- [br](README_BR.md)
27- [bufferinfo](#bufferinfo)
28- [ccathreshold](#ccathreshold)
29- [channel](#channel)
30- [child](#child-list)
31- [childip](#childip)
32- [childmax](#childmax)
33- [childsupervision](#childsupervision-interval)
34- [childtimeout](#childtimeout)
35- [coap](README_COAP.md)
36- [coaps](README_COAPS.md)
37- [coex](#coex)
38- [commissioner](README_COMMISSIONER.md)
39- [contextreusedelay](#contextreusedelay)
40- [counters](#counters)
41- [csl](#csl)
42- [dataset](README_DATASET.md)
43- [delaytimermin](#delaytimermin)
44- [detach](#detach)
45- [deviceprops](#deviceprops)
46- [diag](#diag)
47- [discover](#discover-channel)
48- [dns](#dns-config)
49- [domainname](#domainname)
50- [dua](#dua-iid)
51- [eidcache](#eidcache)
52- [eui64](#eui64)
53- [extaddr](#extaddr)
54- [extpanid](#extpanid)
55- [factoryreset](#factoryreset)
56- [fake](#fake)
57- [fem](#fem)
58- [history](README_HISTORY.md)
59- [ifconfig](#ifconfig)
60- [instanceid](#instanceid)
61- [ipaddr](#ipaddr)
62- [ipmaddr](#ipmaddr)
63- [joiner](README_JOINER.md)
64- [joinerport](#joinerport-port)
65- [keysequence](#keysequence-counter)
66- [leaderdata](#leaderdata)
67- [leaderweight](#leaderweight)
68- [linkmetrics](#linkmetrics-mgmt-ipaddr-enhanced-ack-clear)
69- [linkmetricsmgr](#linkmetricsmgr-disable)
70- [locate](#locate)
71- [log](#log-filename-filename)
72- [mac](#mac-retries-direct)
73- [macfilter](#macfilter)
74- [meshdiag](#meshdiag-topology)
75- [mliid](#mliid-iid)
76- [mlr](#mlr-reg-ipaddr--timeout)
77- [mode](#mode)
78- [multiradio](#multiradio)
79- [nat64](#nat64-cidr)
80- [neighbor](#neighbor-list)
81- [netdata](README_NETDATA.md)
82- [netstat](#netstat)
83- [networkdiagnostic](#networkdiagnostic-get-addr-type-)
84- [networkidtimeout](#networkidtimeout)
85- [networkkey](#networkkey)
86- [networkname](#networkname)
87- [networktime](#networktime)
88- [panid](#panid)
89- [parent](#parent)
90- [parentpriority](#parentpriority)
91- [partitionid](#partitionid)
92- [ping](#ping-async--i-source-ipaddr-size-count-interval-hoplimit-timeout)
93- [platform](#platform)
94- [pollperiod](#pollperiod-pollperiod)
95- [preferrouterid](#preferrouterid-routerid)
96- [prefix](#prefix)
97- [promiscuous](#promiscuous)
98- [pskc](#pskc)
99- [pskcref](#pskcref)
100- [radio](#radio-enable)
101- [radiofilter](#radiofilter)
102- [rcp](#rcp)
103- [region](#region)
104- [releaserouterid](#releaserouterid-routerid)
105- [reset](#reset)
106- [rloc16](#rloc16)
107- [route](#route)
108- [router](#router-list)
109- [routerdowngradethreshold](#routerdowngradethreshold)
110- [routereligible](#routereligible)
111- [routerselectionjitter](#routerselectionjitter)
112- [routerupgradethreshold](#routerupgradethreshold)
113- [childrouterlinks](#childrouterlinks)
114- [scan](#scan-channel)
115- [service](#service)
116- [singleton](#singleton)
117- [sntp](#sntp-query-sntp-server-ip-sntp-server-port)
118- [state](#state)
119- [srp](README_SRP.md)
120- [tcp](README_TCP.md)
121- [thread](#thread-start)
122- [timeinqueue](#timeinqueue)
123- [trel](#trel)
124- [tvcheck](#tvcheck-enable)
125- [txpower](#txpower)
126- [udp](README_UDP.md)
127- [unsecureport](#unsecureport-add-port)
128- [uptime](#uptime)
129- [vendor](#vendor-name)
130- [version](#version)
131
132## OpenThread Command Details
133
134### bbr
135
136Show current Primary Backbone Router information for Thread 1.2 device.
137
138```bash
139> bbr
140BBR Primary:
141server16: 0xE400
142seqno:    10
143delay:    120 secs
144timeout:  300 secs
145Done
146```
147
148```bash
149> bbr
150BBR Primary: None
151Done
152```
153
154### bbr mgmt dua \<status\|coap-code\> [meshLocalIid]
155
156Configure the response status for DUA.req with meshLocalIid in payload. Without meshLocalIid, simply respond any coming DUA.req next with the specified status or COAP code.
157
158Only for testing/reference device.
159
160known status value:
161
162- 0: ST_DUA_SUCCESS
163- 1: ST_DUA_REREGISTER
164- 2: ST_DUA_INVALID
165- 3: ST_DUA_DUPLICATE
166- 4: ST_DUA_NO_RESOURCES
167- 5: ST_DUA_BBR_NOT_PRIMARY
168- 6: ST_DUA_GENERAL_FAILURE
169- 160: COAP code 5.00
170
171```bash
172> bbr mgmt dua 1 2f7c235e5025a2fd
173Done
174> bbr mgmt dua 160
175Done
176```
177
178### bbr mgmt mlr listener
179
180Show the Multicast Listeners.
181
182Only for testing/reference Backbone Router device.
183
184```bash
185> bbr mgmt mlr listener
186ff04:0:0:0:0:0:0:abcd 3534000
187ff04:0:0:0:0:0:0:eeee 3537610
188Done
189```
190
191### bbr mgmt mlr listener add \<ipaddr\> \[\<timeout\>\]
192
193Add a Multicast Listener with a given IPv6 multicast address and timeout (in seconds).
194
195Only for testing/reference Backbone Router device.
196
197```bash
198> bbr mgmt mlr listener add ff04::1
199Done
200> bbr mgmt mlr listener add ff04::2 300
201Done
202> bbr mgmt mlr listener
203ff04:0:0:0:0:0:0:2 261
204ff04:0:0:0:0:0:0:1 3522
205Done
206```
207
208### bbr mgmt mlr listener clear
209
210Removes all the Multicast Listeners.
211
212Only for testing/reference Backbone Router device.
213
214```bash
215> bbr mgmt mlr listener clear
216Done
217> bbr mgmt mlr listener
218Done
219```
220
221### bbr mgmt mlr response \<status\>
222
223Configure the response status for the next MLR.req.
224
225Only for testing/reference device.
226
227Known status values:
228
229- 0: ST_MLR_SUCCESS
230- 2: ST_MLR_INVALID
231- 3: ST_MLR_NO_PERSISTENT
232- 4: ST_MLR_NO_RESOURCES
233- 5: ST_MLR_BBR_NOT_PRIMARY
234- 6: ST_MLR_GENERAL_FAILURE
235
236```bash
237> bbr mgmt mlr response 2
238Done
239```
240
241### bbr state
242
243Show local Backbone state ([`Disabled`,`Primary`, `Secondary`]) for Thread 1.2 FTD.
244
245`OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
246
247```bash
248> bbr state
249Disabled
250Done
251
252> bbr state
253Primary
254Done
255
256> bbr state
257Secondary
258Done
259```
260
261### bbr enable
262
263Enable Backbone Router Service for Thread 1.2 FTD. `SRV_DATA.ntf` would be triggered for attached device if there is no Backbone Router Service in Thread Network Data.
264
265`OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
266
267```bash
268> bbr enable
269Done
270```
271
272### bbr disable
273
274Disable Backbone Router Service for Thread 1.2 FTD. `SRV_DATA.ntf` would be triggered if Backbone Router is Primary state. o `OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
275
276```bash
277> bbr disable
278Done
279```
280
281### bbr register
282
283Register Backbone Router Service for Thread 1.2 FTD. `SRV_DATA.ntf` would be triggered for attached device.
284
285`OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
286
287```bash
288> bbr register
289Done
290```
291
292### bbr config
293
294Show local Backbone Router configuration for Thread 1.2 FTD.
295
296`OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
297
298```bash
299> bbr config
300seqno:    10
301delay:    120 secs
302timeout:  300 secs
303Done
304```
305
306### bbr config \[seqno \<seqno\>\] \[delay \<delay\>\] \[timeout \<timeout\>\]
307
308Configure local Backbone Router configuration for Thread 1.2 FTD. `bbr register` should be issued explicitly to register Backbone Router service to Leader for Secondary Backbone Router. `SRV_DATA.ntf` would be initiated automatically if BBR Dataset changes for Primary Backbone Router.
309
310`OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
311
312```bash
313> bbr config seqno 20 delay 30
314Done
315```
316
317### bbr jitter
318
319Show jitter (in seconds) for Backbone Router registration for Thread 1.2 FTD.
320
321`OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
322
323```bash
324> bbr jitter
32520
326Done
327```
328
329### bbr jitter \<jitter\>
330
331Set jitter (in seconds) for Backbone Router registration for Thread 1.2 FTD.
332
333`OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE` is required.
334
335```bash
336> bbr jitter 10
337Done
338```
339
340### ba
341
342Show current Border Agent information.
343
344### ba port
345
346Print border agent service port.
347
348```bash
349> ba port
35049152
351Done
352```
353
354### ba state
355
356Print border agent state.
357
358```bash
359> ba state
360Started
361Done
362```
363
364### bufferinfo
365
366Show the current message buffer information.
367
368- The `total` shows total number of message buffers in pool.
369- The `free` shows the number of free message buffers.
370- The `max-used` shows the maximum number of used buffers at the same time since OT stack initialization or last `bufferinfo reset`.
371- This is then followed by info about different queues used by OpenThread stack, each line representing info about a queue.
372  - The first number shows number messages in the queue.
373  - The second number shows number of buffers used by all messages in the queue.
374  - The third number shows total number of bytes of all messages in the queue.
375
376```bash
377> bufferinfo
378total: 40
379free: 40
380max-used: 5
3816lo send: 0 0 0
3826lo reas: 0 0 0
383ip6: 0 0 0
384mpl: 0 0 0
385mle: 0 0 0
386coap: 0 0 0
387coap secure: 0 0 0
388application coap: 0 0 0
389Done
390```
391
392### bufferinfo reset
393
394Reset the message buffer counter tracking maximum number buffers in use at the same time.
395
396```bash
397> bufferinfo reset
398Done
399```
400
401### ccathreshold
402
403Get the CCA threshold in dBm measured at antenna connector per IEEE 802.15.4 - 2015 section 10.1.4.
404
405```bash
406> ccathreshold
407-75 dBm
408Done
409```
410
411### ccathreshold \<ccathreshold\>
412
413Set the CCA threshold measured at antenna connector per IEEE 802.15.4 - 2015 section 10.1.4.
414
415```bash
416> ccathreshold -62
417Done
418```
419
420### channel
421
422Get the IEEE 802.15.4 Channel value.
423
424```bash
425> channel
42611
427Done
428```
429
430### channel \<channel\>
431
432Set the IEEE 802.15.4 Channel value.
433
434```bash
435> channel 11
436Done
437```
438
439### channel manager
440
441Get channel manager state.
442
443`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` is required.
444
445```bash
446channel: 11
447auto: 1
448delay: 120
449interval: 10800
450supported: { 11-26}
451favored: { 11-26}
452Done
453```
454
455### channel manager change \<channel\>
456
457Initiate a channel change with the channel manager.
458
459`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` is required.
460
461```bash
462> channel manager change 11
463channel manager change 11
464Done
465```
466
467### channel manager select \<skip quality check (boolean)\>
468
469Request a channel selection with the channel manager.
470
471`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` and `OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` are required.
472
473```bash
474> channel manager select 1
475channel manager select 1
476Done
477```
478
479### channel manager auto \<enable (boolean)\>
480
481Enable/disable the auto-channel-selection functionality.
482
483`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` and `OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` are required.
484
485```bash
486> channel manager auto 1
487channel manager auto 1
488Done
489```
490
491### channel manager delay \<delay\>
492
493Set the channel change delay (in seconds).
494
495`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` and `OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` are required.
496
497```bash
498> channel manager delay 120
499channel manager delay 120
500Done
501```
502
503### channel manager interval \<interval\>
504
505Set the auto-channel-selection interval (in seconds).
506
507`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` and `OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` are required.
508
509```bash
510> channel manager interval 10800
511channel manager interval 10800
512Done
513```
514
515### channel manager supported \<mask\>
516
517Set the supported channel mask for the auto-channel-selection.
518
519`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` and `OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` are required.
520
521```bash
522> channel manager supported 0x7fffc00
523channel manager supported 0x7fffc00
524Done
525```
526
527### channel manager favored \<mask\>
528
529Set the favored channel mask for the auto-channel-selection.
530
531`OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE` and `OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` are required.
532
533```bash
534> channel manager favored 0x7fffc00
535channel manager favored 0x7fffc00
536Done
537```
538
539### channel monitor
540
541Get current channel monitor state and channel occupancy.
542
543`OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` is required.
544
545```bash
546> channel monitor
547channel monitor
548enabled: 1
549interval: 41000
550threshold: -75
551window: 960
552count: 10552
553occupancies:
554ch 11 (0x0cb7)  4.96% busy
555ch 12 (0x2e2b) 18.03% busy
556ch 13 (0x2f54) 18.48% busy
557ch 14 (0x0fef)  6.22% busy
558ch 15 (0x1536)  8.28% busy
559ch 16 (0x1746)  9.09% busy
560ch 17 (0x0b8b)  4.50% busy
561ch 18 (0x60a7) 37.75% busy
562ch 19 (0x0810)  3.14% busy
563ch 20 (0x0c2a)  4.75% busy
564ch 21 (0x08dc)  3.46% busy
565ch 22 (0x101d)  6.29% busy
566ch 23 (0x0092)  0.22% busy
567ch 24 (0x0028)  0.06% busy
568ch 25 (0x0063)  0.15% busy
569ch 26 (0x058c)  2.16% busy
570
571Done
572```
573
574### channel monitor start
575
576Start the channel monitor.
577
578`OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` is required.
579
580```bash
581> channel monitor start
582channel monitor start
583Done
584```
585
586### channel monitor stop
587
588Stop the channel monitor.
589
590`OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE` is required.
591
592```bash
593> channel monitor stop
594channel monitor stop
595Done
596```
597
598### channel preferred
599
600Get preferred channel mask.
601
602```bash
603> channel preferred
6040x7fff800
605Done
606```
607
608### channel supported
609
610Get supported channel mask.
611
612```bash
613> channel supported
6140x7fff800
615Done
616```
617
618### child list
619
620List attached Child IDs.
621
622```bash
623> child list
6241 2 3 6 7 8
625Done
626```
627
628### child table
629
630Print table of attached children.
631
632```bash
633> child table
634| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|D|N|Ver|CSL|QMsgCnt|Suprvsn| Extended MAC     |
635+-----+--------+------------+------------+-------+------+-+-+-+---+---+-------+-------+------------------+
636|   1 | 0xc801 |        240 |         24 |     3 |  131 |1|0|0|  3| 0 |     0 |   129 | 4ecede68435358ac |
637|   2 | 0xc802 |        240 |          2 |     3 |  131 |0|0|0|  3| 1 |     0 |     0 | a672a601d2ce37d8 |
638Done
639```
640
641### child \<id\>
642
643Print diagnostic information for an attached Thread Child. The `id` may be a Child ID or an RLOC16.
644
645```bash
646> child 1
647Child ID: 1
648Rloc: 9c01
649Ext Addr: e2b3540590b0fd87
650Mode: rn
651CSL Synchronized: 1
652Net Data: 184
653Timeout: 100
654Age: 0
655Link Quality In: 3
656RSSI: -20
657Supervision Interval: 129
658Done
659```
660
661### childip
662
663Get the list of IP addresses stored for MTD children.
664
665```bash
666> childip
6673401: fdde:ad00:beef:0:3037:3e03:8c5f:bc0c
668Done
669```
670
671### childip max
672
673Get the maximum number of IP addresses that each MTD child may register with this device as parent.
674
675```bash
676> childip max
6774
678Done
679```
680
681### childip max \<count\>
682
683Set the maximum number of IP addresses that each MTD child may register with this device as parent. 0 to clear the setting and restore the default.
684
685`OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is required.
686
687```bash
688> childip max 2
689Done
690```
691
692### childmax
693
694Get the Thread maximum number of allowed children.
695
696```bash
697> childmax
6985
699Done
700```
701
702### childmax \<count\>
703
704Set the Thread maximum number of allowed children.
705
706```bash
707> childmax 2
708Done
709```
710
711### childsupervision interval
712
713Get the Child Supervision interval value on the child.
714
715Child Supervision feature provides a mechanism for parent to ensure that a message is sent to each sleepy child within the supervision interval. If there is no transmission to the child within the supervision interval, OpenThread enqueues and sends a Child Supervision Message to the child.
716
717```bash
718> childsupervision interval
71930
720Done
721```
722
723### childsupervision interval \<interval\>
724
725Set the Child Supervision interval value on the child.
726
727```bash
728> childsupervision interval 30
729Done
730```
731
732### childsupervision checktimeout
733
734Get the Child Supervision Check Timeout value on the child.
735
736If the device is a sleepy child and it does not hear from its parent within the specified check timeout, it initiates the re-attach process (MLE Child Update Request/Response exchange with its parent).
737
738```bash
739> childsupervision checktimeout
74030
741Done
742```
743
744### childsupervision checktimeout \<timeout\>
745
746Set the Child Supervision Check Timeout value on the child.
747
748```bash
749> childsupervision checktimeout 30
750Done
751```
752
753### childsupervision failcounter
754
755Get the current value of supervision check timeout failure counter.
756
757The counter tracks the number of supervision check failures on the child. It is incremented when the child does not hear from its parent within the specified check timeout interval.
758
759```bash
760> childsupervision failcounter
7610
762Done
763```
764
765### childsupervision failcounter reset
766
767Reset the supervision check timeout failure counter to zero.
768
769```bash
770> childsupervision failcounter reset
771Done
772```
773
774### childtimeout
775
776Get the Thread Child Timeout value.
777
778```bash
779> childtimeout
780300
781Done
782```
783
784### childtimeout \<timeout\>
785
786Set the Thread Child Timeout value.
787
788```bash
789> childtimeout 300
790Done
791```
792
793### coex
794
795Get the coex status.
796
797`OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE` is required.
798
799```bash
800> coex
801Enabled
802Done
803```
804
805### coex disable
806
807Disable coex.
808
809`OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE` is required.
810
811```bash
812> coex disable
813Done
814```
815
816### coex enable
817
818Enable coex.
819
820`OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE` is required.
821
822```bash
823> coex enable
824Done
825```
826
827### coex metrics
828
829Show coex metrics.
830
831`OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE` is required.
832
833```bash
834> coex metrics
835Stopped: false
836Grant Glitch: 0
837Transmit metrics
838    Request: 0
839    Grant Immediate: 0
840    Grant Wait: 0
841    Grant Wait Activated: 0
842    Grant Wait Timeout: 0
843    Grant Deactivated During Request: 0
844    Delayed Grant: 0
845    Average Request To Grant Time: 0
846Receive metrics
847    Request: 0
848    Grant Immediate: 0
849    Grant Wait: 0
850    Grant Wait Activated: 0
851    Grant Wait Timeout: 0
852    Grant Deactivated During Request: 0
853    Delayed Grant: 0
854    Average Request To Grant Time: 0
855    Grant None: 0
856Done
857```
858
859### contextreusedelay
860
861Get the CONTEXT_ID_REUSE_DELAY value.
862
863```bash
864> contextreusedelay
86511
866Done
867```
868
869### contextreusedelay \<delay\>
870
871Set the CONTEXT_ID_REUSE_DELAY value.
872
873```bash
874> contextreusedelay 11
875Done
876```
877
878### counters
879
880Get the supported counter names.
881
882```bash
883> counters
884br
885ip
886mac
887mle
888Done
889```
890
891### counters \<countername\>
892
893Get the counter value.
894
895Note:
896
897- `OPENTHREAD_CONFIG_UPTIME_ENABLE` is required for MLE role time tracking in `counters mle`
898- `OPENTHREAD_CONFIG_IP6_BR_COUNTERS_ENABLE` is required for `counters br`
899
900```bash
901> counters mac
902TxTotal: 10
903    TxUnicast: 3
904    TxBroadcast: 7
905    TxAckRequested: 3
906    TxAcked: 3
907    TxNoAckRequested: 7
908    TxData: 10
909    TxDataPoll: 0
910    TxBeacon: 0
911    TxBeaconRequest: 0
912    TxOther: 0
913    TxRetry: 0
914    TxErrCca: 0
915    TxErrBusyChannel: 0
916RxTotal: 2
917    RxUnicast: 1
918    RxBroadcast: 1
919    RxData: 2
920    RxDataPoll: 0
921    RxBeacon: 0
922    RxBeaconRequest: 0
923    RxOther: 0
924    RxAddressFiltered: 0
925    RxDestAddrFiltered: 0
926    RxDuplicated: 0
927    RxErrNoFrame: 0
928    RxErrNoUnknownNeighbor: 0
929    RxErrInvalidSrcAddr: 0
930    RxErrSec: 0
931    RxErrFcs: 0
932    RxErrOther: 0
933Done
934> counters mle
935Role Disabled: 0
936Role Detached: 1
937Role Child: 0
938Role Router: 0
939Role Leader: 1
940Attach Attempts: 1
941Partition Id Changes: 1
942Better Partition Attach Attempts: 0
943Parent Changes: 0
944Time Disabled Milli: 10026
945Time Detached Milli: 6852
946Time Child Milli: 0
947Time Router Milli: 0
948Time Leader Milli: 16195
949Time Tracked Milli: 33073
950Done
951> counters ip
952TxSuccess: 10
953TxFailed: 0
954RxSuccess: 5
955RxFailed: 0
956Done
957> counters br
958Inbound Unicast: Packets 4 Bytes 320
959Inbound Multicast: Packets 0 Bytes 0
960Outbound Unicast: Packets 2 Bytes 160
961Outbound Multicast: Packets 0 Bytes 0
962RA Rx: 4
963RA TxSuccess: 2
964RA TxFailed: 0
965RS Rx: 0
966RS TxSuccess: 2
967RS TxFailed: 0
968Done
969```
970
971### counters \<countername\> reset
972
973Reset the counter value.
974
975```bash
976> counters mac reset
977Done
978> counters mle reset
979Done
980> counters ip reset
981Done
982```
983
984### csl
985
986Get the CSL configuration.
987
988CSL period is shown in microseconds.
989
990```bash
991> csl
992Channel: 11
993Period: 160000us
994Timeout: 1000s
995Done
996```
997
998### csl channel \<channel\>
999
1000Set CSL channel.
1001
1002```bash
1003> csl channel 20
1004Done
1005```
1006
1007### csl period \<period\>
1008
1009Set CSL period in microseconds. Disable CSL by setting this parameter to `0`.
1010
1011The CSL period MUST be a multiple 160 microseconds which is 802.15.4 "ten symbols time".
1012
1013```bash
1014> csl period 30000000
1015Done
1016```
1017
1018### csl timeout \<timeout\>
1019
1020Set the CSL timeout in seconds.
1021
1022```bash
1023> csl timeout 10
1024Done
1025```
1026
1027### networktime
1028
1029Get the Thread network time and the time sync parameters.
1030
1031```bash
1032> networktime
1033Network Time:     21084154us (synchronized)
1034Time Sync Period: 100s
1035XTAL Threshold:   300ppm
1036Done
1037```
1038
1039### networktime \<timesyncperiod\> \<xtalthreshold\>
1040
1041Set time sync parameters
1042
1043- timesyncperiod: The time synchronization period, in seconds.
1044- xtalthreshold: The XTAL accuracy threshold for a device to become Router-Capable device, in PPM.
1045
1046```bash
1047> networktime 100 300
1048Done
1049```
1050
1051### delaytimermin
1052
1053Get the minimal delay timer (in seconds).
1054
1055```bash
1056> delaytimermin
105730
1058Done
1059```
1060
1061### delaytimermin \<delaytimermin\>
1062
1063Set the minimal delay timer (in seconds).
1064
1065```bash
1066> delaytimermin 60
1067Done
1068```
1069
1070### detach
1071
1072Start the graceful detach process by first notifying other nodes (sending Address Release if acting as a router, or setting Child Timeout value to zero on parent if acting as a child) and then stopping Thread protocol operation.
1073
1074```bash
1075> detach
1076Finished detaching
1077Done
1078```
1079
1080### detach async
1081
1082Start the graceful detach process similar to the `detach` command without blocking and waiting for the callback indicating that detach is finished.
1083
1084```bash
1085> detach async
1086Done
1087```
1088
1089### deviceprops
1090
1091Get the current device properties.
1092
1093```bash
1094> deviceprops
1095PowerSupply      : external
1096IsBorderRouter   : yes
1097SupportsCcm      : no
1098IsUnstable       : no
1099WeightAdjustment : 0
1100Done
1101```
1102
1103### deviceprops \<power-supply\> \<is-br\> \<supports-ccm\> \<is-unstable\> \<weight-adjustment\>
1104
1105Set the device properties which are then used to determine and set the Leader Weight.
1106
1107- power-supply: `battery`, `external`, `external-stable`, or `external-unstable`.
1108- weight-adjustment: Valid range is from -16 to +16. Clamped if not within the range.
1109
1110```bash
1111> deviceprops battery 0 0 0 -5
1112Done
1113
1114> deviceprops
1115PowerSupply      : battery
1116IsBorderRouter   : no
1117SupportsCcm      : no
1118IsUnstable       : no
1119WeightAdjustment : -5
1120Done
1121
1122> leaderweight
112351
1124Done
1125```
1126
1127### discover \[channel\]
1128
1129Perform an MLE Discovery operation.
1130
1131- channel: The channel to discover on. If no channel is provided, the discovery will cover all valid channels.
1132
1133```bash
1134> discover
1135| J | Network Name     | Extended PAN     | PAN  | MAC Address      | Ch | dBm | LQI |
1136+---+------------------+------------------+------+------------------+----+-----+-----+
1137| 0 | OpenThread       | dead00beef00cafe | ffff | f1d92a82c8d8fe43 | 11 | -20 |   0 |
1138Done
1139```
1140
1141### dns config
1142
1143Get the default query config used by DNS client.
1144
1145The config includes
1146
1147- Server IPv6 address and port
1148- Response timeout in msec (wait time to rx response)
1149- Maximum tx attempts before reporting failure
1150- Boolean flag to indicate whether the server can resolve the query recursively or not.
1151- Service resolution mode which specifies which records to query. Possible options are:
1152  - `srv` : Query for SRV record only.
1153  - `txt` : Query for TXT record only.
1154  - `srv_txt` : Query for both SRV and TXT records in the same message.
1155  - `srv_txt_sep`: Query in parallel for SRV and TXT using separate messages.
1156  - `srv_txt_opt`: Query for TXT/SRV together first, if it fails then query separately.
1157- Whether to allow/disallow NAT64 address translation during address resolution (requires `OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE`)
1158- Transport protocol UDP or TCP (requires `OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE`)
1159
1160```bash
1161> dns config
1162Server: [fd00:0:0:0:0:0:0:1]:1234
1163ResponseTimeout: 5000 ms
1164MaxTxAttempts: 2
1165RecursionDesired: no
1166ServiceMode: srv_txt_opt
1167Nat64Mode: allow
1168TransportProtocol: udp
1169Done
1170>
1171```
1172
1173### dns config \[DNS server IP\] \[DNS server port\] \[response timeout (ms)\] \[max tx attempts\] \[recursion desired (boolean)\] \[service mode]
1174
1175Set the default query config.
1176
1177Service mode specifies which records to query. Possible options are:
1178
1179- `def` : Use default option.
1180- `srv` : Query for SRV record only.
1181- `txt` : Query for TXT record only.
1182- `srv_txt` : Query for both SRV and TXT records in the same message.
1183- `srv_txt_sep`: Query in parallel for SRV and TXT using separate messages.
1184- `srv_txt_opt`: Query for TXT/SRV together first, if it fails then query separately.
1185
1186To set protocol effectively to tcp `OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE` is required.
1187
1188```bash
1189> dns config fd00::1 1234 5000 2 0 srv_txt_sep tcp
1190Done
1191
1192> dns config
1193Server: [fd00:0:0:0:0:0:0:1]:1234
1194ResponseTimeout: 5000 ms
1195MaxTxAttempts: 2
1196RecursionDesired: no
1197ServiceMode: srv_txt_sep
1198Nat64Mode: allow
1199TransportProtocol: tcp
1200Done
1201```
1202
1203We can leave some of the fields as unspecified (or use value zero). The unspecified fields are replaced by the corresponding OT config option definitions `OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}` to form the default query config.
1204
1205```bash
1206> dns config fd00::2
1207Done
1208
1209> dns config
1210Server: [fd00:0:0:0:0:0:0:2]:53
1211ResponseTimeout: 3000 ms
1212MaxTxAttempts: 3
1213RecursionDesired: yes
1214Done
1215```
1216
1217### dns resolve \<hostname\> \[DNS server IP\] \[DNS server port\] \[response timeout (ms)\] \[max tx attempts\] \[recursion desired (boolean)\] \[transport protocol\]
1218
1219Send DNS Query to obtain IPv6 address for given hostname.
1220
1221The parameters after `hostname` are optional. Any unspecified (or zero) value for these optional parameters is replaced by the value from the current default config (`dns config`).
1222
1223To use tcp, `OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE` is required.
1224
1225```bash
1226> dns resolve ipv6.google.com
1227> DNS response for ipv6.google.com - 2a00:1450:401b:801:0:0:0:200e TTL: 300
1228```
1229
1230The DNS server IP can be an IPv4 address, which will be synthesized to an IPv6 address using the preferred NAT64 prefix from the network data.
1231
1232> Note: The command will return `InvalidState` when the DNS server IP is an IPv4 address but the preferred NAT64 prefix is unavailable.
1233
1234```bash
1235> dns resolve example.com 8.8.8.8
1236Synthesized IPv6 DNS server address: fdde:ad00:beef:2:0:0:808:808
1237DNS response for example.com. - fd4c:9574:3720:2:0:0:5db8:d822 TTL:20456
1238Done
1239```
1240
1241### dns resolve4 \<hostname\> \[DNS server IP\] \[DNS server port\] \[response timeout (ms)\] \[max tx attempts\] \[recursion desired (boolean)\]
1242
1243Send DNS query to obtain IPv4 address for a given hostname and provide the NAT64 synthesized IPv6 addresses for the IPv4 addresses from the query response.
1244
1245Requires `OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE`.
1246
1247The parameters after `hostname` are optional. Any unspecified (or zero) value for these optional parameters is replaced by the value from the current default config (`dns config`).
1248
1249This command requires a NAT64 prefix to be configured and present in Thread Network Data.
1250
1251For example, if a NAT64 prefix of `2001:db8:122:344::/96` is used within the Thread mesh, the outputted IPv6 address corresponds to an IPv4 address of `142.250.191.78` for the `ipv4.google.com` host:
1252
1253```bash
1254> dns resolve4 ipv4.google.com
1255> DNS response for ipv4.google.com - 2001:db8:122:344:0:0:8efa:bf4e TTL: 20456
1256```
1257
1258### dns browse \<service-name\> \[DNS server IP\] \[DNS server port\] \[response timeout (ms)\] \[max tx attempts\] \[recursion desired (boolean)\]
1259
1260Send a browse (service instance enumeration) DNS query to get the list of services for given service-name.
1261
1262The parameters after `service-name` are optional. Any unspecified (or zero) value for these optional parameters is replaced by the value from the current default config (`dns config`).
1263
1264```bash
1265> dns browse _service._udp.example.com
1266DNS browse response for _service._udp.example.com.
1267inst1
1268inst2
1269inst3
1270Done
1271```
1272
1273The detailed service info (port number, weight, host name, TXT data, host addresses) is outputted only when provided by server/resolver in the browse response (in additional Data Section). This is a SHOULD and not a MUST requirement, and servers/resolvers are not required to provide this.
1274
1275The recommended behavior, which is supported by the OpenThread DNS-SD resolver, is to only provide the additional data when there is a single instance in the response. However, users should assume that the browse response may only contain the list of matching service instances and not any detail service info. To resolve a service instance, users can use the `dns service` or `dns servicehost` commands.
1276
1277```bash
1278> dns browse _service._udp.example.com
1279DNS browse response for _service._udp.example.com.
1280inst1
1281    Port:1234, Priority:1, Weight:2, TTL:7200
1282    Host:host.example.com.
1283    HostAddress:fd00:0:0:0:0:0:0:abcd TTL:7200
1284    TXT:[a=6531, b=6c12] TTL:7300
1285Done
1286```
1287
1288```bash
1289> dns browse _airplay._tcp.default.service.arpa
1290DNS browse response for _airplay._tcp.default.service.arpa.
1291Gabe's Mac mini
1292    Port:7000, Priority:0, Weight:0, TTL:10
1293    Host:Gabes-Mac-mini.default.service.arpa.
1294    HostAddress:fd97:739d:386a:1:1c2e:d83c:fcbe:9cf4 TTL:10
1295Done
1296```
1297
1298> Note: The DNS server IP can be an IPv4 address, which will be synthesized to an IPv6 address using the preferred NAT64 prefix from the network data. The command will return `InvalidState` when the DNS server IP is an IPv4 address but the preferred NAT64 prefix is unavailable. When testing DNS-SD discovery proxy, the zone is not `local` and instead should be `default.service.arpa`.
1299
1300### dns service \<service-instance-label\> \<service-name\> \[DNS server IP\] \[DNS server port\] \[response timeout (ms)\] \[max tx attempts\] \[recursion desired (boolean)\]
1301
1302Send a service instance resolution DNS query for a given service instance. Service instance label is provided first, followed by the service name (note that service instance label can contain dot '.' character).
1303
1304The parameters after `service-name` are optional. Any unspecified (or zero) value for these optional parameters is replaced by the value from the current default config (`dns config`).
1305
1306> Note: The DNS server IP can be an IPv4 address, which will be synthesized to an IPv6 address using the preferred NAT64 prefix from the network data. The command will return `InvalidState` when the DNS server IP is an IPv4 address but the preferred NAT64 prefix is unavailable.
1307
1308### dns servicehost \<service-instance-label\> \<service-name\> \[DNS server IP\] \[DNS server port\] \[response timeout (ms)\] \[max tx attempts\] \[recursion desired (boolean)\]
1309
1310Send a service instance resolution DNS query for a given service instance with a potential follow-up address resolution for the host name discovered for the service instance (if the server/resolver does not provide AAAA/A records for the host name in the response to SRV query).
1311
1312Service instance label is provided first, followed by the service name (note that service instance label can contain dot '.' character).
1313
1314The parameters after `service-name` are optional. Any unspecified (or zero) value for these optional parameters is replaced by the value from the current default config (`dns config`).
1315
1316### dns compression \[enable|disable\]
1317
1318Enable/Disable the "DNS name compression" mode.
1319
1320By default DNS name compression is enabled. When disabled, DNS names are appended as full and never compressed. This is applicable to OpenThread's DNS and SRP client/server modules.
1321
1322This is intended for testing only and available under `REFERENCE_DEVICE` config.
1323
1324Get the current "DNS name compression" mode.
1325
1326```
1327> dns compression
1328Enabled
1329```
1330
1331Set the "DNS name compression" mode.
1332
1333```
1334> dns compression disable
1335Done
1336>
1337>
1338> dns compression
1339Disabled
1340Done
1341```
1342
1343### domainname
1344
1345Get the Thread Domain Name for Thread 1.2 device.
1346
1347```bash
1348> domainname
1349Thread
1350Done
1351```
1352
1353### domainname \<name\>
1354
1355Set the Thread Domain Name for Thread 1.2 device.
1356
1357```bash
1358> domainname Test\ Thread
1359Done
1360```
1361
1362### dua iid
1363
1364Get the Interface Identifier manually specified for Thread Domain Unicast Address on Thread 1.2 device.
1365
1366```bash
1367> dua iid
13680004000300020001
1369Done
1370```
1371
1372### dua iid \<iid\>
1373
1374Set the Interface Identifier manually specified for Thread Domain Unicast Address on Thread 1.2 device.
1375
1376```bash
1377> dua iid 0004000300020001
1378Done
1379```
1380
1381### dua iid clear
1382
1383Clear the Interface Identifier manually specified for Thread Domain Unicast Address on Thread 1.2 device.
1384
1385```bash
1386> dua iid clear
1387Done
1388```
1389
1390### eidcache
1391
1392Print the EID-to-RLOC cache entries.
1393
1394```bash
1395> eidcache
1396fd49:caf4:a29f:dc0e:97fc:69dd:3c16:df7d 2000 cache canEvict=1 transTime=0 eid=fd49:caf4:a29f:dc0e:97fc:69dd:3c16:df7d
1397fd49:caf4:a29f:dc0e:97fc:69dd:3c16:df7f fffe retry canEvict=1 timeout=10 retryDelay=30
1398Done
1399```
1400
1401### eui64
1402
1403Get the factory-assigned IEEE EUI-64.
1404
1405```bash
1406> eui64
14070615aae900124b00
1408Done
1409```
1410
1411### extaddr
1412
1413Get the IEEE 802.15.4 Extended Address.
1414
1415```bash
1416> extaddr
1417dead00beef00cafe
1418Done
1419```
1420
1421### extaddr \<extaddr\>
1422
1423Set the IEEE 802.15.4 Extended Address.
1424
1425```bash
1426> extaddr dead00beef00cafe
1427dead00beef00cafe
1428Done
1429```
1430
1431### extpanid
1432
1433Get the Thread Extended PAN ID value.
1434
1435**NOTE** The current commissioning credential becomes stale after changing this value. Use [pskc](#pskc--p-keypassphrase) to reset.
1436
1437```bash
1438> extpanid
1439dead00beef00cafe
1440Done
1441```
1442
1443### extpanid \<extpanid\>
1444
1445Set the Thread Extended PAN ID value.
1446
1447```bash
1448> extpanid dead00beef00cafe
1449Done
1450```
1451
1452### factoryreset
1453
1454Delete all stored settings, and signal a platform reset.
1455
1456```bash
1457> factoryreset
1458```
1459
1460### fake
1461
1462Send fake Thread messages.
1463
1464Note: Only for certification test.
1465
1466#### fake /a/an \<dst-ipaddr\> \<target\> \<meshLocalIid\>
1467
1468```bash
1469> fake /a/an fdde:ad00:beef:0:0:ff:fe00:a800 fd00:7d03:7d03:7d03:55f2:bb6a:7a43:a03b 1111222233334444
1470Done
1471```
1472
1473### fem
1474
1475Get external FEM parameters.
1476
1477```bash
1478> fem
1479LNA gain 11 dBm
1480Done
1481```
1482
1483### fem lnagain
1484
1485Get the Rx LNA gain in dBm of the external FEM.
1486
1487```bash
1488> fem lnagain
148911
1490Done
1491```
1492
1493### fem lnagain \<LNA gain\>
1494
1495Set the Rx LNA gain in dBm of the external FEM.
1496
1497```bash
1498> fem lnagain 8
1499Done
1500```
1501
1502### ifconfig
1503
1504Show the status of the IPv6 interface.
1505
1506```bash
1507> ifconfig
1508down
1509Done
1510```
1511
1512### ifconfig up
1513
1514Bring up the IPv6 interface.
1515
1516```bash
1517> ifconfig up
1518Done
1519```
1520
1521### ifconfig down
1522
1523Bring down the IPv6 interface.
1524
1525```bash
1526> ifconfig down
1527Done
1528```
1529
1530### instanceid
1531
1532Show OpenThread instance identifier.
1533
1534```bash
1535> instanceid
1536468697314
1537Done
1538```
1539
1540### ipaddr
1541
1542List all IPv6 addresses assigned to the Thread interface.
1543
1544```bash
1545> ipaddr
1546fdde:ad00:beef:0:0:ff:fe00:0
1547fdde:ad00:beef:0:558:f56b:d688:799
1548fe80:0:0:0:f3d9:2a82:c8d8:fe43
1549Done
1550```
1551
1552Use `-v` to get more verbose information about the address.
1553
1554```bash
1555> ipaddr -v
1556fdde:ad00:beef:0:0:ff:fe00:0 origin:thread
1557fdde:ad00:beef:0:558:f56b:d688:799 origin:thread
1558fe80:0:0:0:f3d9:2a82:c8d8:fe43 origin:thread
1559Done
1560```
1561
1562### ipaddr add \<ipaddr\>
1563
1564Add an IPv6 address to the Thread interface.
1565
1566```bash
1567> ipaddr add 2001::dead:beef:cafe
1568Done
1569```
1570
1571### ipaddr del \<ipaddr\>
1572
1573Delete an IPv6 address from the Thread interface.
1574
1575```bash
1576> ipaddr del 2001::dead:beef:cafe
1577Done
1578```
1579
1580### ipaddr linklocal
1581
1582Print Thread link-local IPv6 address.
1583
1584```bash
1585> ipaddr linklocal
1586fe80:0:0:0:f3d9:2a82:c8d8:fe43
1587Done
1588```
1589
1590### ipaddr mleid
1591
1592Print Thread Mesh Local EID address.
1593
1594```bash
1595> ipaddr mleid
1596fdde:ad00:beef:0:558:f56b:d688:799
1597Done
1598```
1599
1600### ipaddr rloc
1601
1602Print Thread Routing Locator (RLOC) address.
1603
1604```bash
1605> ipaddr rloc
1606fdde:ad00:beef:0:0:ff:fe00:0
1607Done
1608```
1609
1610### ipmaddr
1611
1612List all IPv6 multicast addresses subscribed to the Thread interface.
1613
1614```bash
1615> ipmaddr
1616ff05:0:0:0:0:0:0:1
1617ff33:40:fdde:ad00:beef:0:0:1
1618ff32:40:fdde:ad00:beef:0:0:1
1619Done
1620```
1621
1622### ipmaddr add \<ipaddr\>
1623
1624Subscribe the Thread interface to the IPv6 multicast address.
1625
1626```bash
1627> ipmaddr add ff05::1
1628Done
1629```
1630
1631### ipmaddr del \<ipaddr\>
1632
1633Unsubscribe the Thread interface to the IPv6 multicast address.
1634
1635```bash
1636> ipmaddr del ff05::1
1637Done
1638```
1639
1640### ipmaddr llatn
1641
1642Get the Link-Local All Thread Nodes multicast address.
1643
1644```
1645> ipmaddr llatn
1646ff32:40:fdde:ad00:beef:0:0:1
1647Done
1648```
1649
1650### ipmaddr promiscuous
1651
1652Get multicast promiscuous mode.
1653
1654```bash
1655> ipmaddr promiscuous
1656Disabled
1657Done
1658```
1659
1660### ipmaddr promiscuous enable
1661
1662Enable multicast promiscuous mode.
1663
1664```bash
1665> ipmaddr promiscuous enable
1666Done
1667```
1668
1669### ipmaddr promiscuous disable
1670
1671Disable multicast promiscuous mode.
1672
1673```bash
1674> ipmaddr promiscuous disable
1675Done
1676```
1677
1678### ipmaddr rlatn
1679
1680Get the Realm-Local All Thread Nodes multicast address.
1681
1682```
1683> ipmaddr rlatn
1684ff33:40:fdde:ad00:beef:0:0:1
1685Done
1686```
1687
1688### joinerport \<port\>
1689
1690Set the Joiner port.
1691
1692```bash
1693> joinerport 1000
1694Done
1695```
1696
1697### keysequence counter
1698
1699Get the Thread Key Sequence Counter.
1700
1701```bash
1702> keysequence counter
170310
1704Done
1705```
1706
1707### keysequence counter \<counter\>
1708
1709Set the Thread Key Sequence Counter.
1710
1711```bash
1712> keysequence counter 10
1713Done
1714```
1715
1716### keysequence guardtime
1717
1718Get Thread Key Switch Guard Time (in hours)
1719
1720```bash
1721> keysequence guardtime
17220
1723Done
1724```
1725
1726### keysequence guardtime \<guardtime\>
1727
1728Set Thread Key Switch Guard Time (in hours) 0 means Thread Key Switch immediately if key index match
1729
1730```bash
1731> keysequence guardtime 0
1732Done
1733```
1734
1735### leaderdata
1736
1737Show the Thread Leader Data.
1738
1739```bash
1740> leaderdata
1741Partition ID: 1077744240
1742Weighting: 64
1743Data Version: 109
1744Stable Data Version: 211
1745Leader Router ID: 60
1746Done
1747```
1748
1749### leaderweight
1750
1751Get the Thread Leader Weight.
1752
1753```bash
1754> leaderweight
1755128
1756Done
1757```
1758
1759### leaderweight \<weight\>
1760
1761Set the Thread Leader Weight.
1762
1763```bash
1764> leaderweight 128
1765Done
1766```
1767
1768### linkmetrics mgmt \<ipaddr\> enhanced-ack clear
1769
1770Send a Link Metrics Management Request to clear an Enhanced-ACK Based Probing.
1771
1772- ipaddr: Peer address (SHOULD be link local address of the neighboring device).
1773
1774```bash
1775> linkmetrics mgmt fe80:0:0:0:3092:f334:1455:1ad2 enhanced-ack clear
1776Done
1777> Received Link Metrics Management Response from: fe80:0:0:0:3092:f334:1455:1ad2
1778Status: Success
1779```
1780
1781### linkmetrics mgmt \<ipaddr\> enhanced-ack register [qmr][r]
1782
1783Send a Link Metrics Management Request to register an Enhanced-ACK Based Probing.
1784
1785- ipaddr: Peer address.
1786- qmr: This specifies what metrics to query. At most two options are allowed to select (per spec 4.11.3.4.4.6).
1787  - q: Layer 2 LQI.
1788  - m: Link Margin.
1789  - r: RSSI.
1790- r: This is optional and only used for reference devices. When this option is specified, Type/Average Enum of each Type Id Flags would be set to `reserved`. This is used to verify the Probing Subject correctly handles invalid Type Id Flags. This is only available when `OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is enabled.
1791
1792```bash
1793> linkmetrics mgmt fe80:0:0:0:3092:f334:1455:1ad2 enhanced-ack register qm
1794Done
1795> Received Link Metrics Management Response from: fe80:0:0:0:3092:f334:1455:1ad2
1796Status: Success
1797
1798> linkmetrics mgmt fe80:0:0:0:3092:f334:1455:1ad2 enhanced-ack register qm r
1799Done
1800> Received Link Metrics Management Response from: fe80:0:0:0:3092:f334:1455:1ad2
1801Status: Cannot support new series
1802```
1803
1804### linkmetrics mgmt \<ipaddr\> forward \<seriesid\> [ldraX][pqmr]
1805
1806Send a Link Metrics Management Request to configure a Forward Tracking Series.
1807
1808- ipaddr: Peer address.
1809- seriesid: The Series ID.
1810- ldraX: This specifies which frames are to be accounted.
1811  - l: MLE Link Probe.
1812  - d: MAC Data.
1813  - r: MAC Data Request.
1814  - a: MAC Ack.
1815  - X: This represents none of the above flags, i.e., to stop accounting and remove the series. This can only be used without any other flags.
1816- pqmr: This specifies what metrics to query.
1817  - p: Layer 2 Number of PDUs received.
1818  - q: Layer 2 LQI.
1819  - m: Link Margin.
1820  - r: RSSI.
1821
1822```bash
1823> linkmetrics mgmt fe80:0:0:0:3092:f334:1455:1ad2 forward 1 dra pqmr
1824Done
1825> Received Link Metrics Management Response from: fe80:0:0:0:3092:f334:1455:1ad2
1826Status: SUCCESS
1827```
1828
1829### linkmetrics probe \<ipaddr\> \<seriesid\> \<length\>
1830
1831Send a MLE Link Probe message to the peer.
1832
1833- ipaddr: Peer address.
1834- seriesid: The Series ID for which this Probe message targets at.
1835- length: The length of the Probe message, valid range: [0, 64].
1836
1837```bash
1838> linkmetrics probe fe80:0:0:0:3092:f334:1455:1ad2 1 10
1839Done
1840```
1841
1842### linkmetrics query \<ipaddr\> single [pqmr]
1843
1844Perform a Link Metrics query (Single Probe).
1845
1846- ipaddr: Peer address.
1847- pqmr: This specifies what metrics to query.
1848- p: Layer 2 Number of PDUs received.
1849- q: Layer 2 LQI.
1850- m: Link Margin.
1851- r: RSSI.
1852
1853```bash
1854> linkmetrics query fe80:0:0:0:3092:f334:1455:1ad2 single qmr
1855Done
1856> Received Link Metrics Report from: fe80:0:0:0:3092:f334:1455:1ad2
1857
1858 - LQI: 76 (Exponential Moving Average)
1859 - Margin: 82 (dB) (Exponential Moving Average)
1860 - RSSI: -18 (dBm) (Exponential Moving Average)
1861```
1862
1863### linkmetrics query \<ipaddr\> forward \<seriesid\>
1864
1865Perform a Link Metrics query (Forward Tracking Series).
1866
1867- ipaddr: Peer address.
1868- seriesid: The Series ID.
1869
1870```bash
1871> linkmetrics query fe80:0:0:0:3092:f334:1455:1ad2 forward 1
1872Done
1873> Received Link Metrics Report from: fe80:0:0:0:3092:f334:1455:1ad2
1874
1875 - PDU Counter: 2 (Count/Summation)
1876 - LQI: 76 (Exponential Moving Average)
1877 - Margin: 82 (dB) (Exponential Moving Average)
1878 - RSSI: -18 (dBm) (Exponential Moving Average)
1879```
1880
1881### linkmetricsmgr disable
1882
1883Disable the Link Metrics Manager.
1884
1885`OPENTHREAD_CONFIG_LINK_METRICS_MANAGER_ENABLE` is required.
1886
1887```bash
1888> linkmetricsmgr disable
1889Done
1890```
1891
1892### linkmetricsmgr enable
1893
1894Enable the Link Metrics Manager.
1895
1896`OPENTHREAD_CONFIG_LINK_METRICS_MANAGER_ENABLE` is required.
1897
1898```bash
1899> linkmetricsmgr enable
1900Done
1901```
1902
1903### linkmetricsmgr show
1904
1905Display the Link Metrics data of all subjects. The subjects are identified by its extended address.
1906
1907`OPENTHREAD_CONFIG_LINK_METRICS_MANAGER_ENABLE` is required.
1908
1909```bash
1910
1911> linkmetricsmgr show
1912ExtAddr:827aa7f7f63e1234, LinkMargin:80, Rssi:-20
1913Done
1914```
1915
1916### locate
1917
1918Gets the current state (`In Progress` or `Idle`) of anycast locator.
1919
1920`OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE` is required.
1921
1922```bash
1923> locate
1924Idle
1925Done
1926
1927> locate fdde:ad00:beef:0:0:ff:fe00:fc10
1928
1929> locate
1930In Progress
1931Done
1932```
1933
1934### locate \<anycastaddr\>
1935
1936Locate the closest destination of an anycast address (i.e., find the destination's mesh local EID and RLOC16).
1937
1938`OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE` is required.
1939
1940The closest destination is determined based on the the current routing table and path costs within the Thread mesh.
1941
1942Locate the leader using its anycast address:
1943
1944```bash
1945> locate fdde:ad00:beef:0:0:ff:fe00:fc00
1946fdde:ad00:beef:0:d9d3:9000:16b:d03b 0xc800
1947Done
1948```
1949
1950Locate the closest destination of a service anycast address:
1951
1952```bash
1953
1954> srp server enable
1955Done
1956
1957> netdata show
1958Prefixes:
1959Routes:
1960Services:
196144970 5d c002 s c800
196244970 5d c002 s cc00
1963Done
1964
1965> locate fdde:ad00:beef:0:0:ff:fe00:fc10
1966fdde:ad00:beef:0:a477:dc98:a4e4:71ea 0xcc00
1967done
1968```
1969
1970### log filename \<filename\>
1971
1972- Note: Simulation Only, ie: `OPENTHREAD_EXAMPLES_SIMULATION`
1973- Requires `OPENTHREAD_CONFIG_LOG_OUTPUT == OPENTHREAD_CONFIG_LOG_OUTPUT_DEBUG_UART`
1974
1975Specifies filename to capture otPlatLog() messages, useful when debugging automated test scripts on Linux when logging disrupts the automated test scripts.
1976
1977### log level
1978
1979Get the log level.
1980
1981```bash
1982> log level
19831
1984Done
1985```
1986
1987### log level \<level\>
1988
1989Set the log level.
1990
1991```bash
1992> log level 4
1993Done
1994```
1995
1996### meshdiag topology [ip6-addrs][children]
1997
1998Discover network topology (list of routers and their connections).
1999
2000This command requires `OPENTHREAD_CONFIG_MESH_DIAG_ENABLE` and `OPENTHREAD_FTD`.
2001
2002Parameters are optional and indicate additional items to discover. Can be added in any order.
2003
2004- `ip6-addrs` to discover the list of IPv6 addresses of every router.
2005- `children` to discover the child table of every router.
2006
2007Output lists all discovered routers. Information per router:
2008
2009- Router ID
2010- RLOC16
2011- Extended MAC address
2012- Thread Version (if known).
2013- Whether the router is this device is itself (`me`)
2014- Whether the router is the parent of this device when device is a child (`parent`)
2015- Whether the router is `leader`
2016- Whether the router acts as a border router providing external connectivity (`br`)
2017- List of routers to which this router has a link:
2018  - `3-links`: Router IDs to which this router has a incoming link with link quality 3
2019  - `2-links`: Router IDs to which this router has a incoming link with link quality 2
2020  - `1-links`: Router IDs to which this router has a incoming link with link quality 1
2021  - If a list if empty, it is omitted in the out.
2022- If `ip6-addrs`, list of IPv6 addresses of the router
2023- If `children`, list of all children of the router. Information per child:
2024  - RLOC16
2025  - Incoming Link Quality from perspective of parent to child (zero indicates unknown)
2026  - Child Device mode (`r` rx-on-when-idle, `d` Full Thread Device, `n` Full Network Data, `-` no flags set)
2027  - Whether the child is this device itself (`me`)
2028  - Whether the child acts as a border router providing external connectivity (`br`)
2029
2030Discover network topology:
2031
2032```bash
2033> meshdiag topology
2034id:02 rloc16:0x0800 ext-addr:8aa57d2c603fe16c ver:4 - me - leader
2035   3-links:{ 46 }
2036id:46 rloc16:0xb800 ext-addr:fe109d277e0175cc ver:4
2037   3-links:{ 02 51 57 }
2038id:33 rloc16:0x8400 ext-addr:d2e511a146b9e54d ver:4
2039   3-links:{ 51 57 }
2040id:51 rloc16:0xcc00 ext-addr:9aab43ababf05352 ver:4
2041   3-links:{ 33 57 }
2042   2-links:{ 46 }
2043id:57 rloc16:0xe400 ext-addr:dae9c4c0e9da55ff ver:4
2044   3-links:{ 46 51 }
2045   1-links:{ 33 }
2046Done
2047```
2048
2049Discover network topology with router's IPv6 addresses and children:
2050
2051```bash
2052> meshdiag topology children ip6-addrs
2053id:62 rloc16:0xf800 ext-addr:ce349873897233a5 ver:4 - me - br
2054   3-links:{ 46 }
2055   ip6-addrs:
2056       fdde:ad00:beef:0:0:ff:fe00:f800
2057       fdde:ad00:beef:0:211d:39e9:6b2e:4ad1
2058       fe80:0:0:0:cc34:9873:8972:33a5
2059   children: none
2060id:02 rloc16:0x0800 ext-addr:8aa57d2c603fe16c ver:4 - leader - br
2061   3-links:{ 46 51 }
2062   ip6-addrs:
2063       fdde:ad00:beef:0:0:ff:fe00:fc00
2064       fdde:ad00:beef:0:0:ff:fe00:800
2065       fdde:ad00:beef:0:8a36:a3eb:47ae:a9b0
2066       fe80:0:0:0:88a5:7d2c:603f:e16c
2067   children:
2068       rloc16:0x0803 lq:3, mode:rn
2069       rloc16:0x0804 lq:3, mode:rdn
2070id:33 rloc16:0x8400 ext-addr:d2e511a146b9e54d ver:4
2071   3-links:{ 57 }
2072   ip6-addrs:
2073       fdde:ad00:beef:0:0:ff:fe00:8400
2074       fdde:ad00:beef:0:824:a126:cf19:a9f4
2075       fe80:0:0:0:d0e5:11a1:46b9:e54d
2076   children: none
2077id:51 rloc16:0xcc00 ext-addr:9aab43ababf05352 ver:4
2078   3-links:{ 02 46 57 }
2079   ip6-addrs:
2080       fdde:ad00:beef:0:0:ff:fe00:cc00
2081       fdde:ad00:beef:0:2986:bba3:12d0:1dd2
2082       fe80:0:0:0:98ab:43ab:abf0:5352
2083   children: none
2084id:57 rloc16:0xe400 ext-addr:dae9c4c0e9da55ff ver:4
2085   3-links:{ 33 51 }
2086   ip6-addrs:
2087       fdde:ad00:beef:0:0:ff:fe00:e400
2088       fdde:ad00:beef:0:87d0:550:bc18:9920
2089       fe80:0:0:0:d8e9:c4c0:e9da:55ff
2090   children:
2091       rloc16:0xe402 lq:3, mode:rn - br
2092       rloc16:0xe403 lq:3, mode:rn
2093id:46 rloc16:0xb800 ext-addr:fe109d277e0175cc ver:4
2094   3-links:{ 02 51 62 }
2095   ip6-addrs:
2096       fdde:ad00:beef:0:0:ff:fe00:b800
2097       fdde:ad00:beef:0:df4d:2994:d85c:c337
2098       fe80:0:0:0:fc10:9d27:7e01:75cc
2099   children: none
2100Done
2101```
2102
2103Discover network topology with children:
2104
2105```bash
2106> meshdiag topology children
2107id:02 rloc16:0x0800 ext-addr:8aa57d2c603fe16c ver:4 - parent - leader - br
2108   3-links:{ 46 51 }
2109   children:
2110       rloc16:0x0803 lq:0, mode:rn
2111       rloc16:0x0804 lq:0, mode:rdn - me
2112id:46 rloc16:0xb800 ext-addr:fe109d277e0175cc ver:4
2113   3-links:{ 02 51 62 }
2114   children: none
2115id:33 rloc16:0x8400 ext-addr:d2e511a146b9e54d ver:4
2116   3-links:{ 57 }
2117   children: none
2118id:51 rloc16:0xcc00 ext-addr:9aab43ababf05352 ver:4
2119   3-links:{ 02 46 57 }
2120   children: none
2121id:57 rloc16:0xe400 ext-addr:dae9c4c0e9da55ff ver:4
2122   3-links:{ 33 51 }
2123   children:
2124       rloc16:0xe402 lq:3, mode:rn - br
2125       rloc16:0xe403 lq:3, mode:rn
2126id:62 rloc16:0xf800 ext-addr:ce349873897233a5 ver:4 - br
2127   3-links:{ 46 }
2128   children: none
2129```
2130
2131### meshdiag childtable \<router-rloc16\>
2132
2133Start a query for child table of a router with a given RLOC16.
2134
2135Output lists all child entries. Information per child:
2136
2137- RLOC16
2138- Extended MAC address
2139- Thread Version
2140- Timeout (in seconds)
2141- Age (seconds since last heard)
2142- Supervision interval (in seconds)
2143- Number of queued messages (in case the child is sleepy)
2144- Device Mode
2145- RSS (average and last) and link margin
2146- Error rates, frame tx (at MAC layer), IPv6 message tx (above MAC)
2147- Connection time (seconds since link establishment {dd}d.{hh}:{mm}:{ss} format)
2148- CSL info
2149  - If synchronized
2150  - Period (in unit of 10-symbols-time)
2151  - Timeout (in seconds)
2152  - Channel
2153
2154```bash
2155> meshdiag childtable 0x6400
2156rloc16:0x6402 ext-addr:8e6f4d323bbed1fe ver:4
2157    timeout:120 age:36 supvn:129 q-msg:0
2158    rx-on:yes type:ftd full-net:yes
2159    rss - ave:-20 last:-20 margin:80
2160    err-rate - frame:11.51% msg:0.76%
2161    conn-time:00:11:07
2162    csl - sync:no period:0 timeout:0 channel:0
2163rloc16:0x6403 ext-addr:ee24e64ecf8c079a ver:4
2164    timeout:120 age:19 supvn:129 q-msg:0
2165    rx-on:no type:mtd full-net:no
2166    rss - ave:-20 last:-20 margin:80
2167    err-rate - frame:0.73% msg:0.00%
2168    conn-time:01:08:53
2169    csl - sync:no period:0 timeout:0 channel:0
2170Done
2171```
2172
2173### meshdiag childip6 \<parent-rloc16\>
2174
2175Send a query to a parent to retrieve the IPv6 addresses of all its MTD children.
2176
2177```bash
2178> meshdiag childip6 0xdc00
2179child-rloc16: 0xdc02
2180    fdde:ad00:beef:0:ded8:cd58:b73:2c21
2181    fd00:2:0:0:c24a:456:3b6b:c597
2182    fd00:1:0:0:120b:95fe:3ecc:d238
2183child-rloc16: 0xdc03
2184    fdde:ad00:beef:0:3aa6:b8bf:e7d6:eefe
2185    fd00:2:0:0:8ff8:a188:7436:6720
2186    fd00:1:0:0:1fcf:5495:790a:370f
2187Done
2188```
2189
2190### meshdiag routerneighbortable \<router-rloc16\>
2191
2192Start a query for router neighbor table of a router with a given RLOC16.
2193
2194Output lists all router neighbor entries. Information per entry:
2195
2196- RLOC16
2197- Extended MAC address
2198- Thread Version
2199- RSS (average and last) and link margin
2200- Error rates, frame tx (at MAC layer), IPv6 message tx (above MAC)
2201- Connection time (seconds since link establishment {dd}d.{hh}:{mm}:{ss} format)
2202
2203```bash
2204> meshdiag routerneighbortable 0x7400
2205rloc16:0x9c00 ext-addr:764788cf6e57a4d2 ver:4
2206   rss - ave:-20 last:-20 margin:80
2207   err-rate - frame:1.38% msg:0.00%
2208   conn-time:01:54:02
2209rloc16:0x7c00 ext-addr:4ed24fceec9bf6d3 ver:4
2210   rss - ave:-20 last:-20 margin:80
2211   err-rate - frame:0.72% msg:0.00%
2212   conn-time:00:11:27
2213Done
2214```
2215
2216### mliid \<iid\>
2217
2218Set the Mesh Local IID.
2219
2220It must be used before Thread stack is enabled.
2221
2222Only for testing/reference device.
2223
2224```bash
2225> mliid 1122334455667788
2226Done
2227```
2228
2229### mlr reg \<ipaddr\> ... [timeout]
2230
2231Register Multicast Listeners to Primary Backbone Router, with an optional `timeout` (in seconds).
2232
2233Omit `timeout` to use the default MLR timeout on the Primary Backbone Router.
2234
2235Use `timeout = 0` to deregister Multicast Listeners.
2236
2237NOTE: Only for Thread 1.2 Commissioner FTD device.
2238
2239```bash
2240> mlr reg ff04::1
2241status 0, 0 failed
2242Done
2243> mlr reg ff04::1 ff04::2 ff02::1
2244status 2, 1 failed
2245ff02:0:0:0:0:0:0:1
2246Done
2247> mlr reg ff04::1 ff04::2 1000
2248status 0, 0 failed
2249Done
2250> mlr reg ff04::1 ff04::2 0
2251status 0, 0 failed
2252Done
2253```
2254
2255### mode
2256
2257Get the Thread Device Mode value.
2258
2259- -: no flags set (rx-off-when-idle, minimal Thread device, stable network data)
2260- r: rx-on-when-idle
2261- d: Full Thread Device
2262- n: Full Network Data
2263
2264```bash
2265> mode
2266rdn
2267Done
2268```
2269
2270### mode [rdn]
2271
2272Set the Thread Device Mode value.
2273
2274- -: no flags set (rx-off-when-idle, minimal Thread device, stable network data)
2275- r: rx-on-when-idle
2276- d: Full Thread Device
2277- n: Full Network Data
2278
2279```bash
2280> mode rdn
2281Done
2282```
2283
2284```bash
2285> mode -
2286Done
2287```
2288
2289### multiradio
2290
2291Get the list of supported radio links by the device.
2292
2293This command is always available, even when only a single radio is supported by the device.
2294
2295```bash
2296> multiradio
2297[15.4, TREL]
2298Done
2299```
2300
2301### multiradio neighbor list
2302
2303Get the list of neighbors and their supported radios and their preference.
2304
2305This command is only available when device supports more than one radio link.
2306
2307```bash
2308> multiradio neighbor list
2309ExtAddr:3a65bc38dbe4a5be, RLOC16:0xcc00, Radios:[15.4(255), TREL(255)]
2310ExtAddr:17df23452ee4a4be, RLOC16:0x1300, Radios:[15.4(255)]
2311Done
2312```
2313
2314### multiradio neighbor \<ext address\>
2315
2316Get the radio info for specific neighbor with a given extended address.
2317
2318This command is only available when device supports more than one radio link.
2319
2320```bash
2321> multiradio neighbor 3a65bc38dbe4a5be
2322[15.4(255), TREL(255)]
2323Done
2324```
2325
2326### nat64 cidr
2327
2328Gets the IPv4 configured CIDR in the NAT64 translator.
2329
2330`OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE` is required.
2331
2332```bash
2333> nat64 cidr
2334192.168.255.0/24
2335Done
2336```
2337
2338### nat64 disable
2339
2340Disable NAT64 functions, including the translator and the prefix publishing.
2341
2342This command will reset the mapping table in the translator (if NAT64 translator is enabled in the build).
2343
2344`OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE` or `OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE` are required.
2345
2346```bash
2347> nat64 disable
2348Done
2349```
2350
2351### nat64 enable
2352
2353Enable NAT64 functions, including the translator and the prefix publishing.
2354
2355This command can be called anytime.
2356
2357`OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE` or `OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE` are required.
2358
2359```bash
2360> nat64 enable
2361Done
2362```
2363
2364### nat64 state
2365
2366Gets the state of NAT64 functions.
2367
2368Possible results for prefix manager are (`OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE` is required):
2369
2370- `Disabled`: NAT64 prefix manager is disabled.
2371- `NotRunning`: NAT64 prefix manager is enabled, but is not running, probably because the routing manager is disabled.
2372- `Idle`: NAT64 prefix manager is enabled and is running, but is not publishing a NAT64 prefix. Usually when there is another border router publishing a NAT64 prefix with higher priority.
2373- `Active`: NAT64 prefix manager is enabled, running and publishing a NAT64 prefix.
2374
2375Possible results for NAT64 translator are (`OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE` is required):
2376
2377- `Disabled`: NAT64 translator is disabled.
2378- `NotRunning`: NAT64 translator is enabled, but is not translating packets, probably because it is not configured with a NAT64 prefix or a CIDR for NAT64.
2379- `Active`: NAT64 translator is enabled and is translating packets.
2380
2381`OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE` or `OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE` are required.
2382
2383```bash
2384> nat64 state
2385PrefixManager: NotRunning
2386Translator:    NotRunning
2387Done
2388
2389> nat64 state
2390PrefixManager: Idle
2391Translator:    NotRunning
2392Done
2393
2394> nat64 state
2395PrefixManager: Active
2396Translator:    Active
2397Done
2398```
2399
2400### nat64 mappings
2401
2402Get the NAT64 translator mappings.
2403
2404`OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE` is required.
2405
2406```bash
2407> nat64 mappings
2408|          | Address                   |        | 4 to 6       | 6 to 4       |
2409+----------+---------------------------+--------+--------------+--------------+
2410| ID       | IPv6       | IPv4         | Expiry | Pkts | Bytes | Pkts | Bytes |
2411+----------+------------+--------------+--------+------+-------+------+-------+
2412| 00021cb9 | fdc7::df79 | 192.168.64.2 |  7196s |    6 |   456 |   11 |  1928 |
2413|          |                                TCP |    0 |     0 |    0 |     0 |
2414|          |                                UDP |    1 |   136 |   16 |  1608 |
2415|          |                               ICMP |    5 |   320 |    5 |   320 |
2416```
2417
2418### nat64 counters
2419
2420Get the NAT64 translator packet and error counters.
2421
2422`OPENTHREAD_CONFIG_NAT64_TRANSLATOR_ENABLE` is required.
2423
2424```bash
2425> nat64 counters
2426|               | 4 to 6                  | 6 to 4                  |
2427+---------------+-------------------------+-------------------------+
2428| Protocol      | Pkts     | Bytes        | Pkts     | Bytes        |
2429+---------------+----------+--------------+----------+--------------+
2430|         Total |       11 |          704 |       11 |          704 |
2431|           TCP |        0 |            0 |        0 |            0 |
2432|           UDP |        0 |            0 |        0 |            0 |
2433|          ICMP |       11 |          704 |       11 |          704 |
2434| Errors        | Pkts                    | Pkts                    |
2435+---------------+-------------------------+-------------------------+
2436|         Total |                       8 |                       4 |
2437|   Illegal Pkt |                       0 |                       0 |
2438|   Unsup Proto |                       0 |                       0 |
2439|    No Mapping |                       2 |                       0 |
2440Done
2441```
2442
2443### neighbor linkquality
2444
2445Print link quality info for all neighbors.
2446
2447```bash
2448> neighbor linkquality
2449| RLOC16 | Extended MAC     | Frame Error | Msg Error | Avg RSS | Last RSS | Age   |
2450+--------+------------------+-------------+-----------+---------+----------+-------+
2451| 0xe800 | 9e2fa4e1b84f92db |      0.00 % |    0.00 % |     -46 |      -48 |     1 |
2452| 0xc001 | 0ad7ed6beaa6016d |      4.67 % |    0.08 % |     -68 |      -72 |    10 |
2453Done
2454```
2455
2456### neighbor list
2457
2458List RLOC16 of neighbors.
2459
2460```bash
2461> neighbor list
24620xcc01 0xc800 0xf000
2463Done
2464```
2465
2466### neighbor table
2467
2468Print table of neighbors.
2469
2470```bash
2471> neighbor table
2472| Role | RLOC16 | Age | Avg RSSI | Last RSSI |R|D|N| Extended MAC     |
2473+------+--------+-----+----------+-----------+-+-+-+------------------+
2474|   C  | 0xcc01 |  96 |      -46 |       -46 |1|1|1| 1eb9ba8a6522636b |
2475|   R  | 0xc800 |   2 |      -29 |       -29 |1|1|1| 9a91556102c39ddb |
2476|   R  | 0xf000 |   3 |      -28 |       -28 |1|1|1| 0ad7ed6beaa6016d |
2477Done
2478```
2479
2480### neighbor conntime
2481
2482Print connection time and age of neighbors.
2483
2484The table provides the following info per neighbor:
2485
2486- RLOC16
2487- Extended MAC address
2488- Age (seconds since last heard from neighbor)
2489- Connection time (seconds since link establishment with neighbor)
2490
2491Duration intervals are formatted as `<hh>:<mm>:<ss>` for hours, minutes, and seconds if the duration is less than one day. If the duration is longer than one day, the format is `<dd>d.<hh>:<mm>:<ss>`.
2492
2493```bash
2494> neighbor conntime
2495| RLOC16 | Extended MAC     | Last Heard (Age) | Connection Time  |
2496+--------+------------------+------------------+------------------+
2497| 0x8401 | 1a28be396a14a318 |         00:00:13 |         00:07:59 |
2498| 0x5c00 | 723ebf0d9eba3264 |         00:00:03 |         00:11:27 |
2499| 0xe800 | ce53628a1e3f5b3c |         00:00:02 |         00:00:15 |
2500Done
2501```
2502
2503### neighbor conntime list
2504
2505Print connection time and age of neighbors.
2506
2507This command is similar to `neighbor conntime`, but it displays the information in a list format. The age and connection time are both displayed in seconds.
2508
2509```bash
2510> neighbor conntime list
25110x8401 1a28be396a14a318 age:63 conn-time:644
25120x5c00 723ebf0d9eba3264 age:23 conn-time:852
25130xe800 ce53628a1e3f5b3c age:23 conn-time:180
2514Done
2515```
2516
2517### netstat
2518
2519List all UDP sockets.
2520
2521```bash
2522> netstat
2523| Local Address                                   | Peer Address                                    |
2524+-------------------------------------------------+-------------------------------------------------+
2525| [0:0:0:0:0:0:0:0]:49153                         | [0:0:0:0:0:0:0:0]:0                             |
2526| [0:0:0:0:0:0:0:0]:49152                         | [0:0:0:0:0:0:0:0]:0                             |
2527| [0:0:0:0:0:0:0:0]:61631                         | [0:0:0:0:0:0:0:0]:0                             |
2528| [0:0:0:0:0:0:0:0]:19788                         | [0:0:0:0:0:0:0:0]:0                             |
2529Done
2530```
2531
2532### networkdiagnostic get \<addr\> \<type\> ..
2533
2534Send network diagnostic request to retrieve tlv of \<type\>s.
2535
2536If \<addr\> is unicast address, `Diagnostic Get` will be sent. if \<addr\> is multicast address, `Diagnostic Query` will be sent.
2537
2538```bash
2539> networkdiagnostic get fdde:ad00:beef:0:0:ff:fe00:fc00 0 1 6
2540> DIAG_GET.rsp/ans: 00080e336e1c41494e1c01020c000608640b0f674074c503
2541Ext Address: '0e336e1c41494e1c'
2542Rloc16: 0x0c00
2543Leader Data:
2544    PartitionId: 0x640b0f67
2545    Weighting: 64
2546    DataVersion: 116
2547    StableDataVersion: 197
2548    LeaderRouterId: 0x03
2549Done
2550
2551> networkdiagnostic get ff02::1 0 1
2552> DIAG_GET.rsp/ans: 00080e336e1c41494e1c01020c00
2553Ext Address: '0e336e1c41494e1c'
2554Rloc16: 0x0c00
2555Done
2556DIAG_GET.rsp/ans: 00083efcdb7e3f9eb0f201021800
2557Ext Address: '3efcdb7e3f9eb0f2'
2558Rloc16: 0x1800
2559Done
2560```
2561
2562### networkdiagnostic reset \<addr\> \<type\> ..
2563
2564Send network diagnostic request to reset \<addr\>'s tlv of \<type\>s. Currently only `MAC Counters`(9) is supported.
2565
2566```bash
2567> diagnostic reset fd00:db8::ff:fe00:0 9
2568Done
2569```
2570
2571### networkidtimeout
2572
2573Get the NETWORK_ID_TIMEOUT parameter used in the Router role.
2574
2575```bash
2576> networkidtimeout
2577120
2578Done
2579```
2580
2581### networkidtimeout \<timeout\>
2582
2583Set the NETWORK_ID_TIMEOUT parameter used in the Router role.
2584
2585```bash
2586> networkidtimeout 120
2587Done
2588```
2589
2590### networkkey
2591
2592Get the Thread Network Key value.
2593
2594```bash
2595> networkkey
259600112233445566778899aabbccddeeff
2597Done
2598```
2599
2600### networkkey \<key\>
2601
2602Set the Thread Network Key value.
2603
2604```bash
2605> networkkey 00112233445566778899aabbccddeeff
2606Done
2607```
2608
2609### networkname
2610
2611Get the Thread Network Name.
2612
2613```bash
2614> networkname
2615OpenThread
2616Done
2617```
2618
2619### networkname \<name\>
2620
2621Set the Thread Network Name.
2622
2623**NOTE** The current commissioning credential becomes stale after changing this value. Use [pskc](#pskc--p-keypassphrase) to reset.
2624
2625```bash
2626> networkname OpenThread
2627Done
2628```
2629
2630### panid
2631
2632Get the IEEE 802.15.4 PAN ID value.
2633
2634```bash
2635> panid
26360xdead
2637Done
2638```
2639
2640### panid \<panid\>
2641
2642Set the IEEE 802.15.4 PAN ID value.
2643
2644```bash
2645> panid 0xdead
2646Done
2647```
2648
2649### parent
2650
2651Get the diagnostic information for a Thread Router as parent.
2652
2653Note: When operating as a Thread Router when `OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is enabled, this command will return the cached information from when the device was previously attached as a Thread Child. Returning cached information is necessary to support the Thread Test Harness - Test Scenario 8.2.x requests the former parent (i.e. Joiner Router's) MAC address even if the device has already promoted to a router.
2654
2655```bash
2656> parent
2657Ext Addr: be1857c6c21dce55
2658Rloc: 5c00
2659Link Quality In: 3
2660Link Quality Out: 3
2661Age: 20
2662Version: 4
2663Done
2664```
2665
2666Note: When `OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE` is enabled, this command will return two extra lines with information relevant for CSL Receiver operation.
2667
2668```bash
2669CSL clock accuracy: 20
2670CSL uncertainty: 5
2671```
2672
2673### parentpriority
2674
2675Get the assigned parent priority value, -2 means not assigned.
2676
2677```bash
2678> parentpriority
26791
2680Done
2681```
2682
2683### parentpriority \<parentpriority\>
2684
2685Set the assigned parent priority value: 1, 0, -1 or -2.
2686
2687```bash
2688> parentpriority 1
2689Done
2690```
2691
2692### partitionid
2693
2694Get the Thread Network Partition ID.
2695
2696```bash
2697> partitionid
26984294967295
2699Done
2700```
2701
2702### partitionid preferred
2703
2704Get the preferred Thread Leader Partition ID.
2705
2706`OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is required.
2707
2708```bash
2709> partitionid preferred
27104294967295
2711Done
2712```
2713
2714### partitionid preferred \<partitionid\>
2715
2716Set the preferred Thread Leader Partition ID.
2717
2718`OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is required.
2719
2720```bash
2721> partitionid preferred 0xffffffff
2722Done
2723```
2724
2725### ping \[async\] \[-I source\] \<ipaddr\> \[size\] \[count\] \[interval\] \[hoplimit\] \[timeout\]
2726
2727Send an ICMPv6 Echo Request.
2728
2729- async: Use the non-blocking mode. New commands are allowed before the ping process terminates.
2730- source: The source IPv6 address of the echo request.
2731- size: The number of data bytes to be sent.
2732- count: The number of ICMPv6 Echo Requests to be sent.
2733- interval: The interval between two consecutive ICMPv6 Echo Requests in seconds. The value may have fractional form, for example `0.5`.
2734- hoplimit: The hoplimit of ICMPv6 Echo Request to be sent.
2735- timeout: Time in seconds to wait for the final ICMPv6 Echo Reply after sending out the request. The value may have fractional form, for example `3.5`.
2736
2737```bash
2738> ping fd00:db8:0:0:76b:6a05:3ae9:a61a
2739> 16 bytes from fd00:db8:0:0:76b:6a05:3ae9:a61a: icmp_seq=5 hlim=64 time=0ms
27401 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 0/0.0/0 ms.
2741Done
2742
2743> ping -I fd00:db8:0:0:76b:6a05:3ae9:a61a ff02::1 100 1 1 1
2744> 108 bytes from fd00:db8:0:0:f605:fb4b:d429:d59a: icmp_seq=4 hlim=64 time=7ms
27451 packets transmitted, 1 packets received. Round-trip min/avg/max = 7/7.0/7 ms.
2746Done
2747```
2748
2749The address can be an IPv4 address, which will be synthesized to an IPv6 address using the preferred NAT64 prefix from the network data.
2750
2751> Note: The command will return `InvalidState` when the preferred NAT64 prefix is unavailable.
2752
2753```bash
2754> ping 172.17.0.1
2755Pinging synthesized IPv6 address: fdde:ad00:beef:2:0:0:ac11:1
2756> 16 bytes from fdde:ad00:beef:2:0:0:ac11:1: icmp_seq=5 hlim=64 time=0ms
27571 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 0/0.0/0 ms.
2758Done
2759```
2760
2761### ping stop
2762
2763Stop sending ICMPv6 Echo Requests.
2764
2765```bash
2766> ping stop
2767Done
2768```
2769
2770### platform
2771
2772Print the current platform
2773
2774```bash
2775> platform
2776NRF52840
2777Done
2778```
2779
2780### pollperiod
2781
2782Get the customized data poll period of sleepy end device (milliseconds). Only for certification test.
2783
2784```bash
2785> pollperiod
27860
2787Done
2788```
2789
2790### pollperiod \<pollperiod\>
2791
2792Set the customized data poll period for sleepy end device (milliseconds >= 10ms). Only for certification test.
2793
2794```bash
2795> pollperiod 10
2796Done
2797```
2798
2799### pskc
2800
2801Get pskc in hex format.
2802
2803```bash
2804> pskc
280500000000000000000000000000000000
2806Done
2807```
2808
2809### pskc [-p] \<key\>|\<passphrase\>
2810
2811With `-p` generate pskc from \<passphrase\> (UTF-8 encoded) together with **current** network name and extended PAN ID, otherwise set pskc as \<key\> (hex format).
2812
2813```bash
2814> pskc 67c0c203aa0b042bfb5381c47aef4d9e
2815Done
2816> pskc -p 123456
2817Done
2818```
2819
2820### pskcref
2821
2822Get pskc key reference.
2823
2824`OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE` is required.
2825
2826```bash
2827> pskcref
28280x80000000
2829Done
2830```
2831
2832### pskcref \<keyref\>
2833
2834Set pskc key reference as \<keyref\>.
2835
2836`OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE` is required.
2837
2838```bash
2839> pskcref 0x20017
2840Done
2841```
2842
2843### preferrouterid \<routerid\>
2844
2845Prefer a Router ID when solicit router id from Leader.
2846
2847```bash
2848> preferrouterid 16
2849Done
2850```
2851
2852### prefix
2853
2854Get the prefix list in the local Network Data. Note: For the Thread 1.2 border router with backbone capability, the local Domain Prefix would be listed as well (with flag `D`), with preceding `-` if backbone functionality is disabled.
2855
2856```bash
2857> prefix
28582001:dead:beef:cafe::/64 paros med
2859- fd00:7d03:7d03:7d03::/64 prosD med
2860Done
2861```
2862
2863### prefix add \<prefix\> [padcrosnD][prf]
2864
2865Add a valid prefix to the Network Data.
2866
2867Note: The Domain Prefix flag (`D`) is only available for Thread 1.2.
2868
2869- p: Preferred flag
2870- a: Stateless IPv6 Address Autoconfiguration flag
2871- d: DHCPv6 IPv6 Address Configuration flag
2872- c: DHCPv6 Other Configuration flag
2873- r: Default Route flag
2874- o: On Mesh flag
2875- s: Stable flag
2876- n: Nd Dns flag
2877- D: Domain Prefix flag
2878- prf: Default router preference, which may be 'high', 'med', or 'low'.
2879
2880```bash
2881> prefix add 2001:dead:beef:cafe::/64 paros med
2882Done
2883
2884> prefix add fd00:7d03:7d03:7d03::/64 prosD med
2885Done
2886```
2887
2888### prefix meshlocal
2889
2890Get the mesh local prefix.
2891
2892```bash
2893> prefix meshlocal
2894fdde:ad00:beef:0::/64
2895Done
2896```
2897
2898### prefix meshlocal <prefix>
2899
2900Set the mesh local prefix.
2901
2902```bash
2903> prefix meshlocal fdde:ad00:beef:0::/64
2904Done
2905```
2906
2907### prefix remove \<prefix\>
2908
2909Invalidate a prefix in the Network Data.
2910
2911```bash
2912> prefix remove 2001:dead:beef:cafe::/64
2913Done
2914```
2915
2916### promiscuous
2917
2918Get radio promiscuous property.
2919
2920```bash
2921> promiscuous
2922Disabled
2923Done
2924```
2925
2926### promiscuous enable
2927
2928Enable radio promiscuous operation and print raw packet content.
2929
2930```bash
2931> promiscuous enable
2932Done
2933```
2934
2935### promiscuous disable
2936
2937Disable radio promiscuous operation.
2938
2939```bash
2940> promiscuous disable
2941Done
2942```
2943
2944### radio enable
2945
2946Enable radio.
2947
2948```bash
2949> radio enable
2950Done
2951```
2952
2953### radio disable
2954
2955Disable radio.
2956
2957```bash
2958> radio disable
2959Done
2960```
2961
2962### radio stats
2963
2964`OPENTHREAD_CONFIG_RADIO_STATS_ENABLE` is required. This feature is only available on FTD and MTD.
2965
2966The radio statistics shows the time when the radio is in sleep/tx/rx state. The command will show the time of these states since last reset in unit of microseconds. It will also show the percentage of the time.
2967
2968```bash
2969> radio stats
2970Radio Statistics:
2971Total Time: 67.756s
2972Tx Time: 0.022944s (0.03%)
2973Rx Time: 1.482353s (2.18%)
2974Sleep Time: 66.251128s (97.77%)
2975Disabled Time: 0.000080s (0.00%)
2976Done
2977```
2978
2979### radio stats clear
2980
2981`OPENTHREAD_CONFIG_RADIO_STATS_ENABLE` is required. This feature is only available on FTD and MTD.
2982
2983This command resets the radio statistics. It sets all the time to 0.
2984
2985```bash
2986> radio stats clear
2987Done
2988```
2989
2990### radiofilter
2991
2992`OPENTHREAD_CONFIG_MAC_FILTER_ENABLE` is required.
2993
2994The radio filter is mainly intended for testing. It can be used to temporarily block all tx/rx on the IEEE 802.15.4 radio.
2995
2996When radio filter is enabled, radio is put to sleep instead of receive (to ensure device does not receive any frame and/or potentially send ack). Also the frame transmission requests return immediately without sending the frame over the air (return "no ack" error if ack is requested, otherwise return success).
2997
2998Get radio filter status (enabled or disabled).
2999
3000```bash
3001> radiofilter
3002Disabled
3003Done
3004```
3005
3006### radiofilter enable
3007
3008`OPENTHREAD_CONFIG_MAC_FILTER_ENABLE` is required.
3009
3010Enable radio radio filter.
3011
3012```bash
3013> radiofilter enable
3014Done
3015```
3016
3017### radiofilter disable
3018
3019`OPENTHREAD_CONFIG_MAC_FILTER_ENABLE` is required.
3020
3021Disable radio radio filter.
3022
3023```bash
3024> radiofilter disable
3025Done
3026```
3027
3028### rcp
3029
3030RCP-related commands.
3031
3032### region
3033
3034Set the radio region, this can affect the transmit power limit.
3035
3036```bash
3037> region US
3038Done
3039> region
3040US
3041Done
3042```
3043
3044### rcp version
3045
3046Print RCP version string.
3047
3048```bash
3049> rcp version
3050OPENTHREAD/20191113-00825-g82053cc9d-dirty; SIMULATION; Jun  4 2020 17:53:16
3051Done
3052```
3053
3054### releaserouterid \<routerid\>
3055
3056Release a Router ID that has been allocated by the device in the Leader role.
3057
3058```bash
3059> releaserouterid 16
3060Done
3061```
3062
3063### reset
3064
3065Signal a platform reset.
3066
3067```bash
3068> reset
3069```
3070
3071### rloc16
3072
3073Get the Thread RLOC16 value.
3074
3075```bash
3076> rloc16
30770xdead
3078Done
3079```
3080
3081### route
3082
3083Get the external route list in the local Network Data.
3084
3085```bash
3086> route
30872001:dead:beef:cafe::/64 s med
3088Done
3089```
3090
3091### route add \<prefix\> [sna][prf]
3092
3093Add a valid external route to the Network Data.
3094
3095- s: Stable flag
3096- n: NAT64 flag
3097- a: Advertising PIO (AP) flag
3098- prf: Default Router Preference, which may be: 'high', 'med', or 'low'.
3099
3100```bash
3101> route add 2001:dead:beef:cafe::/64 s med
3102Done
3103```
3104
3105### route remove \<prefix\>
3106
3107Invalidate a external route in the Network Data.
3108
3109```bash
3110> route remove 2001:dead:beef:cafe::/64
3111Done
3112```
3113
3114### router list
3115
3116List allocated Router IDs.
3117
3118```bash
3119> router list
31208 24 50
3121Done
3122```
3123
3124### router table
3125
3126Print table of routers.
3127
3128```bash
3129> router table
3130| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     | Link |
3131+----+--------+----------+-----------+-------+--------+-----+------------------+------+
3132| 22 | 0x5800 |       63 |         0 |     0 |      0 |   0 | 0aeb8196c9f61658 |    0 |
3133| 49 | 0xc400 |       63 |         0 |     3 |      3 |   0 | faa1c03908e2dbf2 |    1 |
3134Done
3135```
3136
3137### router \<id\>
3138
3139Print diagnostic information for a Thread Router. The `id` may be a Router ID or an RLOC16.
3140
3141```bash
3142> router 50
3143Alloc: 1
3144Router ID: 50
3145Rloc: c800
3146Next Hop: c800
3147Link: 1
3148Ext Addr: e2b3540590b0fd87
3149Cost: 0
3150Link Quality In: 3
3151Link Quality Out: 3
3152Age: 3
3153Done
3154```
3155
3156```bash
3157> router 0xc800
3158Alloc: 1
3159Router ID: 50
3160Rloc: c800
3161Next Hop: c800
3162Link: 1
3163Ext Addr: e2b3540590b0fd87
3164Cost: 0
3165Link Quality In: 3
3166Link Quality Out: 3
3167Age: 7
3168Done
3169```
3170
3171### routerdowngradethreshold
3172
3173Get the ROUTER_DOWNGRADE_THRESHOLD value.
3174
3175```bash
3176> routerdowngradethreshold
317723
3178Done
3179```
3180
3181### routerdowngradethreshold \<threshold\>
3182
3183Set the ROUTER_DOWNGRADE_THRESHOLD value.
3184
3185```bash
3186> routerdowngradethreshold 23
3187Done
3188```
3189
3190### routereligible
3191
3192Indicates whether the router role is enabled or disabled.
3193
3194```bash
3195> routereligible
3196Enabled
3197Done
3198```
3199
3200### routereligible enable
3201
3202Enable the router role.
3203
3204```bash
3205> routereligible enable
3206Done
3207```
3208
3209### routereligible disable
3210
3211Disable the router role.
3212
3213```bash
3214> routereligible disable
3215Done
3216```
3217
3218### routerselectionjitter
3219
3220Get the ROUTER_SELECTION_JITTER value.
3221
3222```bash
3223> routerselectionjitter
3224120
3225Done
3226```
3227
3228### routerselectionjitter \<jitter\>
3229
3230Set the ROUTER_SELECTION_JITTER value.
3231
3232```bash
3233> routerselectionjitter 120
3234Done
3235```
3236
3237### routerupgradethreshold
3238
3239Get the ROUTER_UPGRADE_THRESHOLD value.
3240
3241```bash
3242> routerupgradethreshold
324316
3244Done
3245```
3246
3247### routerupgradethreshold \<threshold\>
3248
3249Set the ROUTER_UPGRADE_THRESHOLD value.
3250
3251```bash
3252> routerupgradethreshold 16
3253Done
3254```
3255
3256### childrouterlinks
3257
3258Get the MLE_CHILD_ROUTER_LINKS value.
3259
3260```bash
3261> childrouterlinks
326216
3263Done
3264```
3265
3266### childrouterlinks \<number_of_links\>
3267
3268Set the MLE_CHILD_ROUTER_LINKS value.
3269
3270```bash
3271> childrouterlinks 16
3272Done
3273```
3274
3275### scan \[channel\]
3276
3277Perform an IEEE 802.15.4 Active Scan.
3278
3279- channel: The channel to scan on. If no channel is provided, the active scan will cover all valid channels.
3280
3281```bash
3282> scan
3283| PAN  | MAC Address      | Ch | dBm | LQI |
3284+------+------------------+----+-----+-----+
3285| ffff | f1d92a82c8d8fe43 | 11 | -20 |   0 |
3286Done
3287```
3288
3289### scan energy \[duration\] \[channel\]
3290
3291Perform an IEEE 802.15.4 Energy Scan.
3292
3293- duration: The time in milliseconds to spend scanning each channel.
3294
3295```bash
3296> scan energy 10
3297| Ch | RSSI |
3298+----+------+
3299| 11 |  -59 |
3300| 12 |  -62 |
3301| 13 |  -67 |
3302| 14 |  -61 |
3303| 15 |  -87 |
3304| 16 |  -86 |
3305| 17 |  -86 |
3306| 18 |  -52 |
3307| 19 |  -58 |
3308| 20 |  -82 |
3309| 21 |  -76 |
3310| 22 |  -82 |
3311| 23 |  -74 |
3312| 24 |  -81 |
3313| 25 |  -88 |
3314| 26 |  -71 |
3315Done
3316```
3317
3318```bash
3319> scan energy 10 20
3320| Ch | RSSI |
3321+----+------+
3322| 20 |  -82 |
3323Done
3324```
3325
3326### service
3327
3328Module for controlling service registration in Network Data. Each change in service registration must be sent to leader by `netdata register` command before taking effect.
3329
3330### service add \<enterpriseNumber\> \<serviceData\> \<serverData\>
3331
3332Add service to the Network Data.
3333
3334- enterpriseNumber: IANA enterprise number
3335- serviceData: hex-encoded binary service data
3336- serverData: hex-encoded binary server data
3337
3338```bash
3339> service add 44970 112233 aabbcc
3340Done
3341> netdata register
3342Done
3343```
3344
3345### service remove \<enterpriseNumber\> \<serviceData\>
3346
3347Remove service from Network Data.
3348
3349- enterpriseNumber: IANA enterprise number
3350- serviceData: hext-encoded binary service data
3351
3352```bash
3353> service remove 44970 112233
3354Done
3355> netdata register
3356Done
3357```
3358
3359### singleton
3360
3361Return true when there are no other nodes in the network, otherwise return false.
3362
3363```bash
3364> singleton
3365true or false
3366Done
3367```
3368
3369### sntp query \[SNTP server IP\] \[SNTP server port\]
3370
3371Send SNTP Query to obtain current unix epoch time (from 1st January 1970). The latter two parameters have following default values:
3372
3373- NTP server IP: 2001:4860:4806:8:: (Google IPv6 NTP Server)
3374- NTP server port: 123
3375
3376```bash
3377> sntp query
3378> SNTP response - Unix time: 1540894725 (era: 0)
3379```
3380
3381You can use NAT64 of OpenThread Border Router to reach e.g. Google IPv4 NTP Server:
3382
3383```bash
3384> sntp query 64:ff9b::d8ef:2308
3385> SNTP response - Unix time: 1540898611 (era: 0)
3386```
3387
3388### state
3389
3390Return state of current state.
3391
3392```bash
3393> state
3394offline, disabled, detached, child, router or leader
3395Done
3396```
3397
3398### state <state>
3399
3400Try to switch to state `detached`, `child`, `router` or `leader`.
3401
3402```bash
3403> state leader
3404Done
3405```
3406
3407### thread start
3408
3409Enable Thread protocol operation and attach to a Thread network.
3410
3411```bash
3412> thread start
3413Done
3414```
3415
3416### thread stop
3417
3418Disable Thread protocol operation and detach from a Thread network.
3419
3420```bash
3421> thread stop
3422Done
3423```
3424
3425### thread version
3426
3427Get the Thread Version number.
3428
3429```bash
3430> thread version
34312
3432Done
3433```
3434
3435### timeinqueue
3436
3437Print the tx queue time-in-queue histogram.
3438
3439Requires `OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE`.
3440
3441The time-in-queue is tracked for direct transmissions only and is measured as the duration from when a message is added to the transmit queue until it is passed to the MAC layer for transmission or dropped.
3442
3443Each table row shows min and max time-in-queue (in milliseconds) followed by number of messages with time-in-queue within the specified min-max range. The histogram information is collected since the OpenThread instance was initialized or since the last time statistics collection was reset by the `timeinqueue reset` command.
3444
3445The collected statistics can be reset by `timeinqueue reset`.
3446
3447```bash
3448> timeinqueue
3449| Min  | Max  |Msg Count|
3450+------+------+---------+
3451|    0 |    9 |    1537 |
3452|   10 |   19 |     156 |
3453|   20 |   29 |      57 |
3454|   30 |   39 |     108 |
3455|   40 |   49 |      60 |
3456|   50 |   59 |      76 |
3457|   60 |   69 |      88 |
3458|   70 |   79 |      51 |
3459|   80 |   89 |      86 |
3460|   90 |   99 |      45 |
3461|  100 |  109 |      43 |
3462|  110 |  119 |      44 |
3463|  120 |  129 |      38 |
3464|  130 |  139 |      44 |
3465|  140 |  149 |      35 |
3466|  150 |  159 |      41 |
3467|  160 |  169 |      34 |
3468|  170 |  179 |      13 |
3469|  180 |  189 |      24 |
3470|  190 |  199 |       3 |
3471|  200 |  209 |       0 |
3472|  210 |  219 |       0 |
3473|  220 |  229 |       2 |
3474|  230 |  239 |       0 |
3475|  240 |  249 |       0 |
3476|  250 |  259 |       0 |
3477|  260 |  269 |       0 |
3478|  270 |  279 |       0 |
3479|  280 |  289 |       0 |
3480|  290 |  299 |       1 |
3481|  300 |  309 |       0 |
3482|  310 |  319 |       0 |
3483|  320 |  329 |       0 |
3484|  330 |  339 |       0 |
3485|  340 |  349 |       0 |
3486|  350 |  359 |       0 |
3487|  360 |  369 |       0 |
3488|  370 |  379 |       0 |
3489|  380 |  389 |       0 |
3490|  390 |  399 |       0 |
3491|  400 |  409 |       0 |
3492|  410 |  419 |       0 |
3493|  420 |  429 |       0 |
3494|  430 |  439 |       0 |
3495|  440 |  449 |       0 |
3496|  450 |  459 |       0 |
3497|  460 |  469 |       0 |
3498|  470 |  479 |       0 |
3499|  480 |  489 |       0 |
3500|  490 |  inf |       0 |
3501Done
3502```
3503
3504### timeinqueue max
3505
3506Print the maximum observed time-in-queue in milliseconds.
3507
3508Requires `OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE`.
3509
3510The time-in-queue is tracked for direct transmissions only and is measured as the duration from when a message is added to the transmit queue until it is passed to the MAC layer for transmission or dropped.
3511
3512```bash
3513> timeinqueue max
3514291
3515```
3516
3517### timeinqueue reset
3518
3519Reset the TX queue time-in-queue statistics.
3520
3521```bash
3522> timeinqueue reset
3523Done
3524```
3525
3526### trel
3527
3528Indicate whether TREL radio operation is enabled or not.
3529
3530`OPENTHREAD_CONFIG_RADIO_LINK_TREL_ENABLE` is required for all `trel` sub-commands.
3531
3532```bash
3533> trel
3534Enabled
3535Done
3536```
3537
3538### trel enable
3539
3540Enable TREL operation.
3541
3542```bash
3543> trel enable
3544Done
3545```
3546
3547### trel disable
3548
3549Disable TREL operation.
3550
3551```bash
3552> trel disable
3553Done
3554```
3555
3556### trel filter
3557
3558Indicate whether TREL filter mode is enabled or not
3559
3560When filter mode is enabled, any rx and tx traffic through TREL interface is silently dropped. This is mainly intended for use during testing.
3561
3562```bash
3563> trel filter
3564Disabled
3565Done
3566```
3567
3568### trel filter enable
3569
3570Enable TREL filter mode.
3571
3572```bash
3573> trel filter enable
3574Done
3575```
3576
3577### trel filter disable
3578
3579Disable TREL filter mode.
3580
3581```bash
3582> trel filter disable
3583Done
3584```
3585
3586### trel peers [list]
3587
3588Get the TREL peer table in table format or as a list.
3589
3590```bash
3591> trel peers
3592| No  | Ext MAC Address  | Ext PAN Id       | IPv6 Socket Address                              |
3593+-----+------------------+------------------+--------------------------------------------------+
3594|   1 | 5e5785ba3a63adb9 | f0d9c001f00d2e43 | [fe80:0:0:0:cc79:2a29:d311:1aea]:9202            |
3595|   2 | ce792a29d3111aea | dead00beef00cafe | [fe80:0:0:0:5c57:85ba:3a63:adb9]:9203            |
3596Done
3597
3598> trel peers list
3599001 ExtAddr:5e5785ba3a63adb9 ExtPanId:f0d9c001f00d2e43 SockAddr:[fe80:0:0:0:cc79:2a29:d311:1aea]:9202
3600002 ExtAddr:ce792a29d3111aea ExtPanId:dead00beef00cafe SockAddr:[fe80:0:0:0:5c57:85ba:3a63:adb9]:9203
3601>>>>>>> [trel] implement new TREL model using DNS-SD
3602Done
3603```
3604
3605### tvcheck enable
3606
3607Enable thread version check when upgrading to router or leader.
3608
3609Note: Thread version check is enabled by default.
3610
3611`OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is required.
3612
3613```bash
3614> tvcheck enable
3615Done
3616```
3617
3618### tvcheck disable
3619
3620Enable thread version check when upgrading to router or leader.
3621
3622Note: Thread version check is enabled by default.
3623
3624`OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is required.
3625
3626```bash
3627> tvcheck disable
3628Done
3629```
3630
3631### txpower
3632
3633Get the transmit power in dBm.
3634
3635```bash
3636> txpower
3637-10 dBm
3638Done
3639```
3640
3641### txpower \<txpower\>
3642
3643Set the transmit power in dBm.
3644
3645```bash
3646> txpower -10
3647Done
3648```
3649
3650### unsecureport add \<port\>
3651
3652Add a port to the allowed unsecured port list.
3653
3654```bash
3655> unsecureport add 1234
3656Done
3657```
3658
3659### unsecureport remove \<port\>
3660
3661Remove a port from the allowed unsecured port list.
3662
3663```bash
3664> unsecureport remove 1234
3665Done
3666```
3667
3668### unsecureport remove all
3669
3670Remove all ports from the allowed unsecured port list.
3671
3672```bash
3673> unsecureport remove all
3674Done
3675```
3676
3677### unsecureport get
3678
3679Print all ports from the allowed unsecured port list.
3680
3681```bash
3682> unsecureport get
36831234
3684Done
3685```
3686
3687### uptime
3688
3689This command requires `OPENTHREAD_CONFIG_UPTIME_ENABLE` to be enabled.
3690
3691Print the OpenThread stack uptime (duration since OpenThread stack initialization).
3692
3693```bash
3694> uptime
369512:46:35.469
3696Done
3697>
3698```
3699
3700### uptime ms
3701
3702This command requires `OPENTHREAD_CONFIG_UPTIME_ENABLE` to be enabled.
3703
3704Print the OpenThread stack uptime in msec.
3705
3706```bash
3707> uptime ms
3708426238
3709Done
3710>
3711```
3712
3713### vendor name
3714
3715Get the vendor name.
3716
3717```bash
3718> vendor name
3719nest
3720Done
3721```
3722
3723Set the vendor name (requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`).
3724
3725```bash
3726> vendor name nest
3727Done
3728```
3729
3730### vendor model
3731
3732Get the vendor model.
3733
3734```bash
3735> vendor model
3736Hub Max
3737Done
3738```
3739
3740Set the vendor model (requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`).
3741
3742```bash
3743> vendor model Hub\ Max
3744Done
3745```
3746
3747### vendor swversion
3748
3749Get the vendor SW version.
3750
3751```bash
3752> vendor swversion
3753Marble3.5.1
3754Done
3755```
3756
3757Set the vendor SW version (requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`).
3758
3759```bash
3760> vendor swversion Marble3.5.1
3761Done
3762```
3763
3764### version
3765
3766Print the build version information.
3767
3768```bash
3769> version
3770OPENTHREAD/gf4f2f04; Jul  1 2016 17:00:09
3771Done
3772```
3773
3774### version api
3775
3776Print API version number.
3777
3778```bash
3779> version api
378028
3781Done
3782```
3783
3784### mac retries direct
3785
3786Get the number of direct TX retries on the MAC layer.
3787
3788```bash
3789> mac retries direct
37903
3791Done
3792```
3793
3794### mac retries direct \<number\>
3795
3796Set the number of direct TX retries on the MAC layer.
3797
3798```bash
3799> mac retries direct 5
3800Done
3801```
3802
3803### mac retries indirect
3804
3805Get the number of indirect TX retries on the MAC layer.
3806
3807```bash
3808> mac retries indirect
38093
3810Done
3811```
3812
3813### mac retries indirect \<number\>
3814
3815Set the number of indirect TX retries on the MAC layer.
3816
3817```bash
3818> mac retries indirect 5
3819Done
3820```
3821
3822### mac send \<op\>
3823
3824Instruct an Rx-Off-When-Idle device to send a mac frame to its parent. The mac frame could be either a mac data request or an empty mac data frame. Use `datarequest` to send a mac data request and `data` to send an empty mac data. This feature is for certification, it can only be used when `OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is enabled.
3825
3826```bash
3827> mac send datarequest
3828Done
3829```
3830
3831```bash
3832> mac send emptydata
3833Done
3834```
3835
3836### macfilter
3837
3838List the macfilter status, including address and received signal strength filter settings.
3839
3840```bash
3841> macfilter
3842Address Mode: Allowlist
38430f6127e33af6b403 : rss -95 (lqi 1)
38440f6127e33af6b402
3845RssIn List:
38460f6127e33af6b403 : rss -95 (lqi 1)
3847Default rss: -50 (lqi 3)
3848Done
3849```
3850
3851### macfilter addr
3852
3853List the address filter status.
3854
3855```bash
3856> macfilter addr
3857Allowlist
38580f6127e33af6b403 : rss -95 (lqi 1)
38590f6127e33af6b402
3860Done
3861```
3862
3863### macfilter addr disable
3864
3865Disable address filter mode.
3866
3867```bash
3868> macfilter addr disable
3869Done
3870```
3871
3872### macfilter addr allowlist
3873
3874Enable allowlist address filter mode.
3875
3876```bash
3877> macfilter addr allowlist
3878Done
3879```
3880
3881### macfilter addr denylist
3882
3883Enable denylist address filter mode.
3884
3885```bash
3886> macfilter addr denylist
3887Done
3888```
3889
3890### macfilter addr add \<extaddr\> \[rss\]
3891
3892Add an IEEE 802.15.4 Extended Address to the address filter, and fixed the received signal strength for the messages from the address if rss is specified.
3893
3894```bash
3895> macfilter addr add 0f6127e33af6b403 -95
3896Done
3897```
3898
3899```bash
3900> macfilter addr add 0f6127e33af6b402
3901Done
3902```
3903
3904### macfilter addr remove \<extaddr\>
3905
3906Remove the IEEE802.15.4 Extended Address from the address filter.
3907
3908```bash
3909> macfilter addr remove 0f6127e33af6b402
3910Done
3911```
3912
3913### macfilter addr clear
3914
3915Clear all the IEEE802.15.4 Extended Addresses from the address filter.
3916
3917```bash
3918> macfilter addr clear
3919Done
3920```
3921
3922### macfilter rss
3923
3924List the rss filter status
3925
3926```bash
3927> macfilter rss
39280f6127e33af6b403 : rss -95 (lqi 1)
3929Default rss: -50 (lqi 3)
3930Done
3931```
3932
3933### macfilter rss add \<extaddr\> \<rss\>
3934
3935Set the received signal strength for the messages from the IEEE802.15.4 Extended Address. If extaddr is \*, default received signal strength for all received messages would be set.
3936
3937```bash
3938> macfilter rss add * -50
3939Done
3940```
3941
3942```bash
3943> macfilter rss add 0f6127e33af6b404 -85
3944Done
3945```
3946
3947### macfilter rss add-lqi \<extaddr\> \<lqi\>
3948
3949Set the received link quality for the messages from the IEEE802.15.4 Extended Address. Valid lqi range [0,3] If extaddr is \*, default received link quality for all received messages would be set. Equivalent with 'filter rss add' with similar usage
3950
3951```bash
3952> macfilter rss add-lqi * 3
3953Done
3954```
3955
3956```bash
3957> macfilter rss add 0f6127e33af6b404 2
3958Done
3959```
3960
3961### macfilter rss remove \<extaddr\>
3962
3963Removes the received signal strength or received link quality setting on the Extended Address. If extaddr is \*, default received signal strength or link quality for all received messages would be unset.
3964
3965```bash
3966> macfilter rss remove *
3967Done
3968```
3969
3970```bash
3971> macfilter rss remove 0f6127e33af6b404
3972Done
3973```
3974
3975### macfilter rss clear
3976
3977Clear all the received signal strength or received link quality settings.
3978
3979```bash
3980> macfilter rss clear
3981Done
3982```
3983
3984### diag
3985
3986Factory Diagnostics module is enabled only when building OpenThread with `OPENTHREAD_CONFIG_DIAG_ENABLE=1` option. Go [diagnostics module][diag] for more information.
3987
3988[diag]: ../../src/core/diags/README.md
3989