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