From be48ea648c01a03b18b13bb560721d48160b6c05 Mon Sep 17 00:00:00 2001 From: Yakun Xu Date: Sat, 25 Apr 2020 08:24:53 +0800 Subject: [PATCH] [thread-cert] use the same mesh local prefix as Thread harness (#4089) --- .../thread-cert/Cert_5_2_04_REEDUpgrade.py | 4 ++-- .../Cert_5_3_11_AddressQueryTimeoutIntervals.py | 2 +- .../thread-cert/Cert_6_4_02_RealmLocal.py | 9 +++++---- .../thread-cert/Cert_9_2_13_EnergyScan.py | 2 +- .../thread-cert/Cert_9_2_14_PanIdQuery.py | 2 +- tests/scripts/thread-cert/config.py | 12 +++++++----- tests/scripts/thread-cert/node.py | 16 ++++++++++++++++ 7 files changed, 33 insertions(+), 14 deletions(-) diff --git a/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py b/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py index 64ca87db1..78dea46ca 100755 --- a/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py +++ b/tests/scripts/thread-cert/Cert_5_2_04_REEDUpgrade.py @@ -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 diff --git a/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py b/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py index 8f7e45d91..6b97b141e 100755 --- a/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py +++ b/tests/scripts/thread-cert/Cert_5_3_11_AddressQueryTimeoutIntervals.py @@ -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) diff --git a/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py b/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py index 022c4cebc..6f30f3328 100755 --- a/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py +++ b/tests/scripts/thread-cert/Cert_6_4_02_RealmLocal.py @@ -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__': diff --git a/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py b/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py index 9a270e9af..5ddfcb726 100755 --- a/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py +++ b/tests/scripts/thread-cert/Cert_9_2_13_EnergyScan.py @@ -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)) diff --git a/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py b/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py index 507f86562..9da95fa96 100755 --- a/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py +++ b/tests/scripts/thread-cert/Cert_9_2_14_PanIdQuery.py @@ -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)) diff --git a/tests/scripts/thread-cert/config.py b/tests/scripts/thread-cert/config.py index 45f929d00..38ca752f8 100644 --- a/tests/scripts/thread-cert/config.py +++ b/tests/scripts/thread-cert/config.py @@ -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, diff --git a/tests/scripts/thread-cert/node.py b/tests/scripts/thread-cert/node.py index 706a46da0..28672c01a 100755 --- a/tests/scripts/thread-cert/node.py +++ b/tests/scripts/thread-cert/node.py @@ -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')