[thread-cert] use the same mesh local prefix as Thread harness (#4089)

This commit is contained in:
Yakun Xu
2020-04-24 17:24:53 -07:00
committed by GitHub
parent 082f7e9fdc
commit be48ea648c
7 changed files with 33 additions and 14 deletions
@@ -38,7 +38,7 @@ LEADER = 1
ROUTER = 16
DUT_REED = 17
ED = 18
MESH_LOCAL_PREFIX = 'fdde:ad00:beef:0:'
MESH_LOCAL_PREFIX = 'fd00:db8:'
ROUTING_LOCATOR = ':0:ff:fe00'
REED_ADVERTISEMENT_INTERVAL = 570
REED_ADVERTISEMENT_MAX_JITTER = 60
@@ -166,7 +166,7 @@ class Cert_5_2_4_REEDUpgrade(unittest.TestCase):
# Leader.
mleid = None
for addr in self.nodes[LEADER].get_addrs():
if (addr.find(MESH_LOCAL_PREFIX) != -1 and
if (addr.startswith(MESH_LOCAL_PREFIX) and
addr.find(ROUTING_LOCATOR) == -1):
mleid = addr
break
@@ -86,7 +86,7 @@ class Cert_5_3_11_AddressQueryTimeoutIntervals(unittest.TestCase):
# 2 MED1: MED1 sends an ICMPv6 Echo Request to a non-existent
# mesh-local address X
X = "fdde:ad00:beef:0000:aa55:aa55:aa55:aa55"
X = "fd00:db8:0000:0000:aa55:aa55:aa55:aa55"
self.assertFalse(self.nodes[MED1].ping(X))
self.simulator.go(config.AQ_TIMEOUT)
@@ -93,10 +93,11 @@ class Cert_5_3_2_RealmLocal(unittest.TestCase):
size=256))
self.assertTrue(self.nodes[LEADER].ping('ff03::1', num_responses=2))
self.assertTrue(self.nodes[LEADER].ping(
'ff33:0040:fdde:ad00:beef:0:0:1', num_responses=2, size=256))
self.assertTrue(self.nodes[LEADER].ping(
'ff33:0040:fdde:ad00:beef:0:0:1', num_responses=2))
self.assertTrue(self.nodes[LEADER].ping('ff33:0040:fd00:db8:0:0:0:1',
num_responses=2,
size=256))
self.assertTrue(self.nodes[LEADER].ping('ff33:0040:fd00:db8:0:0:0:1',
num_responses=2))
if __name__ == '__main__':
@@ -113,7 +113,7 @@ class Cert_9_2_13_EnergyScan(unittest.TestCase):
self.nodes[COMMISSIONER].energy_scan(0x50000, 0x02, 0x20, 0x3E8, ipaddr)
self.nodes[COMMISSIONER].energy_scan(0x50000, 0x02, 0x20, 0x3E8,
'ff33:0040:fdde:ad00:beef:0:0:1')
'ff33:0040:fd00:db8:0:0:0:1')
self.assertTrue(self.nodes[COMMISSIONER].ping(ipaddr))
@@ -104,7 +104,7 @@ class Cert_9_2_14_PanIdQuery(unittest.TestCase):
self.nodes[COMMISSIONER].panid_query(0xdead, 0xffffffff, ipaddr)
self.nodes[COMMISSIONER].panid_query(0xdead, 0xffffffff,
'ff33:0040:fdde:ad00:beef:0:0:1')
'ff33:0040:fd00:db8:0:0:0:1')
self.assertTrue(self.nodes[COMMISSIONER].ping(ipaddr))
+7 -5
View File
@@ -43,22 +43,24 @@ import network_layer
import simulator
import sniffer
MESH_LOCAL_PREFIX = 'fdde:ad00:beef::/64'
MESH_LOCAL_PREFIX_REGEX_PATTERN = '^fdde:ad00:beef:(0){0,4}:'
# This extended address will generate the MESH_LOCAL_PREFIX
EXTENDED_PANID = '000db80000000000'
MESH_LOCAL_PREFIX = 'fd00:db8::/64'
MESH_LOCAL_PREFIX_REGEX_PATTERN = '^fd00:0?db8:0{0,4}:0{0,4}'
ROUTING_LOCATOR = '64/:0:ff:fe00:/16'
ROUTING_LOCATOR_REGEX_PATTERN = r'.*:(0)?:0{0,2}ff:fe00:\w{1,4}$'
LINK_LOCAL = 'fe80:/112'
LINK_LOCAL_REGEX_PATTERN = '^fe80:.*'
ALOC_FLAG_REGEX_PATTERN = '.*:fc..$'
LINK_LOCAL_All_THREAD_NODES_MULTICAST_ADDRESS = 'ff32:40:fdde:ad00:beef:0:0:1'
REALM_LOCAL_All_THREAD_NODES_MULTICAST_ADDRESS = 'ff33:40:fdde:ad00:beef:0:0:1'
LINK_LOCAL_All_THREAD_NODES_MULTICAST_ADDRESS = 'ff32:40:fd00:db8:0:0:0:1'
REALM_LOCAL_All_THREAD_NODES_MULTICAST_ADDRESS = 'ff33:40:fd00:db8:0:0:0:1'
REALM_LOCAL_ALL_ROUTERS_ADDRESS = 'ff03::2'
LINK_LOCAL_ALL_NODES_ADDRESS = 'ff02::1'
LINK_LOCAL_ALL_ROUTERS_ADDRESS = 'ff02::2'
DOMAIN_PREFIX = 'fd00:7d03:7d03:7d03::/64'
ALL_DOMAIN_BBRS_ADDRESS = 'ff32:40:fd00:7d03:7d03:7d03:0:3'
ALL_NETWORK_BBRS_ADDRESS = 'ff32:40:fdde:ad00:beef:0:0:3'
ALL_NETWORK_BBRS_ADDRESS = 'ff32:40:fd00:db8:0:0:0:3'
DEFAULT_MASTER_KEY = bytearray([
0x00,
+16
View File
@@ -80,6 +80,8 @@ class Node:
self._initialized = True
self.set_extpanid(config.EXTENDED_PANID)
def __init_sim(self, nodeid, mode):
""" Initialize a simulation node. """
@@ -549,6 +551,10 @@ class Node:
self.send_command('eui64')
return self._expect_result('[0-9a-fA-F]{16}')
def set_extpanid(self, extpanid):
self.send_command('extpanid %s' % extpanid)
self._expect('Done')
def get_joiner_id(self):
self.send_command('joiner id')
return self._expect_result('[0-9a-fA-F]{16}')
@@ -1009,6 +1015,11 @@ class Node:
self.send_command(cmd)
self._expect('Done')
# Set the meshlocal prefix in config.py
self.send_command('dataset meshlocalprefix %s' %
config.MESH_LOCAL_PREFIX.split('/')[0])
self._expect('Done')
self.send_command('dataset commit active')
self._expect('Done')
@@ -1038,6 +1049,11 @@ class Node:
self.send_command(cmd)
self._expect('Done')
# Set the meshlocal prefix in config.py
self.send_command('dataset meshlocalprefix %s' %
config.MESH_LOCAL_PREFIX.split('/')[0])
self._expect('Done')
self.send_command('dataset commit pending')
self._expect('Done')