mirror of
https://github.com/espressif/openthread.git
synced 2026-06-05 21:14:49 +00:00
[test] verify ephemeral key settings and _meshcop-e (#10537)
This commit is contained in:
@@ -102,11 +102,28 @@ class PublishMeshCopService(thread_cert.TestCase):
|
||||
self.simulator.go(10)
|
||||
self.check_meshcop_service(br1, host)
|
||||
|
||||
# activate ePSKc mode
|
||||
lifetime = 500_000
|
||||
ephemeral_key = br1.activate_ephemeral_key_mode(lifetime)
|
||||
self.assertEqual(len(ephemeral_key), 9)
|
||||
self.assertEqual(br1.get_ephemeral_key_state(), 'active')
|
||||
# check Meshcop-e service
|
||||
self.check_meshcop_e_service(host, True)
|
||||
|
||||
# deactivate ePSKc mode
|
||||
br1.deactivate_ephemeral_key_mode()
|
||||
self.assertEqual(br1.get_ephemeral_key_state(), 'inactive')
|
||||
self.simulator.go(10)
|
||||
# check Meshcop-e service
|
||||
self.check_meshcop_e_service(host, False)
|
||||
|
||||
# change ephemeral key mode (ePSKc) and check Meshcop
|
||||
br1.ephemeral_key_enabled = False
|
||||
self.assertFalse(br1.ephemeral_key_enabled)
|
||||
self.simulator.go(10)
|
||||
self.check_meshcop_service(br1, host)
|
||||
# check Meshcop-e format
|
||||
self.check_meshcop_e_service(host, False)
|
||||
# end of ephemeral key mode (ePSKc) test
|
||||
|
||||
br1.disable_backbone_router()
|
||||
@@ -218,13 +235,24 @@ class PublishMeshCopService(thread_cert.TestCase):
|
||||
self.assertEqual(service_data['txt']['rv'], '1')
|
||||
self.assertIn(service_data['txt']['tv'], ['1.1.0', '1.1.1', '1.2.0', '1.3.0'])
|
||||
|
||||
def discover_all_meshcop_services(self, host):
|
||||
instance_names = host.browse_mdns_services('_meshcop._udp')
|
||||
def discover_services(self, host, type):
|
||||
instance_names = host.browse_mdns_services(type)
|
||||
services = []
|
||||
for instance_name in instance_names:
|
||||
services.append(host.discover_mdns_service(instance_name, '_meshcop._udp', None))
|
||||
services.append(host.discover_mdns_service(instance_name, type, None))
|
||||
return services
|
||||
|
||||
def discover_all_meshcop_services(self, host):
|
||||
return self.discover_services(host, '_meshcop._udp')
|
||||
|
||||
def check_meshcop_e_service(self, host, isactive):
|
||||
services = self.discover_services(host, '_meshcop-e._udp')
|
||||
# TODO: Meshcop-e port check etc.
|
||||
if isactive:
|
||||
self.assertTrue(len(services) > 0, msg='Meshcop-e service not found')
|
||||
else:
|
||||
self.assertEqual(len(services), 0, msg='Meshcop-e service still found after disabled')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
@@ -422,6 +422,12 @@ class OtbrDocker:
|
||||
def nat64_set_enabled(self, enable):
|
||||
return self.call_dbus_method('io.openthread.BorderRouter', 'SetNat64Enabled', enable)
|
||||
|
||||
def activate_ephemeral_key_mode(self, lifetime):
|
||||
return self.call_dbus_method('io.openthread.BorderRouter', 'ActivateEphemeralKeyMode', lifetime)
|
||||
|
||||
def deactivate_ephemeral_key_mode(self):
|
||||
return self.call_dbus_method('io.openthread.BorderRouter', 'DeactivateEphemeralKeyMode')
|
||||
|
||||
@property
|
||||
def nat64_cidr(self):
|
||||
self.send_command('nat64 cidr')
|
||||
@@ -1896,6 +1902,12 @@ class NodeImpl:
|
||||
self.send_command(cmd)
|
||||
self._expect_done()
|
||||
|
||||
def get_ephemeral_key_state(self):
|
||||
cmd = 'ba ephemeralkey'
|
||||
states = [r'inactive', r'active']
|
||||
self.send_command(cmd)
|
||||
return self._expect_result(states)
|
||||
|
||||
def get_timeout(self):
|
||||
self.send_command('childtimeout')
|
||||
return self._expect_result(r'\d+')
|
||||
|
||||
Reference in New Issue
Block a user