Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
234 commits
Select commit Hold shift + click to select a range
213745a
[cli] provide default 'APP' log output implementation in CLI module (…
EskoDijk Jan 21, 2026
cda1a0c
[tlvs] use `Tlv::Info` for reading TLV values (#12322)
abtink Jan 22, 2026
3061fa1
[otns] add default (weak) OTNS platform API implementation in core (#…
EskoDijk Jan 22, 2026
3b676fb
[ip6] skip MPL processing on SEDs and detect self-sent multicast (#12…
abtink Jan 23, 2026
5cae26e
[coap] simplify `Coap::Message` implementation (#12313)
abtink Jan 23, 2026
0c4f22d
[core] introduce `VendorInfo` class for vendor parameters (#12328)
abtink Jan 23, 2026
558aea7
[coap] update `Interceptor` to use `Msg` (#12331)
abtink Jan 26, 2026
13277e8
[mesh-forwarder] evict lower priority msg on direct tx queue limit (#…
abtink Jan 26, 2026
a68b30a
[cli] `joiner start` to use correct VendorInfo data (#12332)
EskoDijk Jan 26, 2026
8a1482c
github-actions: bump actions/setup-go from 5.5.0 to 6.2.0 (#12335)
dependabot[bot] Jan 26, 2026
179f770
[api] add `otMessageClone` and enhance UDP docs (#12326)
abtink Jan 26, 2026
f121ebc
[tcat] enable TCAT Commissioner to receive Alerts/TLV events over TLS…
EskoDijk Jan 27, 2026
8c74262
[api] clarify NAT64 prefix discovery priority in api doc (#12180)
yangsong-cnyn Jan 27, 2026
36906a0
[ai] add GEMINI.md for project context (#12282)
bukepo Jan 29, 2026
8da5e19
[mac] remove redundant `ExtAddress::operator==()` (#12344)
abtink Jan 29, 2026
2a76e91
[meshcop] add `GenerateRandom()` to `ExtendedPanId` class (#12342)
abtink Jan 29, 2026
397f5b4
[coap] simplify response handler and use `Msg` class (#12338)
abtink Jan 29, 2026
8614dc0
[mesh-forwarder] avoid forwarding multicast messages back to SED orig…
wyssalan Jan 29, 2026
b4d6b52
[nexus] update transmit frames with IEEE 802.15.4 FCS (#12347)
jwhui Jan 29, 2026
78cf696
[nexus] fix IEEE 802.15.4 FCS calculation in nexus radio (#12349)
jwhui Jan 30, 2026
266fa62
[meshcop] introduce `NetworkIdentity` class (#12343)
abtink Jan 30, 2026
3318ae6
[thread-cert] simulator: mark virtual-time node 'awake' whenever an e…
EskoDijk Jan 30, 2026
5051fd1
[nexus] enable PCAP output (#12350)
jwhui Jan 30, 2026
60813b8
[nexus] add test case 5.1.1 (Attaching) (#12353)
jwhui Feb 1, 2026
0f6f831
github-actions: bump step-security/harden-runner from 2.13.1 to 2.14.…
dependabot[bot] Feb 2, 2026
b8f5a6f
[nexus] add support for writing test_info.json (#12355)
jwhui Feb 3, 2026
e5d2c58
[gn] add cli_uart (#12345)
bukepo Jan 28, 2026
7cdbce5
[gn] define macros to `1`/`0` instead of `true`/`false` (#12345)
bukepo Jan 28, 2026
54b9363
[test] conditionally test RCP restoration (#12339)
bukepo Feb 3, 2026
7c87684
[border-router] detect DHCPv6-PD prefix conflict with on-link prefixe…
abtink Feb 3, 2026
0bbe9dc
[nexus] add packet verification for test case 5.1.1 (Attaching) (#12358)
jwhui Feb 3, 2026
d388095
[mle] add config and test for discovery request callback (#12284)
abtink Feb 3, 2026
a7362c1
[tests] fix build error in nexus_discover_scan test (#12360)
jwhui Feb 3, 2026
d97ec73
[uptime] move `otConvertDurationInSecondsToString` to FTD/MTD block (…
tanyanquan Feb 3, 2026
daf7fa6
[nexus] add script to run tests and verify results (#12359)
jwhui Feb 4, 2026
1a0023d
[nexus] add GitHub Actions workflow for Nexus tests (#12362)
jwhui Feb 4, 2026
7577311
[nexus] add test 5.1.2 and refactor nexus test infrastructure (#12363)
jwhui Feb 4, 2026
848918d
[joiner] introduce `Seeker` to handle discovery and candidate trackin…
abtink Feb 4, 2026
dd0d831
[border-router] detect DHCPv6-PD prefix conflict with route prefixes …
abtink Feb 4, 2026
5144638
[coap] add helper methods to `CoapBase::Metadata` (#12364)
abtink Feb 4, 2026
69c45ce
[nexus] add test 5.1.3 Router Address Reallocation (#12365)
jwhui Feb 4, 2026
3fec404
[seeker] introduce new `otSeeker` APIs (#12357)
abtink Feb 4, 2026
07cbcee
[nexus] add test 5.1.4 Router Address Reallocation (#12368)
jwhui Feb 5, 2026
12c80e8
[script] fix to make 'run-clang-tidy' findable for 'make-pretty-clang…
EskoDijk Feb 6, 2026
a393e51
[nexus] add test 5.1.5 Router Address Timeout (#12372)
jwhui Feb 6, 2026
c815ca4
[nexus] add test 5.1.6 Leader removes Router ID (#12374)
jwhui Feb 6, 2026
0f96d51
[coap] add payload marker when block-wise transfer starts (#12381)
abtink Feb 6, 2026
b38881e
[nexus] add test 5.1.7 Minimum Supported Children – IPv6 Datagram Buf…
jwhui Feb 6, 2026
e150c30
[cli] fix `BlockwiseTransmitHook` to be stateless (#12380)
abtink Feb 6, 2026
5b0925f
[nexus] add test 5.1.8 Attaching to a Router with better connectivity…
jwhui Feb 6, 2026
fef1426
[test] fix and enhance `test_coap_block.py` (#12386)
abtink Feb 6, 2026
6f045ef
[nexus] add test 5.1.9 Attaching to a REED with better connectivity (…
jwhui Feb 6, 2026
9a5527d
[nexus] add test 5.1.10 Parent Selection - Superior Link Quality (#12…
jwhui Feb 6, 2026
af762f1
[nexus] add test 5.1.11 Attaching to a REED with better link quality …
jwhui Feb 6, 2026
f983585
[nexus] add test 5.1.12 New Router Neighbor Synchronization (#12384)
jwhui Feb 7, 2026
47e9bf7
[nexus] add test 5.1.13 Router Synchronization after Reset (#12385)
jwhui Feb 8, 2026
c009087
[nexus] add error handling to SetRouterEligible calls (#12390)
jwhui Feb 8, 2026
52bd082
[joiner] fix potential message leak when `Start()` fails (#12394)
abtink Feb 8, 2026
c457b6b
[pktverify] remove excessive print output in Bytes comparison (#12391)
jwhui Feb 8, 2026
54b3573
[coap] optimize retransmission timer scheduling (#12366)
abtink Feb 8, 2026
3f11074
[joiner] refresh ID from EUI-64 in `Start()` when discerner is empty …
abtink Feb 8, 2026
1b523d7
github-actions: bump step-security/harden-runner from 2.14.1 to 2.14.…
dependabot[bot] Feb 9, 2026
62a2d79
[common] add `MessageBackedArray` class (#12341)
abtink Feb 9, 2026
ebba0b3
[nexus] support `ctest` labels to categorize tests (#12367)
abtink Feb 9, 2026
968ae74
[tests] add timeout to cert suite execution (#12379)
abtink Feb 9, 2026
e4ffaf3
[nexus] add test 5.2.1 REED Attach (#12388)
jwhui Feb 9, 2026
66c7272
[border-agent] implement Border Admitter (#12201)
abtink Feb 9, 2026
4c5d8f6
[nexus] add test 5.2.3 Leader rejects Address Solicit (2-hops away) (…
jwhui Feb 9, 2026
462425c
[nexus] improve robustness of test 5.2.1 (#12402)
jwhui Feb 10, 2026
7215d06
[nexus] add test 5.2.4 Router Upgrade Threshold - REED (#12395)
jwhui Feb 10, 2026
348b2f6
[nexus] check return value of AddRssIn in test 5.1.11 (#12403)
jwhui Feb 10, 2026
b347195
[nexus] add helpers for sending and validating ICMPv6 echo exchange (…
abtink Feb 11, 2026
baa3df8
[nexus] add test case 5.2.5 Address Query – REED (#12396)
jwhui Feb 11, 2026
066856d
[nexus] add test 5_2_6 Router Downgrade Threshold - REED (#12397)
jwhui Feb 11, 2026
dd19659
[nexus] add test 5.2.7 REED Synchronization (#12400)
jwhui Feb 11, 2026
27a242f
[nexus] address incorrect check in border admitter test (#12409)
abtink Feb 11, 2026
934ce8a
[nexus] add test 5.3.1 Link-Local Addressing (#12404)
jwhui Feb 11, 2026
f7061af
[nexus] fix flaky test 5.2.1 by allowing out-of-order events (#12411)
jwhui Feb 11, 2026
9137223
[nexus] add test 5.3.2 Realm-Local Addressing (#12405)
jwhui Feb 11, 2026
333d720
[nexus] fix flaky test 5.2.3 by increasing downgrade threshold (#12418)
jwhui Feb 11, 2026
173ce37
[nexus] add test 5.3.3 Address Query - ML-EID (#12407)
jwhui Feb 12, 2026
8559712
[nexus] use `OT_CFLAGS` for stricter build-time checks & fix warnings…
abtink Feb 12, 2026
cb50246
[nexus] add test 5.3.4 MTD EID-to-RLOC Map Cache (#12413)
jwhui Feb 12, 2026
dcc6b21
[nexus] add test 5.3.5 Routing - Link Quality (#12415)
jwhui Feb 12, 2026
b0f6a85
[ip6] expose static multicast address getters and remove wrapper meth…
abtink Feb 12, 2026
8489fb3
[nexus] add test 5.3.6 Router ID Mask (#12417)
jwhui Feb 12, 2026
5d8ba73
[nexus] add test 5.3.7 Duplicate Address Detection (#12419)
jwhui Feb 12, 2026
7f83703
[tests] add nexus test 5.3.8 (MTD Child Address Set) (#12426)
jwhui Feb 12, 2026
6875a78
[cli] add `ba admitter` commands (#12410)
abtink Feb 12, 2026
7f3ab64
[cli] add `ToYesNo()` helper to convert boolean to string (#12424)
abtink Feb 12, 2026
81ad265
[nexus] refactor all verify_5_*.py scripts to use standard code style…
jwhui Feb 13, 2026
16cb5ff
[seeker] optimize candidate storage and connection strategy (#12389)
abtink Feb 13, 2026
d9a4d98
[nexus] add test 5.3.9 Address Query - DHCP GUA (#12427)
jwhui Feb 13, 2026
75b39f0
[nexus] add test 5.3.10 Address Query - SLAAC GUA (#12429)
jwhui Feb 13, 2026
ede310d
[nexus] add test 5.3.11 Address Query Timeout Intervals (#12430)
jwhui Feb 13, 2026
6122986
[tests] remove thread-cert tests replaced by Nexus (#12443)
jwhui Feb 13, 2026
2bf7cb1
[pktverify] add filter_ipv6_src() to PacketFilter class (#12444)
jwhui Feb 13, 2026
83eb368
[nexus] remove redundant CoAP ACK code checks in verify scripts (#12445)
jwhui Feb 13, 2026
3d5b59b
[nexus] add test 5.5.1 Leader Reboot < timeout (#12431)
jwhui Feb 13, 2026
2d13e58
[cli] use `ToYesNo()` in `ba admitter` output (#12439)
abtink Feb 13, 2026
86efe49
[nexus] add test case 5.5.2 Leader Reboot > timeout (#12432)
jwhui Feb 13, 2026
3ea5722
[nexus] add test 5.5.3 Split and Merge: Branch with Child (#12434)
jwhui Feb 13, 2026
da64c7c
[nexus] add `Node::FindMatchingAddress()` helper (#12437)
abtink Feb 13, 2026
4437e60
[nexus] add test 5.5.4.1 Split and Merge with Routers (#12435)
jwhui Feb 14, 2026
31f9693
[nexus] update Node::SetName() to use underscore as separator (#12452)
jwhui Feb 14, 2026
97004e8
[nexus] fix flakiness in test 5.5.4.1 (#12455)
jwhui Feb 15, 2026
6579356
[nexus] add test 5.5.4.2 Split and Merge with Routers (#12436)
jwhui Feb 15, 2026
8d793ae
[nexus] add test 5.5.5 Split and Merge with REED (#12448)
jwhui Feb 16, 2026
95780fd
[nexus] fix flakiness in Test 5.5.1 (#12460)
jwhui Feb 16, 2026
eaae5dc
[nexus] add test case 5.5.7 Split/Merge Routers: Three-way Separated …
jwhui Feb 16, 2026
9eb3866
[nexus] add test 5.8.2 Key Increment Of 1 (#12457)
jwhui Feb 17, 2026
1d97236
[nexus] add test 6.1.1 Attaching to a Router (#12463)
jwhui Feb 17, 2026
295bd70
[nexus] add test 5.7.1 CoAP Diagnostic Get, Response, and Reset (#12456)
jwhui Feb 17, 2026
d095f59
[nexus] add test 5.8.3 Key Increment of 1 With Roll-over (#12458)
jwhui Feb 17, 2026
cba01ec
[nexus] add test 6.1.2 Attaching to a REED (#12464)
jwhui Feb 17, 2026
f97674e
[border-router] fix stop behavior in `PdPrefixManager` (#12442)
abtink Feb 17, 2026
56be53f
[nexus] fix intermittent failure in Test 5.5.5 (#12461) (#12468)
jwhui Feb 17, 2026
e0614c6
[nexus] fix intermittent failure in test 6.1.2 (#12472)
jwhui Feb 17, 2026
50325ac
[coap] introduce `Request` and `PendingRequests` (#12421)
abtink Feb 17, 2026
75db779
[nexus] fix flake in test 5.8.3 Key Increment of 1 With Roll-over (#1…
jwhui Feb 17, 2026
416bb89
[mac] introduce `ScanResult` to encapsulate scan results (#12453)
abtink Feb 17, 2026
ce3d246
github-actions: bump actions/setup-python from 5.6.0 to 6.2.0 (#12465)
dependabot[bot] Feb 17, 2026
c5177f8
[nexus] add test 5.7.2 CoAP Diagnostic Get/Reset – REED (#12469)
jwhui Feb 17, 2026
41a569b
[nexus] add test 6.2.1 Connectivity when Parent Creates Partition (#1…
jwhui Feb 17, 2026
6c7c0da
[nexus] use `kAsFed` in `Node::Join` (#12454)
abtink Feb 18, 2026
6962c90
[nexus] add test 6.1.3 Attaching to a Router with better connectivity…
jwhui Feb 18, 2026
d5e57a4
[nexus] add test 5.7.3 CoAP Diagnostic Query and Answer – Router, FED…
jwhui Feb 18, 2026
db2d991
[nexus] extend `Node::Join()` to allow specifying network data type o…
abtink Feb 18, 2026
c29d3cc
[nexus] add test 6.2.2 Connectivity when Parent Joins Partition (#12479)
jwhui Feb 18, 2026
6501c88
[nexus] update tshark to 4.6.2 or later (#12482)
jwhui Feb 18, 2026
fd2bcda
[nexus] add test 5.6.1 Network data propagation – Leader as BR (#12450)
jwhui Feb 18, 2026
ebc7d86
[nexus] add test 6.1.4 Attaching to a REED with Better Connectivity (…
jwhui Feb 18, 2026
4888911
[nexus] add test 6.4.1 Link-Local Addressing (#12483)
jwhui Feb 18, 2026
ab0c978
[nexus] add test 6.3.1 Orphan Reattach (#12471)
jwhui Feb 18, 2026
7f8e04a
[tests] update seeker unit test (#12475)
abtink Feb 18, 2026
9327918
[nexus] fix occasional failure in test 6.1.4 (#12491)
jwhui Feb 19, 2026
091414e
[nexus] add test 6.1.5 Attaching with Better Link Quality (#12486)
jwhui Feb 19, 2026
afbc7ef
[nexus] add test 6.3.2 network data update (#12490)
jwhui Feb 19, 2026
d44de4e
[nexus] add test 7.1.1 Network Data Propagation (#12492)
jwhui Feb 19, 2026
04f719e
[crypto] PSA API: introduce default OpenThread crypto platform port (…
LuDuda Feb 19, 2026
c60b4fc
[nexus] add test 6.5.1 Child Synchronization after Reset - Reattach (…
jwhui Feb 19, 2026
0c003f1
[nexus] add test 5.6.2 Network data propagation – Router as BR (#12485)
jwhui Feb 19, 2026
de4b7f2
[nexus] add test 6.4.2 Realm-Local Addressing (#12487)
jwhui Feb 19, 2026
ada7bad
[nexus] add test 6.6.1 Key Increment of 1, Single Hop (#12489)
jwhui Feb 19, 2026
7ca1991
[nexus] add test 6.1.7 End Device Synchronization (#12495)
jwhui Feb 19, 2026
6c63700
[nexus] add test 6.6.2 Key Increment of 1 with Roll-over (#12490) (#1…
jwhui Feb 19, 2026
894e060
[nexus] add test 6.1.6 Attaching to a REED with Better Link Quality (…
jwhui Feb 20, 2026
f277297
[nexus] add test 7.1.2 Network data propagation - Border Router as Ro…
jwhui Feb 20, 2026
be867de
[nexus] clear OnMeshPrefixConfig before use in tests (#12501)
jwhui Feb 20, 2026
9a525c4
[nexus] only print logs for failed tests in run_nexus_tests.sh (#12502)
jwhui Feb 20, 2026
0d446ae
[nexus] add test 6.5.2 Child Sync after Reset - No Parent Response (#…
jwhui Feb 20, 2026
c85ce4e
[nexus] add test 6.5.3 and fix SED polling verification (#12496)
jwhui Feb 20, 2026
790ac56
[nexus] fix duplicate alarm firing in simulation core (#12509)
jwhui Feb 20, 2026
d4e2c64
[nexus] add test 5.6.3 Network data propagation - Leader as BR (#12500)
jwhui Feb 20, 2026
964c1eb
[nexus] add test 7.1.3 Network data propagation - Border Router as Le…
jwhui Feb 20, 2026
c73c600
[nexus] add test 5.6.4 Network data propagation – Router as BR (#12504)
jwhui Feb 20, 2026
49ba31d
[udp] use `LinkedList::ContainsMatching()` in `IsPortInUse()` (#12498)
abtink Feb 20, 2026
a737be4
[message] add `ReadAtAndAdvanceOffset()` helper method (#12503)
abtink Feb 20, 2026
382e486
[ncp] implement ncp platform dnssd srv resolve (#12462)
Irving-cl Feb 20, 2026
525d9e6
[nexus] add test 9.2.1 Commissioner - MGMT_COMMISSIONER_GET (#12510)
jwhui Feb 20, 2026
a404010
[tests] fix inconsistent casing in Thread Nodes multicast address con…
jwhui Feb 20, 2026
2c7e344
[nexus] add test 5.6.5 Network data updates – Router as BR (#12505)
jwhui Feb 20, 2026
fe9492f
[nexus] add test 7.1.4 Network data propagation - BR as Router (#12512)
jwhui Feb 21, 2026
12f155c
[nexus] add test 7.1.5 Network data updates - 3 Prefixes (#12513)
jwhui Feb 21, 2026
c5006b0
[nexus] add test 5.6.6 Network data expiration (#12506)
jwhui Feb 21, 2026
eca4f1b
[tests] improve CoAP TLV disambiguation in packet verification (#12514)
jwhui Feb 21, 2026
d5996e2
[nexus] add test 5.6.7 Request Network Data Updates – REED device (#1…
jwhui Feb 22, 2026
a6c4acc
[nexus] add test 7.1.6 Network data propagation - BR leaves/rejoins (…
jwhui Feb 22, 2026
bc6f2da
[nexus] add test 9.2.2 On Mesh Commissioner - MGMT_SET (#12511)
jwhui Feb 22, 2026
6348220
[nexus] add test 5.6.9 Router Behavior - External Route (#12518)
jwhui Feb 22, 2026
7d10fae
[nexus] add test 7.1.8 Network data propagation - BR as FED (#12520)
jwhui Feb 22, 2026
ecc57f7
[message] enhance `Clone()` to support different reserved header size…
abtink Feb 22, 2026
404c804
[message] add `DetermineLengthAfterOffset()` helper method (#12508)
abtink Feb 22, 2026
d700086
[message] update `SetOffset()` and `MoveOffset()` to clamp offset (#1…
abtink Feb 23, 2026
5d92992
[coap] enhance `PendingRequest` and move request management functiona…
abtink Feb 23, 2026
aba8895
[nexus] fix intermittent failure in test 5.5.5 (#12523)
jwhui Feb 23, 2026
ada63f2
[nexus] add test 9.2.3 Getting the Active Operational Dataset (#12519…
jwhui Feb 23, 2026
b8f0c79
github-actions: bump docker/login-action from 3.6.0 to 3.7.0 (#12529)
dependabot[bot] Feb 23, 2026
37dc3d6
[nexus] add test 7.1.7 Network data updates – BR device rejoins (#12519)
jwhui Feb 23, 2026
e20bfbc
[nexus] add test 9.2.4 Update Active Dataset via Commissioner (#12525)
jwhui Feb 23, 2026
c280027
[key-manager] move initialization to `Instance::AfterInit` (#12476)
abtink Feb 23, 2026
088154d
[tests] remove cert scripts migrated to Nexus (#12516)
jwhui Feb 23, 2026
ac36d9d
[spinel] add libopenthread-radio-spinel GN library (#12466)
Martin-NXP Feb 23, 2026
b3d169d
[nexus] add test 9.2.5 Updating Active Operational Dataset (#12526)
jwhui Feb 23, 2026
7f5aab9
[tests] replace IgnoreError with SuccessOrQuit in Nexus tests (#12530)
jwhui Feb 23, 2026
c7bbcb8
[nexus] fix flakiness in test 9.2.4 (#12531)
jwhui Feb 23, 2026
3e0bff9
[nexus] fix test 9.2.5 flakiness and align with spec (#12534)
jwhui Feb 24, 2026
fd372a9
[coap] decouple callback from queue iteration in `PendingRequests` (#…
abtink Feb 24, 2026
b81da07
[nexus] add test 9.2.6 Commissioning Dissemination (#12532)
jwhui Feb 24, 2026
33c81d4
[nexus] fix intermittent failures in test 7.1.7 (#12540)
jwhui Feb 24, 2026
0058adf
[nexus] update README.md with build and run instructions (#12541)
jwhui Feb 24, 2026
ecd4b01
[nexus] add test 9.2.7 and fix pktverify timestamp parsing (#12535)
jwhui Feb 24, 2026
632669f
[cli] enhance `batracker agents` to display parsed txt data (#12521)
abtink Feb 24, 2026
65c1b97
[logging] introduce `Log{Level}OnError` macros and update core (#12533)
abtink Feb 24, 2026
d8dc2a4
[address-resolver] simplify `SendAddressError()` and its usage (#12536)
abtink Feb 24, 2026
c83f924
[bbr] update `Manager::SendBackboneAnswer()` to use `InitAsPost()` (#…
abtink Feb 24, 2026
523f501
[docs] update GEMINI.md with Nexus test instructions (#12542)
jwhui Feb 24, 2026
e6003bc
[nexus] add test 9.2.8 Persistent Active/Pending Operational Datasets…
jwhui Feb 24, 2026
41dddb5
[nexus] fix intermittent failures in test 7.1.8 (#12543)
jwhui Feb 25, 2026
fd24a5d
[nexus] add test 9.2.10 Delay timer persistent at partitioning (#12546)
jwhui Feb 25, 2026
cb54267
[nexus] add test 5.8.4 Security Policy TLV (#12480)
jwhui Feb 25, 2026
89276c0
[tests] add Nexus test 9.2.11 for Leader Delay Timer Management (#12547)
jwhui Feb 25, 2026
2f975ae
[tmf] remove redundant `SetSockPortToTmf()` calls (#12544)
abtink Feb 25, 2026
272e9a7
[nexus] add test 9.2.14 PAN ID Query Requests (#12554)
jwhui Feb 25, 2026
201042d
[nexus] add test 9.2.15 Attaching with different Pending Dataset (#12…
jwhui Feb 25, 2026
b354c62
[nexus] fix flakiness in test 7.1.4 (#12561)
jwhui Feb 26, 2026
2202fae
[nexus] fix and stabilize test 9.2.7 (#12553)
jwhui Feb 26, 2026
11cea06
[nexus] add test 9.2.13 Energy Scan Requests (#12551)
jwhui Feb 26, 2026
7c9600c
[tests] add Nexus test 9.2.16 for dataset synchronization (#12556)
jwhui Feb 26, 2026
88db238
[coap] clear M flag in Block2 request as required by RFC 7959 (#12563)
EskoDijk Feb 26, 2026
8612d40
[posix] update `mdns-socket` to support one-shot multicast DNS querie…
bukepo Feb 26, 2026
3758ac4
[nexus] add test 9.2.17 Orphaned End Devices (#12548) (#12562)
jwhui Feb 26, 2026
ec1eb19
[spinel] fix wrong arguments for various data types in Logger (#12557)
bukepo Feb 26, 2026
e8e2c21
[nexus] add test 9.2.18 for active timestamp rollback (#12564)
jwhui Feb 26, 2026
4a275b3
[nexus] add test 9.2.9 for Pending Dataset synchronization (#12545)
jwhui Feb 26, 2026
fd9fc51
[nexus] add test 9.2.19 and improve IPv6 verification (#12565)
jwhui Feb 26, 2026
41d55e6
[nexus] add test 9.2.12 Merging on Different Channels and PAN IDs (#1…
jwhui Feb 26, 2026
993cd25
[netdata-publisher] remove entry immediately when desired num is zero…
abtink Feb 26, 2026
bc42282
[nexus] fix intermittent failure in test 9.2.14 (#12570)
jwhui Feb 26, 2026
a7c051f
[tests] remove migrated thread-cert scripts (#12566)
jwhui Feb 26, 2026
f53b164
[nexus] fix intermittent failure in test 5.6.6 (#12573)
jwhui Feb 26, 2026
3ea2dbe
[nexus] increase merge wait time in test 5.5.4.1 (#12574)
jwhui Feb 26, 2026
f03cecd
[tmf] introduce specialized `SendMessageTo()` methods in `Tmf::Agent`…
abtink Feb 26, 2026
25761fb
[nexus] improve robustness of test 9.2.6 verification (#12575)
jwhui Feb 26, 2026
7c88bc7
[nexus] improve robustness of MLE and WPAN packet verification (#12571)
jwhui Feb 26, 2026
bf23405
[cli] CoAP blockwise PUT/POST to send Block1 option in final response…
EskoDijk Feb 27, 2026
425adf5
[nexus] add '1_1' prefix to nexus test filenames (#12569)
jwhui Feb 27, 2026
69fffdb
[backtrace] add `otSysRegisterCrashCallback` to register crash callba…
wtongze Feb 27, 2026
05ef3b4
[coap] reorganize `CoapBase::PendingRequests` methods (#12577)
abtink Feb 27, 2026
618af2d
add guard for error code that was removed in TF-PSA-Crypto 1.0
valeriosetti Feb 14, 2026
dbeb857
TLS functions do not require rng functions from Mbed TLS 4.0
valeriosetti Feb 16, 2026
40ee760
comment out error codes and include files removed in Mbed TLS 4
valeriosetti Feb 24, 2026
43b2d23
remove duplicated inclusing of header file
valeriosetti Feb 26, 2026
f2bfced
Revert "[key-manager] move initialization to `Instance::AfterInit` (#…
valeriosetti Mar 1, 2026
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[nexus] add test 5.7.1 CoAP Diagnostic Get, Response, and Reset (#12456)
This commit adds a new Nexus test case for 'CoAP Diagnostic Get
Request, Response and Reset Commands' (5.7.1) as specified in the
test specification.

Summary of changes:
- Implemented Nexus test 5.7.1:
    - Added test_5_7_1.cpp: Sets up a network topology with a Leader,
      Router 1 (DUT), and various child nodes (FED, MED, SED, REED).
      Executes the 8-step test sequence by sending CoAP Diagnostic
      Get and Reset commands from the Leader to the DUT using direct
      method calls. Uses AllowList for topology management and sets
      log level to note.
    - Added verify_5_7_1.py: PCAP verification script for test 5.7.1.
      Validates the presence and values of requested Network
      Diagnostic TLVs in CoAP requests and responses. Ensures the
      DUT correctly handles requests for MAC Counters, Timeout
      (omitted), and Child Table, and verifies the reset functionality.
- Enhanced verification utilities:
    - Updated verify_utils.py: Added length checks during Thread TLV
      parsing in CoAP payloads to handle overlapping TLV types
      correctly and prevent verification failures.
- Updated build and execution scripts:
    - Modified CMakeLists.txt to build the new 5.7.1 test executable.
    - Updated run_nexus_tests.sh to include 5.7.1 in the default test
      list.
  • Loading branch information
jwhui authored Feb 17, 2026
commit 295bd7051439ab73c30d8bf68dff551b975cf71e
1 change: 1 addition & 0 deletions tests/nexus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ ot_nexus_test(5_5_4_1 "cert;nexus")
ot_nexus_test(5_5_4_2 "cert;nexus")
ot_nexus_test(5_5_5 "cert;nexus")
ot_nexus_test(5_5_7 "cert;nexus")
ot_nexus_test(5_7_1 "cert;nexus")
ot_nexus_test(5_8_2 "cert;nexus")
ot_nexus_test(6_1_1 "cert;nexus")

Expand Down
1 change: 1 addition & 0 deletions tests/nexus/run_nexus_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ DEFAULT_TESTS=(
"5_5_4_2"
"5_5_5"
"5_5_7"
"5_7_1"
"5_8_2"
"6_1_1_A"
"6_1_1_B"
Expand Down
305 changes: 305 additions & 0 deletions tests/nexus/test_5_7_1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
/*
* Copyright (c) 2026, The OpenThread Authors.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

#include <stdio.h>

#include "platform/nexus_core.hpp"
#include "platform/nexus_node.hpp"
#include "thread/network_diagnostic.hpp"

namespace ot {
namespace Nexus {

/**
* Time to advance for a node to form a network and become leader, in milliseconds.
*/
static constexpr uint32_t kFormNetworkTime = 13 * 1000;

/**
* Time to advance for a node to join as a child and upgrade to a router, in milliseconds.
*/
static constexpr uint32_t kAttachToRouterTime = 200 * 1000;

/**
* Time to advance for the network to stabilize after nodes have attached.
*/
static constexpr uint32_t kStabilizationTime = 10 * 1000;

/**
* Time to advance for the diagnostic response to be received.
*/
static constexpr uint32_t kDiagResponseTime = 5 * 1000;

void Test5_7_1(void)
{
/**
* 5.7.1 CoAP Diagnostic Get Request, Response and Reset Commands
*
* 5.7.1.1 Topology
* - Topology A
* - Topology B
*
* 5.7.1.2 Purpose & Description
* These cases test the Diagnostic Get and Reset Commands as a part of the Network Management.
*
* Spec Reference | V1.1 Section | V1.3.0 Section
* --------------------|--------------|---------------
* Diagnostic Commands | 10.11.2 | 10.11.2
*/

Core nexus;

Node &dut = nexus.CreateNode();
Node &leader = nexus.CreateNode();
Node &fed1 = nexus.CreateNode();
Node &med1 = nexus.CreateNode();
Node &sed1 = nexus.CreateNode();
Node &reed1 = nexus.CreateNode();

dut.SetName("DUT");
leader.SetName("LEADER");
fed1.SetName("FED_1");
med1.SetName("MED_1");
sed1.SetName("SED_1");
reed1.SetName("REED_1");

nexus.AdvanceTime(0);

Instance::SetLogLevel(kLogLevelNote);

/**
* Step 1: All
* - Description: Ensure topology is formed correctly.
* - Pass Criteria: N/A
*/
Log("Step 1: All");

/** Use AllowList to specify links between nodes. */
dut.AllowList(leader);
dut.AllowList(fed1);
dut.AllowList(med1);
dut.AllowList(sed1);
dut.AllowList(reed1);

leader.AllowList(dut);
fed1.AllowList(dut);
med1.AllowList(dut);
sed1.AllowList(dut);
reed1.AllowList(dut);

leader.Form();
nexus.AdvanceTime(kFormNetworkTime);

dut.Join(leader);
nexus.AdvanceTime(kAttachToRouterTime);

VerifyOrQuit(dut.Get<Mle::Mle>().IsRouter());

fed1.Join(dut, Node::kAsFed);
med1.Join(dut, Node::kAsMed);
sed1.Join(dut, Node::kAsSed);
reed1.Join(dut, Node::kAsFtd);

nexus.AdvanceTime(kAttachToRouterTime);
nexus.AdvanceTime(kStabilizationTime);

const Ip6::Address &dutRloc = dut.Get<Mle::Mle>().GetMeshLocalRloc();

/**
* Step 2: Leader
* - Description: Harness instructs the device to send DIAG_GET.req to the DUT’s Routing Locator (RLOC) for the
* following diagnostic TLV types:
* - TLV Type 0 – MAC Extended Address (64-bit)
* - TLV Type 1 - MAC Address (16-bit)
* - TLV Type 2 - Mode (Capability information)
* - TLV Type 4 – Connectivity
* - TLV Type 5 – Route64
* - TLV Type 6 – Leader Data
* - TLV Type 7 – Network Data
* - TLV Type 8 – IPv6 address list
* - TLV Type 17 – Channel Pages
* - Pass Criteria:
* - The DUT MUST respond with a DIAG_GET.rsp response containing the requested diagnostic TLVs:
* - CoAP Response Code: 2.04 Changed
* - CoAP Payload:
* - TLV Type 0 - MAC Extended Address (64-bit)
* - TLV Type 1 - MAC Address (16-bit)
* - TLV Type 2 - Mode (Capability information)
* - TLV Type 4 – Connectivity
* - TLV Type 5 – Route64 (required ONLY for Topology A)
* - TLV Type 6 – Leader Data
* - TLV Type 7 – Network Data
* - TLV Type 8 – IPv6 address list
* - TLV Type 17 – Channel Pages
* - The presence of each TLV MUST be validated. Where possible, the value of the TLV’s MUST be validated.
* - Route64 TLV MUST be omitted in Topology B.
*/
Log("Step 2: Leader");

uint8_t tlvTypes2[] = {
NetworkDiagnostic::Tlv::kExtMacAddress, NetworkDiagnostic::Tlv::kAddress16,
NetworkDiagnostic::Tlv::kMode, NetworkDiagnostic::Tlv::kConnectivity,
NetworkDiagnostic::Tlv::kRoute, NetworkDiagnostic::Tlv::kLeaderData,
NetworkDiagnostic::Tlv::kNetworkData, NetworkDiagnostic::Tlv::kIp6AddressList,
NetworkDiagnostic::Tlv::kChannelPages,
};

SuccessOrQuit(leader.Get<NetworkDiagnostic::Client>().SendDiagnosticGet(dutRloc, tlvTypes2, sizeof(tlvTypes2),
nullptr, nullptr));
nexus.AdvanceTime(kDiagResponseTime);

/**
* Step 3: Leader
* - Description: Harness instructs the device to send DIAG_GET.req to the DUT’s Routing Locator (RLOC) for the
* following diagnostic TLV type:
* - TLV Type 9 - MAC Counters
* - Pass Criteria:
* - The DUT MUST respond with a DIAG_GET.rsp response containing the requested diagnostic TLV:
* - CoAP Response Code: 2.04 Changed
* - CoAP Payload:
* - TLV Type 9 - MAC Counters
* - TLV Type 9 - MAC Counters MUST contain a list of MAC Counters.
*/
Log("Step 3: Leader");

uint8_t tlvTypes3[] = {NetworkDiagnostic::Tlv::kMacCounters};

SuccessOrQuit(leader.Get<NetworkDiagnostic::Client>().SendDiagnosticGet(dutRloc, tlvTypes3, sizeof(tlvTypes3),
nullptr, nullptr));
nexus.AdvanceTime(kDiagResponseTime);

/**
* Step 4: Leader
* - Description: Harness instructs the device to send DIAG_GET.req to the DUT’s Routing Locator (RLOC) for the
* following diagnostic TLV type:
* - TLV Type 3 – Timeout
* - Pass Criteria:
* - The DUT MUST respond with a DIAG_GET.rsp response containing the required diagnostic TLV payload:
* - CoAP Response Code: 2.04 Changed
* - CoAP Payload:
* - TLV Value 3 - Timeout MUST be omitted from the response.
*/
Log("Step 4: Leader");

uint8_t tlvTypes4[] = {NetworkDiagnostic::Tlv::kTimeout};

SuccessOrQuit(leader.Get<NetworkDiagnostic::Client>().SendDiagnosticGet(dutRloc, tlvTypes4, sizeof(tlvTypes4),
nullptr, nullptr));
nexus.AdvanceTime(kDiagResponseTime);

/**
* Step 5: Leader
* - Description: Harness instructs the device to send DIAG_GET.req to the DUT’s Routing Locator (RLOC) for the
* following diagnostic TLV types:
* - TLV Type 14 – Battery Level
* - TLV Type 15 – Supply Voltage
* - Pass Criteria:
* - The DUT MUST respond with a DIAG_GET.rsp response optionally containing the requested diagnostic TLVs:
* - CoAP Response Code: 2.04 Changed
* - CoAP Payload:
* - TLV Type 14 – Battery Level (optional)
* - TLV Type 15 – Supply Voltage (optional)
*/
Log("Step 5: Leader");

uint8_t tlvTypes5[] = {NetworkDiagnostic::Tlv::kBatteryLevel, NetworkDiagnostic::Tlv::kSupplyVoltage};

SuccessOrQuit(leader.Get<NetworkDiagnostic::Client>().SendDiagnosticGet(dutRloc, tlvTypes5, sizeof(tlvTypes5),
nullptr, nullptr));
nexus.AdvanceTime(kDiagResponseTime);

/**
* Step 6: Leader
* - Description: Harness instructs the device to send DIAG_GET.req to the DUT’s Routing Locator (RLOC) for the
* following diagnostic TLV type:
* - TLV Type 16 – Child Table
* - Pass Criteria:
* - For Topology A:
* - CoAP Response Code: 2.04 Changed
* - CoAP Payload: TLV Type 16 – Child Table. The content of the TLV MUST be correct.
* - For Topology B:
* - CoAP Response Code: 2.04 Changed
* - CoAP Payload: Empty
*/
Log("Step 6: Leader");

uint8_t tlvTypes6[] = {NetworkDiagnostic::Tlv::kChildTable};

SuccessOrQuit(leader.Get<NetworkDiagnostic::Client>().SendDiagnosticGet(dutRloc, tlvTypes6, sizeof(tlvTypes6),
nullptr, nullptr));
nexus.AdvanceTime(kDiagResponseTime);

/**
* Step 7: Leader
* - Description: Harness instructs the device to send DIAG_RST.ntf to DUT’s Routing Locator (RLOC) for the
* following diagnostic TLV type:
* - TLV Type 9 - MAC Counters
* - Pass Criteria:
* - The DUT MUST respond with a CoAP response:
* - CoAP Response Code: 2.04 Changed
*/
Log("Step 7: Leader");

uint8_t tlvTypes7[] = {NetworkDiagnostic::Tlv::kMacCounters};

SuccessOrQuit(leader.Get<NetworkDiagnostic::Client>().SendDiagnosticReset(dutRloc, tlvTypes7, sizeof(tlvTypes7)));
nexus.AdvanceTime(kDiagResponseTime);

/**
* Step 8: Leader
* - Description: Harness instructs the device to send DIAG_GET.req to the DUT’s Routing Locator (RLOC) for the
* following diagnostic TLV type:
* - TLV Type 9 - MAC Counters
* - Pass Criteria:
* - The DUT MUST respond with a DIAG_GET.rsp response containing the requested diagnostic TLV:
* - CoAP Response Code: 2.04 Changed
* - CoAP Payload:
* - TLV Type 9 - MAC Counters
* - TLV Type 9 - MAC Counters MUST contain a list of MAC Counters with 0 value or less than value returned in
* step 3.
*/
Log("Step 8: Leader");

uint8_t tlvTypes8[] = {NetworkDiagnostic::Tlv::kMacCounters};

SuccessOrQuit(leader.Get<NetworkDiagnostic::Client>().SendDiagnosticGet(dutRloc, tlvTypes8, sizeof(tlvTypes8),
nullptr, nullptr));
nexus.AdvanceTime(kDiagResponseTime);

nexus.SaveTestInfo("test_5_7_1.json");
}

} // namespace Nexus
} // namespace ot

int main(void)
{
ot::Nexus::Test5_7_1();
printf("All tests passed\n");
return 0;
}
Loading