[nexus] add SRP-TC-8 for removing some published services (#12771)

This commit adds the Nexus test case 1_3_SRP_TC_8 which verifies that
the SRP server correctly removes only selected service instances while
keeping others registered, as per the Thread 1.3 test specification.

The implementation includes:
- tests/nexus/test_1_3_SRP_TC_8.cpp: Executes the test sequence by
  configuring a Thread Border Router (DUT), an End Device (ED), and
  an Infrastructure node (Eth). It registers multiple services and
  then removes one while verifying the remaining service.
- tests/nexus/verify_1_3_SRP_TC_8.py: Performs automated verification
  of the captured traffic (PCAP), ensuring that SRP Updates, DNS
  queries, and mDNS responses correctly reflect the removal of the
  selected service and the persistence of the other.
- Integrated the new test into tests/nexus/CMakeLists.txt and
  tests/nexus/run_nexus_tests.sh.

The test ensures that the SRP server properly handles service
deregistration according to the SRP draft and that DNS/mDNS discovery
responses are updated correctly.
This commit is contained in:
Jonathan Hui
2026-03-26 19:27:39 -05:00
committed by GitHub
parent 6dee5af2ae
commit 35512636b8
5 changed files with 957 additions and 1 deletions
+11 -1
View File
@@ -407,7 +407,7 @@ THREAD_VERSION_1_2 = 3
THREAD_VERSION_1_3 = 4
THREAD_VERSION_1_4 = 5
# ICMPv6 Types
# ICMPV6 Types
ICMPV6_TYPE_DESTINATION_UNREACHABLE = 1
ICMPV6_TYPE_PACKET_TO_BIG = 2
ICMPV6_TYPE_TIME_EXCEEDED = 3
@@ -415,6 +415,16 @@ ICMPV6_TYPE_PARAMETER_PROBLEM = 4
ICMPV6_TYPE_ECHO_REQUEST = 128
ICMPV6_TYPE_ECHO_REPLY = 129
# DNS constants
DNS_OPCODE_UPDATE = 5
DNS_TYPE_A = 1
DNS_TYPE_PTR = 12
DNS_TYPE_TXT = 16
DNS_TYPE_AAAA = 28
DNS_TYPE_SRV = 33
DNS_RCODE_NOERROR = 0
DNS_RCODE_NXDOMAIN = 3
ICMPV6_RA_OPT_TYPE_RIO = 24
THREAD_ALLOWED_ICMPV6_TYPES = [