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