From b28bb1d1e04cf22ccd6e1d75f5a225fa6db5ed43 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Wed, 10 Jan 2024 10:37:03 -0800 Subject: [PATCH] [srp] update config for auto-start mode to be enabled by default (#9738) Config `OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE` is changed to use `1` by default (unless explicitly overridden in project configs). It also updates related test scripts to utilize auto-start mode or explicitly disable it for manual SRP client control, reflecting this default change. --- src/core/config/srp_client.h | 2 +- .../border_router/test_plat_udp_accessiblity.py | 1 + tests/scripts/thread-cert/node.py | 2 +- tests/scripts/thread-cert/test_dnssd.py | 4 ---- .../thread-cert/test_srp_auto_host_address.py | 4 +--- .../thread-cert/test_srp_auto_start_mode.py | 4 +--- .../thread-cert/test_srp_client_change_lease.py | 4 ++-- .../test_srp_client_save_server_info.py | 2 -- tests/scripts/thread-cert/test_srp_lease.py | 8 ++++---- .../thread-cert/test_srp_name_conflicts.py | 16 +++++++++------- .../test_srp_register_500_services.py | 4 +--- .../test_srp_register_single_service.py | 3 ++- .../thread-cert/test_srp_server_reboot_port.py | 4 +--- tests/scripts/thread-cert/test_srp_ttl.py | 3 ++- tests/toranj/cli/test-400-srp-client-server.py | 3 +-- tools/otci/tests/test_otci.py | 2 -- 16 files changed, 27 insertions(+), 39 deletions(-) diff --git a/src/core/config/srp_client.h b/src/core/config/srp_client.h index cf3d6a234..34c9abfb6 100644 --- a/src/core/config/srp_client.h +++ b/src/core/config/srp_client.h @@ -79,7 +79,7 @@ * */ #ifndef OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE -#define OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE 0 +#define OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE 1 #endif /** diff --git a/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py b/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py index 5ed84bc0b..ea491a97f 100755 --- a/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py +++ b/tests/scripts/thread-cert/border_router/test_plat_udp_accessiblity.py @@ -74,6 +74,7 @@ class TestPlatUdpAccessibility(thread_cert.TestCase): router.start() self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual('router', router.get_state()) + router.srp_client_stop() # Router1 can ping to/from the Host on infra link. self.assertTrue(router.ping(br.get_rloc())) diff --git a/tests/scripts/thread-cert/node.py b/tests/scripts/thread-cert/node.py index b1b94082f..5359848e8 100755 --- a/tests/scripts/thread-cert/node.py +++ b/tests/scripts/thread-cert/node.py @@ -1262,7 +1262,7 @@ class NodeImpl: self._expect_done() def srp_client_disable_auto_start_mode(self): - self.send_command(f'srp client autostart able') + self.send_command(f'srp client autostart disable') self._expect_done() def srp_client_get_server_address(self): diff --git a/tests/scripts/thread-cert/test_dnssd.py b/tests/scripts/thread-cert/test_dnssd.py index 0110c1efb..38c4f85ef 100755 --- a/tests/scripts/thread-cert/test_dnssd.py +++ b/tests/scripts/thread-cert/test_dnssd.py @@ -237,10 +237,6 @@ class TestDnssd(thread_cert.TestCase): weight, addrs, subtypes=''): - client.netdata_show() - srp_server_port = client.get_srp_server_port() - - client.srp_client_start(server.get_mleid(), srp_server_port) client.srp_client_set_host_name(hostname) client.srp_client_set_host_address(*addrs) client.srp_client_add_service(instancename, SERVICE + subtypes, port, priority, weight) diff --git a/tests/scripts/thread-cert/test_srp_auto_host_address.py b/tests/scripts/thread-cert/test_srp_auto_host_address.py index f714e6c4a..88d0718aa 100755 --- a/tests/scripts/thread-cert/test_srp_auto_host_address.py +++ b/tests/scripts/thread-cert/test_srp_auto_host_address.py @@ -86,10 +86,8 @@ class SrpAutoHostAddress(thread_cert.TestCase): self.simulator.go(5) #------------------------------------------------------------------- - # Enable auto start mode on SRP client + # Check auto start mode on SRP client - self.assertEqual(client.srp_client_get_state(), 'Disabled') - client.srp_client_enable_auto_start_mode() self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') self.simulator.go(2) diff --git a/tests/scripts/thread-cert/test_srp_auto_start_mode.py b/tests/scripts/thread-cert/test_srp_auto_start_mode.py index 8fbcdda2d..ee0cfabcd 100755 --- a/tests/scripts/thread-cert/test_srp_auto_start_mode.py +++ b/tests/scripts/thread-cert/test_srp_auto_start_mode.py @@ -107,10 +107,8 @@ class SrpAutoStartMode(thread_cert.TestCase): self.simulator.go(5) #------------------------------------------------------------------- - # Enable auto start mode on client and check that server1 is selected + # Check auto start mode on client and check that server1 is selected - self.assertEqual(client.srp_client_get_state(), 'Disabled') - client.srp_client_enable_auto_start_mode() self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') self.simulator.go(2) diff --git a/tests/scripts/thread-cert/test_srp_client_change_lease.py b/tests/scripts/thread-cert/test_srp_client_change_lease.py index 37b03d3df..e55df6448 100755 --- a/tests/scripts/thread-cert/test_srp_client_change_lease.py +++ b/tests/scripts/thread-cert/test_srp_client_change_lease.py @@ -89,7 +89,6 @@ class SrpClientChangeLeaseTime(thread_cert.TestCase): self.assertEqual(server.get_state(), 'leader') self.simulator.go(5) - client.srp_server_set_enabled(False) client.start() self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual(client.get_state(), 'router') @@ -98,9 +97,10 @@ class SrpClientChangeLeaseTime(thread_cert.TestCase): # 1. Register a single service and verify that it works. # + self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') + client.srp_client_set_host_name('my-host') client.srp_client_set_host_address('2001::1') - client.srp_client_start(server.get_addrs()[0], client.get_srp_server_port()) client.srp_client_add_service('my-service', '_ipps._tcp', 12345) self.simulator.go(2) diff --git a/tests/scripts/thread-cert/test_srp_client_save_server_info.py b/tests/scripts/thread-cert/test_srp_client_save_server_info.py index cb277e5fc..5018aad08 100755 --- a/tests/scripts/thread-cert/test_srp_client_save_server_info.py +++ b/tests/scripts/thread-cert/test_srp_client_save_server_info.py @@ -105,8 +105,6 @@ class SrpAutoStartMode(thread_cert.TestCase): client.srp_client_set_host_address('2001::1') client.srp_client_add_service('my-service', '_ipps._tcp', 12345) - self.assertEqual(client.srp_client_get_state(), 'Disabled') - client.srp_client_enable_auto_start_mode() self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') self.simulator.go(WAIT_TIME) diff --git a/tests/scripts/thread-cert/test_srp_lease.py b/tests/scripts/thread-cert/test_srp_lease.py index 6d147117c..b259c21a5 100755 --- a/tests/scripts/thread-cert/test_srp_lease.py +++ b/tests/scripts/thread-cert/test_srp_lease.py @@ -83,7 +83,6 @@ class SrpRegisterSingleService(thread_cert.TestCase): self.assertEqual(server.get_state(), 'leader') self.simulator.go(5) - client.srp_server_set_enabled(False) client.start() self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual(client.get_state(), 'router') @@ -92,9 +91,10 @@ class SrpRegisterSingleService(thread_cert.TestCase): # 1. Register a single service and verify that it works. # + self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') + client.srp_client_set_host_name('my-host') client.srp_client_set_host_address('2001::1') - client.srp_client_start(server.get_addrs()[0], client.get_srp_server_port()) client.srp_client_add_service('my-service', '_ipps._tcp', 12345) self.simulator.go(2) @@ -113,7 +113,7 @@ class SrpRegisterSingleService(thread_cert.TestCase): self.assertEqual(server.srp_server_get_service('my-service', '_ipps._tcp')['deleted'], 'true') # Start the client again, the same service should be successfully registered. - client.srp_client_start(server.get_addrs()[0], client.get_srp_server_port()) + client.srp_client_enable_auto_start_mode() self.simulator.go(2) self.check_host_and_service(server, client) @@ -131,7 +131,7 @@ class SrpRegisterSingleService(thread_cert.TestCase): self.assertEqual(len(server.srp_server_get_services()), 0) # Start the client again, the same service should be successfully registered. - client.srp_client_start(server.get_addrs()[0], client.get_srp_server_port()) + client.srp_client_enable_auto_start_mode() self.simulator.go(2) self.check_host_and_service(server, client) diff --git a/tests/scripts/thread-cert/test_srp_name_conflicts.py b/tests/scripts/thread-cert/test_srp_name_conflicts.py index 4451eab2d..984547f70 100755 --- a/tests/scripts/thread-cert/test_srp_name_conflicts.py +++ b/tests/scripts/thread-cert/test_srp_name_conflicts.py @@ -101,9 +101,10 @@ class SrpNameConflicts(thread_cert.TestCase): # 1. Register a single service and verify that it works. # + self.assertEqual(client_1.srp_client_get_auto_start_mode(), 'Enabled') + client_1.srp_client_set_host_name('my-host-1') client_1.srp_client_set_host_address('2001::1') - client_1.srp_client_start(server.get_addrs()[0], client_1.get_srp_server_port()) client_1.srp_client_add_service('my-service-1', '_ipps._tcp', 12345) self.simulator.go(2) @@ -139,9 +140,10 @@ class SrpNameConflicts(thread_cert.TestCase): # 2. Register with the same host name from the second client and it should fail. # + self.assertEqual(client_2.srp_client_get_auto_start_mode(), 'Enabled') + client_2.srp_client_set_host_name('my-host-1') client_2.srp_client_set_host_address('2001::2') - client_2.srp_client_start(server.get_addrs()[0], client_2.get_srp_server_port()) client_2.srp_client_add_service('my-service-2', '_ipps._tcp', 12345) self.simulator.go(2) @@ -160,9 +162,9 @@ class SrpNameConflicts(thread_cert.TestCase): # 3. Register with the same service name from the second client and it should fail. # + client_2.srp_client_enable_auto_start_mode() client_2.srp_client_set_host_name('my-host-2') client_2.srp_client_set_host_address('2001::2') - client_2.srp_client_start(server.get_addrs()[0], client_2.get_srp_server_port()) client_2.srp_client_add_service('my-service-1', '_ipps._tcp', 12345) self.simulator.go(2) @@ -182,9 +184,9 @@ class SrpNameConflicts(thread_cert.TestCase): # from the second client and it should pass. # + client_2.srp_client_enable_auto_start_mode() client_2.srp_client_set_host_name('my-host-2') client_2.srp_client_set_host_address('2001::2') - client_2.srp_client_start(server.get_addrs()[0], client_2.get_srp_server_port()) client_2.srp_client_add_service('my-service-1', '_ipps2._tcp', 12345) self.simulator.go(2) @@ -209,9 +211,9 @@ class SrpNameConflicts(thread_cert.TestCase): # 5. Register with different host & service instance name, it should succeed. # + client_2.srp_client_enable_auto_start_mode() client_2.srp_client_set_host_name('my-host-2') client_2.srp_client_set_host_address('2001::2') - client_2.srp_client_start(server.get_addrs()[0], client_2.get_srp_server_port()) client_2.srp_client_add_service('my-service-2', '_ipps._tcp', 12345) self.simulator.go(2) @@ -241,9 +243,9 @@ class SrpNameConflicts(thread_cert.TestCase): client_1.srp_client_remove_service('my-service-1', '_ipps._tcp') self.simulator.go(2) + client_2.srp_client_enable_auto_start_mode() client_2.srp_client_set_host_name('my-host-2') client_2.srp_client_set_host_address('2001::2') - client_2.srp_client_start(server.get_addrs()[0], client_2.get_srp_server_port()) client_2.srp_client_add_service('my-service-1', '_ipps._tcp', 12345) self.simulator.go(2) @@ -284,10 +286,10 @@ class SrpNameConflicts(thread_cert.TestCase): # Client 2 registers the same host & service instance name with Client 1. client_2.srp_client_stop() + client_2.srp_client_enable_auto_start_mode() client_2.srp_client_clear_host() client_2.srp_client_set_host_name('my-host-1') client_2.srp_client_set_host_address('2001::2') - client_2.srp_client_start(server.get_addrs()[0], client_2.get_srp_server_port()) client_2.srp_client_add_service('my-service-1', '_ipps._tcp', 12345) self.simulator.go(2) diff --git a/tests/scripts/thread-cert/test_srp_register_500_services.py b/tests/scripts/thread-cert/test_srp_register_500_services.py index 54719ddc9..e69fc3e2f 100644 --- a/tests/scripts/thread-cert/test_srp_register_500_services.py +++ b/tests/scripts/thread-cert/test_srp_register_500_services.py @@ -132,13 +132,11 @@ class SrpRegister500Services(thread_cert.TestCase): for fed in feds(): self.assertEqual(fed.get_state(), 'child') - server_addr = server.get_rloc() - for clientid in CLIENT_IDS: client = self.nodes[clientid] + self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') client.srp_client_set_host_name(f'client{clientid}') client.srp_client_set_host_address(f'2001::{clientid}') - client.srp_client_start(server_addr, client.get_srp_server_port()) for instanceid in INSTANCE_IDS: client.srp_client_add_service(f'client{clientid}_{instanceid}', SERVICE_NAME, SERVICE_PORT) diff --git a/tests/scripts/thread-cert/test_srp_register_single_service.py b/tests/scripts/thread-cert/test_srp_register_single_service.py index 621ad578c..33d298b72 100755 --- a/tests/scripts/thread-cert/test_srp_register_single_service.py +++ b/tests/scripts/thread-cert/test_srp_register_single_service.py @@ -89,9 +89,10 @@ class SrpRegisterSingleService(thread_cert.TestCase): # 1. Register a single service and verify that it works. # + self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') + client.srp_client_set_host_name('my-host') client.srp_client_set_host_address('2001::1') - client.srp_client_start(server.get_addrs()[0], client.get_srp_server_port()) client.srp_client_add_service('my-service', '_ipps._tcp', 12345, 0, 0, ['abc', 'def=', 'xyz=XYZ']) self.simulator.go(2) diff --git a/tests/scripts/thread-cert/test_srp_server_reboot_port.py b/tests/scripts/thread-cert/test_srp_server_reboot_port.py index 411b598a5..d78dc118b 100755 --- a/tests/scripts/thread-cert/test_srp_server_reboot_port.py +++ b/tests/scripts/thread-cert/test_srp_server_reboot_port.py @@ -84,11 +84,9 @@ class SrpServerRebootPort(thread_cert.TestCase): self.assertEqual(server.get_state(), 'router') # - # 1. Enable auto start mode on client and check that server is used. + # 1. Check auto start mode on client and check that server is used. # - self.assertEqual(client.srp_client_get_state(), 'Disabled') - client.srp_client_enable_auto_start_mode() self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') self.simulator.go(2) self.assertEqual(client.srp_client_get_state(), 'Enabled') diff --git a/tests/scripts/thread-cert/test_srp_ttl.py b/tests/scripts/thread-cert/test_srp_ttl.py index 93cc81881..9c3a149db 100755 --- a/tests/scripts/thread-cert/test_srp_ttl.py +++ b/tests/scripts/thread-cert/test_srp_ttl.py @@ -85,9 +85,10 @@ class SrpTtl(thread_cert.TestCase): self.simulator.go(config.ROUTER_STARTUP_DELAY) self.assertEqual(client.get_state(), 'router') + self.assertEqual(client.srp_client_get_auto_start_mode(), 'Enabled') + client.srp_client_set_host_name('my-host') client.srp_client_set_host_address('2001::1') - client.srp_client_start(server.get_addrs()[0], client.get_srp_server_port()) client.srp_client_add_service('my-service', '_ipps._tcp', 12345) self.simulator.go(2) diff --git a/tests/toranj/cli/test-400-srp-client-server.py b/tests/toranj/cli/test-400-srp-client-server.py index a74d26153..e65d6fffb 100755 --- a/tests/toranj/cli/test-400-srp-client-server.py +++ b/tests/toranj/cli/test-400-srp-client-server.py @@ -61,11 +61,10 @@ verify(client.get_state() == 'router') verify(server.srp_server_get_state() == 'disabled') verify(server.srp_server_get_addr_mode() == 'unicast') verify(client.srp_client_get_state() == 'Disabled') -verify(client.srp_client_get_auto_start_mode() == 'Disabled') +verify(client.srp_client_get_auto_start_mode() == 'Enabled') # Start server and client and register single service server.srp_server_enable() -client.srp_client_enable_auto_start_mode() client.srp_client_set_host_name('host') client.srp_client_set_host_address('fd00::cafe') diff --git a/tools/otci/tests/test_otci.py b/tools/otci/tests/test_otci.py index 8e5a598c5..011c8a379 100644 --- a/tools/otci/tests/test_otci.py +++ b/tools/otci/tests/test_otci.py @@ -406,8 +406,6 @@ class TestOTCI(unittest.TestCase): self.assertEqual([], server.srp_server_get_hosts()) self.assertEqual('running', server.srp_server_get_state()) - self.assertFalse(client.srp_client_get_autostart()) - client.srp_client_enable_autostart() self.assertTrue(client.srp_client_get_autostart()) client.wait(3) self.assertTrue(client.srp_client_get_state())