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