mirror of
https://github.com/espressif/openthread.git
synced 2026-07-28 22:57:47 +00:00
[scripts] update cert tests to use thread_cert.TestCase (#4874)
- Update all test cases to inherit thread_cert.TestCase and update topologies accordingly. The topologies should all be correct because they are automatically generated, not hand written. - Use default Thread version: 1.1 - Cleanup node tmp files in tmp directory according to the current PORT_OFFSET in setUp. This is required by test_reed_address_solicit_rejected.py and test_coap_observe.py since they define multiple test functions in one TestCase. - Removed call to set_extaddr64 because it's not necessary and causing failures.
This commit is contained in:
@@ -29,40 +29,28 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import network_layer
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class Cert_5_1_01_RouterAttach(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_01_RouterAttach(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -31,7 +31,7 @@ import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -41,45 +41,34 @@ SED = 4
|
||||
MTDS = [ED, SED]
|
||||
|
||||
|
||||
class Cert_5_1_02_ChildAddressTimeout(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
self.nodes[SED].set_panid(0xface)
|
||||
self.nodes[SED].set_mode('sn')
|
||||
self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
self.nodes[SED].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_02_ChildAddressTimeout(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED, SED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'sn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,50 +29,35 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import network_layer
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
ROUTER2 = 3
|
||||
|
||||
|
||||
class Cert_5_1_03_RouterAddressReallocation(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_03_RouterAddressReallocation(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,50 +29,35 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import network_layer
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
ROUTER2 = 3
|
||||
|
||||
|
||||
class Cert_5_1_04_RouterAddressReallocation(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_04_RouterAddressReallocation(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,44 +29,34 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import network_layer
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
|
||||
|
||||
class Cert_5_1_05_RouterAddressTimeout(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self._setUpRouter1()
|
||||
class Cert_5_1_05_RouterAddressTimeout(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpRouter1(self):
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -30,40 +30,28 @@
|
||||
import unittest
|
||||
|
||||
import command
|
||||
from command import CheckType
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
from command import CheckType
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
|
||||
|
||||
class Cert_5_1_06_RemoveRouterId(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_06_RemoveRouterId(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,50 +30,98 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
SED1 = 7
|
||||
|
||||
|
||||
class Cert_5_1_07_MaxChildCount(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 13):
|
||||
self.nodes[i] = node.Node(i, (i >= 3), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
self.nodes[ROUTER].set_max_children(10)
|
||||
|
||||
for i in range(3, 13):
|
||||
if i in range(3, 7):
|
||||
self.nodes[i].set_mode('rsn')
|
||||
else:
|
||||
self.nodes[i].set_mode('s')
|
||||
self.nodes[i].set_panid(0xface)
|
||||
self.nodes[i].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[i].get_addr64())
|
||||
self.nodes[i].enable_whitelist()
|
||||
self.nodes[i].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_07_MaxChildCount(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'max_children': 10,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, 3, 4, 5, 6, SED1, 8, 9, 10, 11, 12]
|
||||
},
|
||||
3: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
4: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
5: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
6: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
8: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
9: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
10: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
11: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
12: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -31,7 +31,7 @@ import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -40,56 +40,38 @@ ROUTER3 = 4
|
||||
ROUTER4 = 5
|
||||
|
||||
|
||||
class Cert_5_1_08_RouterAttachConnectivity(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER4].set_panid(0xface)
|
||||
self.nodes[ROUTER4].set_mode('rsdn')
|
||||
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER4].enable_whitelist()
|
||||
self.nodes[ROUTER4].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_08_RouterAttachConnectivity(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2, ROUTER3]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER4]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER1, ROUTER4]
|
||||
},
|
||||
ROUTER4: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER2, ROUTER3]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -31,7 +31,7 @@ import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -40,56 +40,38 @@ REED1 = 4
|
||||
ROUTER2 = 5
|
||||
|
||||
|
||||
class Cert_5_1_09_REEDAttachConnectivity(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED0].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[REED0].set_panid(0xface)
|
||||
self.nodes[REED0].set_mode('rsdn')
|
||||
self.nodes[REED0].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED0].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[REED0].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED0].enable_whitelist()
|
||||
|
||||
self.nodes[REED1].set_panid(0xface)
|
||||
self.nodes[REED1].set_mode('rsdn')
|
||||
self.nodes[REED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[REED1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[REED1].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED1].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[REED0].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_09_REEDAttachConnectivity(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, REED0, REED1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, REED1]
|
||||
},
|
||||
REED0: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, ROUTER2]
|
||||
},
|
||||
REED1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [REED0, REED1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,9 +29,8 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -39,48 +38,32 @@ ROUTER2 = 3
|
||||
ROUTER3 = 4
|
||||
|
||||
|
||||
class Cert_5_1_10_RouterAttachLinkQuality(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64(),
|
||||
rssi=-85)
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_10_RouterAttachLinkQuality(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, (ROUTER3, -85)]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,9 +29,8 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
REED = 2
|
||||
@@ -39,48 +38,32 @@ ROUTER2 = 3
|
||||
ROUTER1 = 4
|
||||
|
||||
|
||||
class Cert_5_1_11_REEDAttachLinkQuality(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[REED].set_panid(0xface)
|
||||
self.nodes[REED].set_mode('rsdn')
|
||||
self.nodes[REED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[REED].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64(),
|
||||
rssi=-85)
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_11_REEDAttachLinkQuality(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED, ROUTER2]
|
||||
},
|
||||
REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, ROUTER1]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, (ROUTER1, -85)]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [REED, ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,47 +29,34 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
ROUTER2 = 3
|
||||
|
||||
|
||||
class Cert_5_1_12_NewRouterSync(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_1_12_NewRouterSync(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def verify_step_4(self, router1_messages, router2_messages, req_receiver,
|
||||
accept_receiver):
|
||||
|
||||
@@ -29,43 +29,33 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class Cert_5_1_13_RouterReset(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self._setUpRouter()
|
||||
class Cert_5_1_13_RouterReset(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpRouter(self):
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import mle
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import mle
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
@@ -40,45 +40,33 @@ REED1 = 3
|
||||
MED1 = 4
|
||||
|
||||
|
||||
class Cert_5_2_01_REEDAttach(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, i == MED1, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[DUT_ROUTER1].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER1].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[REED1].set_panid(0xface)
|
||||
self.nodes[REED1].set_mode('rsdn')
|
||||
self.nodes[REED1].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[REED1].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[REED1].enable_whitelist()
|
||||
self.nodes[REED1].set_router_selection_jitter(1)
|
||||
self.nodes[REED1].set_router_upgrade_threshold(1)
|
||||
|
||||
self.nodes[MED1].set_panid(0xface)
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_2_01_REEDAttach(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_ROUTER1]
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, REED1]
|
||||
},
|
||||
REED1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 1,
|
||||
'whitelist': [DUT_ROUTER1, MED1]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,10 +29,9 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import mle
|
||||
import network_layer
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
DUT_LEADER = 1
|
||||
ROUTER_1 = 2
|
||||
@@ -40,46 +39,280 @@ ROUTER_31 = 32
|
||||
ROUTER_32 = 33
|
||||
|
||||
|
||||
class Cert_5_2_3_LeaderReject2Hops(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
|
||||
self.nodes[DUT_LEADER] = node.Node(DUT_LEADER, simulator=self.simulator)
|
||||
self.nodes[DUT_LEADER].set_panid(0xface)
|
||||
self.nodes[DUT_LEADER].set_mode('rsdn')
|
||||
self.nodes[DUT_LEADER].enable_whitelist()
|
||||
self.nodes[DUT_LEADER].set_router_upgrade_threshold(32)
|
||||
self.nodes[DUT_LEADER].set_router_downgrade_threshold(33)
|
||||
|
||||
for i in range(2, 33):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
self.nodes[i].set_panid(0xface)
|
||||
self.nodes[i].set_mode('rsdn')
|
||||
self.nodes[i].add_whitelist(self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[i].get_addr64())
|
||||
self.nodes[i].enable_whitelist()
|
||||
self.nodes[i].set_router_upgrade_threshold(33)
|
||||
self.nodes[i].set_router_downgrade_threshold(33)
|
||||
self.nodes[i].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER_32] = node.Node(ROUTER_32, simulator=self.simulator)
|
||||
self.nodes[ROUTER_32].set_panid(0xface)
|
||||
self.nodes[ROUTER_32].set_mode('rsdn')
|
||||
self.nodes[ROUTER_32].add_whitelist(self.nodes[ROUTER_1].get_addr64())
|
||||
self.nodes[ROUTER_1].add_whitelist(self.nodes[ROUTER_32].get_addr64())
|
||||
self.nodes[ROUTER_32].enable_whitelist()
|
||||
self.nodes[ROUTER_32].set_router_upgrade_threshold(33)
|
||||
self.nodes[ROUTER_32].set_router_downgrade_threshold(33)
|
||||
self.nodes[ROUTER_32].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_2_3_LeaderReject2Hops(thread_cert.TestCase):
|
||||
topology = {
|
||||
DUT_LEADER: {
|
||||
'mode':
|
||||
'rsdn',
|
||||
'panid':
|
||||
0xface,
|
||||
'router_downgrade_threshold':
|
||||
33,
|
||||
'router_upgrade_threshold':
|
||||
32,
|
||||
'whitelist': [
|
||||
ROUTER_1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
||||
ROUTER_31
|
||||
]
|
||||
},
|
||||
ROUTER_1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER, ROUTER_32]
|
||||
},
|
||||
3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
4: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
5: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
6: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
7: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
8: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
9: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
10: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
11: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
12: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
13: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
14: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
15: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
16: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
17: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
18: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
19: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
20: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
21: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
22: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
23: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
24: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
25: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
26: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
27: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
28: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
29: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
30: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
31: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
ROUTER_31: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
ROUTER_32: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 33,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 33,
|
||||
'whitelist': [ROUTER_1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
|
||||
@@ -29,10 +29,9 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import mle
|
||||
import network_layer
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 16
|
||||
@@ -45,45 +44,119 @@ REED_ADVERTISEMENT_MAX_JITTER = 60
|
||||
ROUTER_SELECTION_JITTER = 1
|
||||
|
||||
|
||||
class Cert_5_2_4_REEDUpgrade(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 19):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
for i in range(2, 17):
|
||||
self.nodes[i].set_panid(0xface)
|
||||
self.nodes[i].set_mode('rsdn')
|
||||
self.nodes[i].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
||||
self.nodes[i].enable_whitelist()
|
||||
self.nodes[i].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[DUT_REED].set_panid(0xface)
|
||||
self.nodes[DUT_REED].set_mode('rsdn')
|
||||
self.nodes[DUT_REED].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[DUT_REED].get_addr64())
|
||||
self.nodes[DUT_REED].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[DUT_REED].enable_whitelist()
|
||||
self.nodes[DUT_REED].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsdn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[DUT_REED].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_2_4_REEDUpgrade(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode':
|
||||
'rsdn',
|
||||
'panid':
|
||||
0xface,
|
||||
'whitelist': [
|
||||
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ROUTER
|
||||
]
|
||||
},
|
||||
2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
4: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
5: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
6: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
7: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
8: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
9: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
10: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
11: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
12: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
13: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
14: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
15: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, DUT_REED]
|
||||
},
|
||||
DUT_REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER, ED]
|
||||
},
|
||||
ED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_REED]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1 Ensure topology is formed correctly without the DUT_REED.
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -41,45 +41,120 @@ DUT_REED = 18
|
||||
ROUTER_SELECTION_JITTER = 1
|
||||
|
||||
|
||||
class Cert_5_2_5_AddressQuery(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 19):
|
||||
self.nodes[i] = node.Node(i, (i == ED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid()
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
for i in range(2, 17):
|
||||
self.nodes[i].set_panid()
|
||||
self.nodes[i].set_mode('rsdn')
|
||||
self.nodes[i].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
||||
self.nodes[i].enable_whitelist()
|
||||
self.nodes[i].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid()
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[DUT_REED].set_panid()
|
||||
self.nodes[DUT_REED].set_mode('rsdn')
|
||||
self.nodes[DUT_REED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[DUT_REED].get_addr64())
|
||||
self.nodes[DUT_REED].enable_whitelist()
|
||||
self.nodes[DUT_REED].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_2_5_AddressQuery(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode':
|
||||
'rsdn',
|
||||
'panid':
|
||||
0xface,
|
||||
'whitelist': [
|
||||
ROUTER1, BR, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ED1
|
||||
]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, DUT_REED]
|
||||
},
|
||||
BR: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
4: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
5: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
6: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
7: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
8: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
9: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
10: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
11: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
12: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
13: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
14: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
15: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
16: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
DUT_REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1. LEADER: DHCPv6 Server for prefix 2001::/64.
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import mle
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
@@ -40,26 +40,175 @@ ROUTER2 = 3
|
||||
ROUTER24 = 24
|
||||
|
||||
|
||||
class Cert_5_2_06_RouterDowngrade(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 25):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
self.nodes[i].set_panid()
|
||||
self.nodes[i].set_mode('rsdn')
|
||||
self.nodes[i].set_router_selection_jitter(1)
|
||||
if i != DUT_ROUTER1:
|
||||
self.nodes[i].set_router_upgrade_threshold(32)
|
||||
self.nodes[i].set_router_downgrade_threshold(32)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_2_06_RouterDowngrade(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
4: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
5: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
6: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
7: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
8: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
9: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
10: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
11: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
12: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
13: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
14: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
15: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
16: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
17: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
18: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
19: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
20: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
21: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
22: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
23: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
ROUTER24: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_downgrade_threshold': 32,
|
||||
'router_selection_jitter': 1,
|
||||
'router_upgrade_threshold': 32
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1 Ensure topology is formed correctly without ROUTER24.
|
||||
|
||||
@@ -28,12 +28,12 @@
|
||||
#
|
||||
|
||||
import unittest
|
||||
import ipv6
|
||||
|
||||
import node
|
||||
import mle
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import ipv6
|
||||
import mle
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
@@ -42,23 +42,94 @@ DUT_REED = 17
|
||||
MLE_MIN_LINKS = 3
|
||||
|
||||
|
||||
class Cert_5_2_7_REEDSynchronization(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 18):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
self.nodes[i].set_panid(0xface)
|
||||
self.nodes[i].set_mode('rsdn')
|
||||
self.nodes[i].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_2_7_REEDSynchronization(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
4: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
5: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
6: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
7: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
8: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
9: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
10: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
11: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
12: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
13: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
14: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
15: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
16: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
DUT_REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1. Ensure topology is formed correctly without DUT_ROUTER1.
|
||||
|
||||
@@ -29,34 +29,25 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
|
||||
|
||||
class Cert_5_3_1_LinkLocal(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
|
||||
self.nodes[DUT_ROUTER1].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER1].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_1_LinkLocal(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -38,45 +38,33 @@ DUT_ROUTER2 = 3
|
||||
SED1 = 4
|
||||
|
||||
|
||||
class Cert_5_3_2_RealmLocal(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i == SED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[DUT_ROUTER2].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER2].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('sn')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_2_RealmLocal(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, DUT_ROUTER2]
|
||||
},
|
||||
DUT_ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1, SED1]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'sn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [DUT_ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -41,54 +41,39 @@ MED1 = 5
|
||||
MED1_TIMEOUT = 3
|
||||
|
||||
|
||||
class Cert_5_3_3_AddressQuery(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == MED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid()
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid()
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[DUT_ROUTER2].set_panid()
|
||||
self.nodes[DUT_ROUTER2].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid()
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[MED1].set_panid()
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[MED1].set_timeout(MED1_TIMEOUT)
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_3_AddressQuery(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, DUT_ROUTER2, ROUTER3]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
DUT_ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER3, MED1]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, DUT_ROUTER2]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': 3,
|
||||
'whitelist': [DUT_ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
@@ -44,51 +44,51 @@ ED4 = 7
|
||||
MTDS = [SED1, ED1, ED2, ED3, ED4]
|
||||
|
||||
|
||||
class Cert_5_3_4_AddressMapCache(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 8):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED2].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED3].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED4].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[DUT_ROUTER1].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER1].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
|
||||
# Set the SED1's timeout in order to receive the icmp reply when keep
|
||||
# alive with DUT_ROUTER.
|
||||
self.nodes[SED1].set_timeout(5)
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
|
||||
for ED in [ED1, ED2, ED3, ED4]:
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_4_AddressMapCache(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_ROUTER1, ED1, ED2, ED3, ED4]
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, SED1]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': 5,
|
||||
'whitelist': [DUT_ROUTER1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED3: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED4: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
@@ -39,47 +39,32 @@ ROUTER2 = 3
|
||||
ROUTER3 = 4
|
||||
|
||||
|
||||
class Cert_5_3_5_RoutingLinkQuality(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[DUT_ROUTER1].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER1].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_5_RoutingLinkQuality(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_ROUTER1, ROUTER2]
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2, ROUTER3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, DUT_ROUTER1]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [DUT_ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
|
||||
@@ -29,52 +29,42 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import mle
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import mle
|
||||
import thread_cert
|
||||
|
||||
DUT_LEADER = 1
|
||||
ROUTER1 = 2
|
||||
ROUTER2 = 3
|
||||
|
||||
|
||||
class Cert_5_3_6_RouterIdMask(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[DUT_LEADER].set_panid(0xface)
|
||||
self.nodes[DUT_LEADER].set_mode('rsdn')
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[DUT_LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self._setUpRouter2()
|
||||
class Cert_5_3_6_RouterIdMask(thread_cert.TestCase):
|
||||
topology = {
|
||||
DUT_LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [DUT_LEADER, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpRouter2(self):
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
self.nodes[DUT_LEADER].start()
|
||||
|
||||
@@ -29,46 +29,33 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
ROUTER2 = 3
|
||||
|
||||
|
||||
class Cert_5_3_6_RouterIdMask(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_6_RouterIdMask(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import command
|
||||
import config
|
||||
import mle
|
||||
import thread_cert
|
||||
|
||||
DUT_LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -44,56 +44,44 @@ MED3 = 6
|
||||
MTDS = [MED1, SED1, MED3]
|
||||
|
||||
|
||||
class Cert_5_3_7_DuplicateAddress(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 7):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[DUT_LEADER].set_panid(0xface)
|
||||
self.nodes[DUT_LEADER].set_mode('rsdn')
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[MED3].get_addr64())
|
||||
self.nodes[DUT_LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[MED1].set_panid(0xface)
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
|
||||
self.nodes[MED3].set_panid(0xface)
|
||||
self.nodes[MED3].set_mode('rsn')
|
||||
self.nodes[MED3].add_whitelist(self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[MED3].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_7_DuplicateAddress(thread_cert.TestCase):
|
||||
topology = {
|
||||
DUT_LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2, MED3]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [DUT_LEADER, MED1]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [DUT_LEADER, SED1]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER2]
|
||||
},
|
||||
MED3: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1
|
||||
|
||||
@@ -29,11 +29,11 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import command
|
||||
import config
|
||||
import ipv6
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
DUT_LEADER = 1
|
||||
BR = 2
|
||||
@@ -43,39 +43,32 @@ MED2 = 4
|
||||
MTDS = [MED1, MED2]
|
||||
|
||||
|
||||
class Cert_5_3_8_ChildAddressSet(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[DUT_LEADER].set_panid(0xface)
|
||||
self.nodes[DUT_LEADER].set_mode('rsdn')
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[BR].get_addr64())
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[DUT_LEADER].add_whitelist(self.nodes[MED2].get_addr64())
|
||||
self.nodes[DUT_LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[BR].set_panid(0xface)
|
||||
self.nodes[BR].set_mode('rsdn')
|
||||
self.nodes[BR].add_whitelist(self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[BR].enable_whitelist()
|
||||
self.nodes[BR].set_router_selection_jitter(1)
|
||||
|
||||
for i in MTDS:
|
||||
self.nodes[i].set_panid(0xface)
|
||||
self.nodes[i].set_mode('rsn')
|
||||
self.nodes[i].add_whitelist(self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[i].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_8_ChildAddressSet(thread_cert.TestCase):
|
||||
topology = {
|
||||
DUT_LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [BR, MED1, MED2]
|
||||
},
|
||||
BR: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
MED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[DUT_LEADER].start()
|
||||
|
||||
@@ -33,7 +33,7 @@ import unittest
|
||||
import command
|
||||
import config
|
||||
import ipv6
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -42,52 +42,39 @@ ROUTER3 = 4
|
||||
SED1 = 5
|
||||
|
||||
|
||||
class Cert_5_3_09_AddressQuery(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == SED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[DUT_ROUTER2].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER2].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_09_AddressQuery(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, DUT_ROUTER2, ROUTER3]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
DUT_ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, SED1]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [DUT_ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1 & 2 ALL: Build and verify the topology
|
||||
|
||||
@@ -33,7 +33,7 @@ import unittest
|
||||
import command
|
||||
import config
|
||||
import ipv6
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
BR = 2
|
||||
@@ -42,53 +42,38 @@ DUT_ROUTER2 = 4
|
||||
MED1 = 5
|
||||
|
||||
|
||||
class Cert_5_3_10_AddressQuery(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == MED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[BR].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[BR].set_panid(0xface)
|
||||
self.nodes[BR].set_mode('rsdn')
|
||||
self.nodes[BR].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[BR].enable_whitelist()
|
||||
self.nodes[BR].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[DUT_ROUTER2].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER2].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[DUT_ROUTER2].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[MED1].set_panid(0xface)
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[DUT_ROUTER2].get_addr64())
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_10_AddressQuery(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [BR, ROUTER1, DUT_ROUTER2]
|
||||
},
|
||||
BR: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, DUT_ROUTER2]
|
||||
},
|
||||
DUT_ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER1, MED1]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1 & 2
|
||||
|
||||
@@ -31,44 +31,33 @@ import unittest
|
||||
|
||||
import command
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
MED1 = 3
|
||||
|
||||
|
||||
class Cert_5_3_11_AddressQueryTimeoutIntervals(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == MED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[DUT_ROUTER1].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER1].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[MED1].set_panid(0xface)
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_11_AddressQueryTimeoutIntervals(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_ROUTER1]
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, MED1]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1 ALL: Build and verify the topology
|
||||
|
||||
@@ -33,43 +33,32 @@ import unittest
|
||||
import command
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
DUT_LEADER = 1
|
||||
DUT_ROUTER1 = 2
|
||||
|
||||
|
||||
class Cert_5_5_1_LeaderReboot(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[DUT_LEADER].set_panid(0xface)
|
||||
self.nodes[DUT_LEADER].set_mode('rsdn')
|
||||
self._setUpLeader()
|
||||
|
||||
self.nodes[DUT_ROUTER1].set_panid(0xface)
|
||||
self.nodes[DUT_ROUTER1].set_mode('rsdn')
|
||||
self.nodes[DUT_ROUTER1].add_whitelist(
|
||||
self.nodes[DUT_LEADER].get_addr64())
|
||||
self.nodes[DUT_ROUTER1].enable_whitelist()
|
||||
self.nodes[DUT_ROUTER1].set_router_selection_jitter(1)
|
||||
class Cert_5_5_1_LeaderReboot(thread_cert.TestCase):
|
||||
topology = {
|
||||
DUT_LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [DUT_ROUTER1]
|
||||
},
|
||||
DUT_ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [DUT_LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpLeader(self):
|
||||
self.nodes[DUT_LEADER].add_whitelist(
|
||||
self.nodes[DUT_ROUTER1].get_addr64())
|
||||
self.nodes[DUT_LEADER].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
# 1 ALL: Build and verify the topology
|
||||
self.nodes[DUT_LEADER].start()
|
||||
|
||||
@@ -29,50 +29,40 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
ED = 3
|
||||
|
||||
|
||||
class Cert_5_5_2_LeaderReboot(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self._setUpLeader()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
class Cert_5_5_2_LeaderReboot(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpLeader(self):
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -42,47 +41,45 @@ ED3 = 6
|
||||
MTDS = [ED1, ED2, ED3]
|
||||
|
||||
|
||||
class Cert_5_5_3_SplitMergeChildren(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 7):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self._setUpLeader()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED2].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED3].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[ED2].set_panid(0xface)
|
||||
self.nodes[ED2].set_mode('rsn')
|
||||
self.nodes[ED2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED2].enable_whitelist()
|
||||
|
||||
self.nodes[ED3].set_panid(0xface)
|
||||
self.nodes[ED3].set_mode('rsn')
|
||||
self.nodes[ED3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED3].enable_whitelist()
|
||||
class Cert_5_5_3_SplitMergeChildren(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1, ROUTER2, ED1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED2, ED3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ED3: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpLeader(self):
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
@@ -91,12 +88,6 @@ class Cert_5_5_3_SplitMergeChildren(unittest.TestCase):
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -39,44 +38,39 @@ ROUTER3 = 4
|
||||
ROUTER4 = 5
|
||||
|
||||
|
||||
class Cert_5_5_4_SplitMergeRouters(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self._setUpLeader()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER4].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER4].set_panid(0xface)
|
||||
self.nodes[ROUTER4].set_mode('rsdn')
|
||||
self.nodes[ROUTER4].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER4].enable_whitelist()
|
||||
self.nodes[ROUTER4].set_router_selection_jitter(1)
|
||||
class Cert_5_5_4_SplitMergeRouters(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER4]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER4: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpLeader(self):
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
@@ -84,12 +78,6 @@ class Cert_5_5_4_SplitMergeRouters(unittest.TestCase):
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -40,47 +39,114 @@ ROUTER15 = 16
|
||||
REED1 = 17
|
||||
|
||||
|
||||
class Cert_5_5_5_SplitMergeREED(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 18):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
for i in range(ROUTER2, ROUTER15 + 1):
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[i].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
for i in range(ROUTER2, ROUTER15 + 1):
|
||||
self.nodes[i].set_panid(0xface)
|
||||
self.nodes[i].set_mode('rsdn')
|
||||
self.nodes[i].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[i].enable_whitelist()
|
||||
self.nodes[i].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
|
||||
self.nodes[REED1].set_panid(0xface)
|
||||
self.nodes[REED1].set_mode('rsdn')
|
||||
self.nodes[REED1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[REED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_5_5_SplitMergeREED(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode':
|
||||
'rsdn',
|
||||
'panid':
|
||||
0xface,
|
||||
'whitelist': [
|
||||
ROUTER2, ROUTER3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
||||
ROUTER15
|
||||
]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, REED1]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER1]
|
||||
},
|
||||
5: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
6: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
7: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
8: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
9: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
10: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
11: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
12: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
13: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
14: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
15: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ROUTER15: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
REED1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER1 = 1
|
||||
ROUTER1 = 2
|
||||
@@ -38,36 +37,33 @@ ROUTER2 = 3
|
||||
ROUTER3 = 4
|
||||
|
||||
|
||||
class Cert_5_5_7_SplitMergeThreeWay(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER1].set_panid(0xface)
|
||||
self.nodes[LEADER1].set_mode('rsdn')
|
||||
self._setUpLeader1()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
class Cert_5_5_7_SplitMergeThreeWay(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1, ROUTER2, ROUTER3]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER1]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER1]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER1]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpLeader1(self):
|
||||
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
@@ -76,12 +72,6 @@ class Cert_5_5_7_SplitMergeThreeWay(unittest.TestCase):
|
||||
self.nodes[LEADER1].enable_whitelist()
|
||||
self.nodes[LEADER1].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER1].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER1 = 1
|
||||
ROUTER1 = 2
|
||||
@@ -39,44 +38,39 @@ ROUTER3 = 4
|
||||
ED1 = 5
|
||||
|
||||
|
||||
class Cert_5_5_8_SplitRoutersLostLeader(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == ED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER1].set_panid(0xface)
|
||||
self.nodes[LEADER1].set_mode('rsdn')
|
||||
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[LEADER1].enable_whitelist()
|
||||
self.nodes[LEADER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self._setUpRouter3()
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
class Cert_5_5_8_SplitRoutersLostLeader(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER3]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER3, ROUTER2, ED1]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER3, ROUTER1]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER1, ROUTER2, ROUTER1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpRouter3(self):
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
@@ -85,11 +79,6 @@ class Cert_5_5_8_SplitRoutersLostLeader(unittest.TestCase):
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER1].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED1 = 4
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_5_6_1_NetworkDataLeaderAsBr(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_1_NetworkDataLeaderAsBr(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1, SED1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED1 = 4
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_5_6_2_NetworkDataRouterAsBr(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_2_NetworkDataRouterAsBr(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER, ED1, SED1]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED1 = 4
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_5_6_3_NetworkDataRegisterAfterAttachLeader(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_3_NetworkDataRegisterAfterAttachLeader(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1, SED1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED1 = 4
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_5_6_4_NetworkDataRegisterAfterAttachRouter(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_4_NetworkDataRegisterAfterAttachRouter(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1, SED1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED1 = 4
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_5_6_5_NetworkDataRegisterAfterAttachRouter(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_5_NetworkDataRegisterAfterAttachRouter(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1, SED1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED1 = 4
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_5_6_6_NetworkDataExpiration(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_6_NetworkDataExpiration(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1, SED1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,46 +29,33 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
REED = 3
|
||||
|
||||
|
||||
class Cert_5_6_7_NetworkDataRequestREED(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[REED].set_panid(0xface)
|
||||
self.nodes[REED].set_mode('rsdn')
|
||||
self.nodes[REED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED].enable_whitelist()
|
||||
self.nodes[REED].set_router_upgrade_threshold(0)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_7_NetworkDataRequestREED(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER, REED]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,46 +29,34 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
ED = 3
|
||||
|
||||
|
||||
class Cert_5_6_8_ContextManagement(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_context_reuse_delay(10)
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_8_ContextManagement(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'context_reuse_delay': 10,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER, ED]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -41,51 +41,39 @@ SED = 5
|
||||
MTDS = [ED, SED]
|
||||
|
||||
|
||||
class Cert_5_6_9_NetworkDataForwarding(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[SED].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
self.nodes[SED].set_panid(0xface)
|
||||
self.nodes[SED].set_mode('s')
|
||||
self.nodes[SED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[SED].enable_whitelist()
|
||||
self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_6_9_NetworkDataForwarding(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED, SED]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
SED: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -33,8 +33,7 @@ import config
|
||||
import mle
|
||||
import network_diag
|
||||
import network_layer
|
||||
import node
|
||||
|
||||
import thread_cert
|
||||
from network_diag import TlvType
|
||||
|
||||
LEADER = 1
|
||||
@@ -48,58 +47,35 @@ DUT = ROUTER1
|
||||
MTDS = [MED1, SED1]
|
||||
|
||||
|
||||
class Cert_5_7_01_CoapDiagCommands_A(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 7):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[FED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[REED1].set_panid(0xface)
|
||||
self.nodes[REED1].set_mode('rsdn')
|
||||
self.nodes[REED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[REED1].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
self.nodes[MED1].set_panid(0xface)
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
self.nodes[FED1].set_panid(0xface)
|
||||
self.nodes[FED1].set_mode('rsdn')
|
||||
self.nodes[FED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[FED1].set_router_upgrade_threshold(0)
|
||||
self.nodes[FED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_7_01_CoapDiagCommands_A(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'whitelist': [ROUTER1],
|
||||
},
|
||||
ROUTER1: {
|
||||
'whitelist': [LEADER, REED1, SED1, MED1, FED1],
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
REED1: {
|
||||
'whitelist': [ROUTER1],
|
||||
'router_upgrade_threshold': 0
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'whitelist': [ROUTER1],
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
FED1: {
|
||||
'whitelist': [ROUTER1],
|
||||
'router_upgrade_threshold': 0
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1 - Form topology
|
||||
|
||||
@@ -29,39 +29,28 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_5_8_1_KeySynchronization(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_key_switch_guardtime(0)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
self.nodes[ED].set_key_switch_guardtime(0)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_8_1_KeySynchronization(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,40 +29,28 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class Cert_5_8_2_KeyIncrement(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].set_key_switch_guardtime(0)
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_key_switch_guardtime(0)
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_8_2_KeyIncrement(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,41 +29,29 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class Cert_5_8_3_KeyIncrementRollOver(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_key_switch_guardtime(0)
|
||||
self.nodes[LEADER].set_key_sequence_counter(127)
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_key_switch_guardtime(0)
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_8_3_KeyIncrementRollOver(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'key_sequence_counter': 127,
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,38 +29,27 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_6_1_1_RouterAttach(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_1_RouterAttach(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,51 +29,40 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import thread_cert
|
||||
from command import check_parent_request
|
||||
from command import check_child_id_request
|
||||
from command import check_child_update_request_from_child
|
||||
from command import CheckType
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
|
||||
LEADER = 1
|
||||
REED = 2
|
||||
MED = 3
|
||||
|
||||
|
||||
class Cert_6_1_2_REEDAttach_MED(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == MED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[REED].set_panid(0xface)
|
||||
self.nodes[REED].set_mode('rsdn')
|
||||
self.nodes[REED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED].add_whitelist(self.nodes[MED].get_addr64())
|
||||
self.nodes[REED].enable_whitelist()
|
||||
self.nodes[REED].set_router_upgrade_threshold(0)
|
||||
|
||||
self.nodes[MED].set_panid(0xface)
|
||||
self.nodes[MED].set_mode('rsn')
|
||||
self.nodes[MED].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[MED].enable_whitelist()
|
||||
self.nodes[MED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_2_REEDAttach_MED(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED]
|
||||
},
|
||||
REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, MED]
|
||||
},
|
||||
MED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [REED]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import thread_cert
|
||||
from command import check_parent_request
|
||||
from command import check_child_id_request
|
||||
from command import CheckType
|
||||
@@ -36,45 +37,33 @@ import config
|
||||
import mac802154
|
||||
import message
|
||||
import mle
|
||||
import node
|
||||
|
||||
LEADER = 1
|
||||
REED = 2
|
||||
SED = 3
|
||||
|
||||
|
||||
class Cert_6_1_2_REEDAttach_SED(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == SED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[REED].set_panid(0xface)
|
||||
self.nodes[REED].set_mode('rsdn')
|
||||
self.nodes[REED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED].add_whitelist(self.nodes[SED].get_addr64())
|
||||
self.nodes[REED].enable_whitelist()
|
||||
self.nodes[REED].set_router_upgrade_threshold(0)
|
||||
|
||||
self.nodes[SED].set_panid(0xface)
|
||||
self.nodes[SED].set_mode('s')
|
||||
self.nodes[SED].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[SED].enable_whitelist()
|
||||
self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_2_REEDAttach_SED(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED]
|
||||
},
|
||||
REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, SED]
|
||||
},
|
||||
SED: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [REED]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -39,55 +39,38 @@ ROUTER3 = 4
|
||||
ED = 5
|
||||
|
||||
|
||||
class Cert_6_1_3_RouterAttachConnectivity(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_3_RouterAttachConnectivity(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2, ROUTER3]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER1, ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER2, ROUTER3]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -39,55 +38,38 @@ REED1 = 4
|
||||
ED = 5
|
||||
|
||||
|
||||
class Cert_6_1_4_REEDAttachConnectivity(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED0].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[REED0].set_panid(0xface)
|
||||
self.nodes[REED0].set_mode('rsdn')
|
||||
self.nodes[REED0].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED0].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[REED0].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED0].enable_whitelist()
|
||||
|
||||
self.nodes[REED1].set_panid(0xface)
|
||||
self.nodes[REED1].set_mode('rsdn')
|
||||
self.nodes[REED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[REED1].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[REED1].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED1].enable_whitelist()
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[REED0].get_addr64())
|
||||
self.nodes[ED].add_whitelist(self.nodes[REED1].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_4_REEDAttachConnectivity(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, REED0, REED1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, REED1]
|
||||
},
|
||||
REED0: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
REED1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, ROUTER1, ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED0, REED1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -38,46 +37,32 @@ ROUTER2 = 3
|
||||
ED = 4
|
||||
|
||||
|
||||
class Cert_6_1_5_RouterAttachLinkQuality(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64(), rssi=-85)
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_5_RouterAttachLinkQuality(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, (ED, -85)]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,9 +29,8 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
REED = 2
|
||||
@@ -39,46 +38,32 @@ ROUTER2 = 3
|
||||
ED = 4
|
||||
|
||||
|
||||
class Cert_6_1_6_REEDAttachLinkQuality_ED(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[REED].set_panid(0xface)
|
||||
self.nodes[REED].set_mode('rsdn')
|
||||
self.nodes[REED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[REED].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64(), rssi=-85)
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_6_REEDAttachLinkQuality_ED(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED, ROUTER2]
|
||||
},
|
||||
REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, (ED, -85)]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED, ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -31,7 +31,7 @@ import unittest
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
REED = 2
|
||||
@@ -39,48 +39,33 @@ ROUTER2 = 3
|
||||
SED = 4
|
||||
|
||||
|
||||
class Cert_6_1_6_REEDAttachLinkQuality_SED(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i == SED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[REED].set_panid(0xface)
|
||||
self.nodes[REED].set_mode('rsdn')
|
||||
self.nodes[REED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[REED].add_whitelist(self.nodes[SED].get_addr64())
|
||||
self.nodes[REED].set_router_upgrade_threshold(0)
|
||||
self.nodes[REED].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[SED].get_addr64(),
|
||||
rssi=-85)
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[SED].set_panid(0xface)
|
||||
self.nodes[SED].set_mode('s')
|
||||
self.nodes[SED].add_whitelist(self.nodes[REED].get_addr64())
|
||||
self.nodes[SED].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[SED].enable_whitelist()
|
||||
self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_6_REEDAttachLinkQuality_SED(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [REED, ROUTER2]
|
||||
},
|
||||
REED: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_upgrade_threshold': 0,
|
||||
'whitelist': [LEADER, SED]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, (SED, -85)]
|
||||
},
|
||||
SED: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [REED, ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -39,59 +38,38 @@ ROUTER2 = 4
|
||||
ROUTER3 = 5
|
||||
|
||||
|
||||
class Cert_6_1_7_EDSynchronization(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER3].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER3].set_panid(0xface)
|
||||
self.nodes[ROUTER3].set_mode('rsdn')
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER3].enable_whitelist()
|
||||
self.nodes[ROUTER3].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_1_7_EDSynchronization(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ED, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED, ROUTER3]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER, ROUTER1, ROUTER2, ROUTER3]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED, ROUTER3]
|
||||
},
|
||||
ROUTER3: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ED, ROUTER1, ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,45 +29,33 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
ED = 3
|
||||
|
||||
|
||||
class Cert_6_2_1_NewPartition(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_2_1_NewPartition(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER1 = 2
|
||||
@@ -38,47 +37,33 @@ ROUTER2 = 3
|
||||
ED = 4
|
||||
|
||||
|
||||
class Cert_6_2_2_NewPartition(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_panid(0xface)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_network_id_timeout(110)
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_2_2_NewPartition(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2, ED]
|
||||
},
|
||||
ROUTER2: {
|
||||
'mode': 'rsdn',
|
||||
'network_id_timeout': 110,
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER1]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,46 +29,34 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
ED = 3
|
||||
|
||||
|
||||
class Cert_6_3_1_OrphanReattach(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
self.nodes[ED].set_timeout(10)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_3_1_OrphanReattach(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': 10,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,38 +29,27 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_6_3_2_NetworkDataUpdate(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
self.nodes[ED].set_timeout(10)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_3_2_NetworkDataUpdate(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': 10,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,37 +29,26 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_6_4_1_LinkLocal(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_4_1_LinkLocal(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,45 +29,34 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
ED = 3
|
||||
|
||||
|
||||
class Cert_5_3_2_RealmLocal(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_5_3_2_RealmLocal(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
4: {},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,41 +30,32 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_6_5_1_ChildResetSynchronize(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
self._setUpEd()
|
||||
class Cert_6_5_1_ChildResetSynchronize(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpEd(self):
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,41 +29,31 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_6_5_2_ChildResetReattach(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self._setUpEd()
|
||||
class Cert_6_5_2_ChildResetReattach(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpEd(self):
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,39 +29,28 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_6_6_1_KeyIncrement(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_key_switch_guardtime(0)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
self.nodes[ED].set_key_switch_guardtime(0)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_6_1_KeyIncrement(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,40 +29,29 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ED = 2
|
||||
|
||||
|
||||
class Cert_6_6_2_KeyIncrement1(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, (i == ED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_key_switch_guardtime(0)
|
||||
self.nodes[LEADER].set_key_sequence_counter(127)
|
||||
|
||||
self.nodes[ED].set_panid(0xface)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self.nodes[ED].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ED].enable_whitelist()
|
||||
self.nodes[ED].set_key_switch_guardtime(0)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_6_6_2_KeyIncrement1(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'key_sequence_counter': 127,
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ED]
|
||||
},
|
||||
ED: {
|
||||
'is_mtd': True,
|
||||
'key_switch_guardtime': 0,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import thread_cert
|
||||
from command import (
|
||||
check_child_id_response,
|
||||
check_child_update_response,
|
||||
@@ -38,9 +40,7 @@ from command import (
|
||||
from command import CheckType
|
||||
from command import NetworkDataCheck, PrefixesCheck, SinglePrefixCheck
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -50,44 +50,33 @@ MED1 = 4
|
||||
MTDS = [SED1, MED1]
|
||||
|
||||
|
||||
class Cert_7_1_1_BorderRouterAsLeader(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
self.nodes[MED1].set_panid(0xface)
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_7_1_1_BorderRouterAsLeader(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER, SED1, MED1]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED2 = 4
|
||||
MTDS = [ED2, SED2]
|
||||
|
||||
|
||||
class Cert_7_1_2_BorderRouterAsRouter(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED2].set_panid(0xface)
|
||||
self.nodes[ED2].set_mode('rsn')
|
||||
self.nodes[ED2].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED2].enable_whitelist()
|
||||
|
||||
self.nodes[SED2].set_panid(0xface)
|
||||
self.nodes[SED2].set_mode('s')
|
||||
self.nodes[SED2].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED2].enable_whitelist()
|
||||
self.nodes[SED2].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_7_1_2_BorderRouterAsRouter(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED2, SED2]
|
||||
},
|
||||
ED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import thread_cert
|
||||
from command import (
|
||||
check_child_update_request_from_child,
|
||||
check_child_update_request_from_parent,
|
||||
@@ -40,7 +41,6 @@ from command import NetworkDataCheck, PrefixesCheck, SinglePrefixCheck
|
||||
|
||||
import config
|
||||
import mle
|
||||
import node
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -50,44 +50,33 @@ MED1 = 4
|
||||
MTDS = [SED1, MED1]
|
||||
|
||||
|
||||
class Cert_7_1_3_BorderRouterAsLeader(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[MED1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[SED1].set_panid(0xface)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
self.nodes[MED1].set_panid(0xface)
|
||||
self.nodes[MED1].set_mode('rsn')
|
||||
self.nodes[MED1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[MED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_7_1_3_BorderRouterAsLeader(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER, SED1, MED1]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
SED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
MED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
# 1 - All
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED2 = 4
|
||||
MTDS = [SED2, ED2]
|
||||
|
||||
|
||||
class Cert_7_1_4_BorderRouterAsRouter(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED2].set_panid(0xface)
|
||||
self.nodes[ED2].set_mode('rsn')
|
||||
self.nodes[ED2].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED2].enable_whitelist()
|
||||
|
||||
self.nodes[SED2].set_panid(0xface)
|
||||
self.nodes[SED2].set_mode('s')
|
||||
self.nodes[SED2].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED2].enable_whitelist()
|
||||
self.nodes[SED2].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_7_1_4_BorderRouterAsRouter(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED2, SED2]
|
||||
},
|
||||
ED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
@@ -40,44 +40,33 @@ SED2 = 4
|
||||
MTDS = [ED2, SED2]
|
||||
|
||||
|
||||
class Cert_7_1_5_BorderRouterAsRouter(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[ED2].get_addr64())
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[SED2].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED2].set_panid(0xface)
|
||||
self.nodes[ED2].set_mode('rsn')
|
||||
self.nodes[ED2].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[ED2].enable_whitelist()
|
||||
|
||||
self.nodes[SED2].set_panid(0xface)
|
||||
self.nodes[SED2].set_mode('s')
|
||||
self.nodes[SED2].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[SED2].enable_whitelist()
|
||||
self.nodes[SED2].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_7_1_5_BorderRouterAsRouter(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED2, SED2]
|
||||
},
|
||||
ED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
SED2: {
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,10 +30,9 @@
|
||||
import unittest
|
||||
|
||||
import command
|
||||
import config
|
||||
import dtls
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
from command import CheckType
|
||||
|
||||
@@ -41,29 +40,19 @@ COMMISSIONER = 1
|
||||
JOINER = 2
|
||||
|
||||
|
||||
class Cert_8_1_01_Commissioning(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_panid(0xface)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].set_masterkey(
|
||||
'00112233445566778899aabbccddeeff')
|
||||
|
||||
self.nodes[JOINER].set_mode('rsdn')
|
||||
self.nodes[JOINER].set_masterkey('deadbeefdeadbeefdeadbeefdeadbeef')
|
||||
self.nodes[JOINER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_8_1_01_Commissioning(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface
|
||||
},
|
||||
JOINER: {
|
||||
'masterkey': 'deadbeefdeadbeefdeadbeefdeadbeef',
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[COMMISSIONER].interface_up()
|
||||
|
||||
@@ -29,36 +29,25 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
JOINER = 2
|
||||
|
||||
|
||||
class Cert_8_1_02_Commissioning(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_panid(0xface)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].set_masterkey(
|
||||
'deadbeefdeadbeefdeadbeefdeadbeef')
|
||||
|
||||
self.nodes[JOINER].set_mode('rsdn')
|
||||
self.nodes[JOINER].set_masterkey('00112233445566778899aabbccddeeff')
|
||||
self.nodes[JOINER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_8_1_02_Commissioning(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'masterkey': 'deadbeefdeadbeefdeadbeefdeadbeef',
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface
|
||||
},
|
||||
JOINER: {
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[COMMISSIONER].interface_up()
|
||||
|
||||
@@ -29,46 +29,32 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
JOINER_ROUTER = 2
|
||||
JOINER = 3
|
||||
|
||||
|
||||
class Cert_8_2_01_JoinerRouter(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_panid(0xface)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].set_masterkey(
|
||||
'deadbeefdeadbeefdeadbeefdeadbeef')
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[JOINER_ROUTER].set_mode('rsdn')
|
||||
self.nodes[JOINER_ROUTER].set_masterkey(
|
||||
'00112233445566778899aabbccddeeff')
|
||||
self.nodes[JOINER_ROUTER].enable_whitelist()
|
||||
self.nodes[JOINER_ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[JOINER].set_mode('rsdn')
|
||||
self.nodes[JOINER].set_masterkey('00112233445566778899aabbccddeeff')
|
||||
self.nodes[JOINER].enable_whitelist()
|
||||
self.nodes[JOINER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_8_2_01_JoinerRouter(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'masterkey': 'deadbeefdeadbeefdeadbeefdeadbeef',
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
JOINER_ROUTER: {
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
JOINER: {
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[COMMISSIONER].interface_up()
|
||||
|
||||
@@ -29,46 +29,32 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
JOINER_ROUTER = 2
|
||||
JOINER = 3
|
||||
|
||||
|
||||
class Cert_8_2_02_JoinerRouter(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_panid(0xface)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].set_masterkey(
|
||||
'deadbeefdeadbeefdeadbeefdeadbeef')
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[JOINER_ROUTER].set_mode('rsdn')
|
||||
self.nodes[JOINER_ROUTER].set_masterkey(
|
||||
'00112233445566778899aabbccddeeff')
|
||||
self.nodes[JOINER_ROUTER].enable_whitelist()
|
||||
self.nodes[JOINER_ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[JOINER].set_mode('rsdn')
|
||||
self.nodes[JOINER].set_masterkey('00112233445566778899aabbccddeeff')
|
||||
self.nodes[JOINER].enable_whitelist()
|
||||
self.nodes[JOINER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_8_2_02_JoinerRouter(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'masterkey': 'deadbeefdeadbeefdeadbeefdeadbeef',
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
JOINER_ROUTER: {
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
JOINER: {
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[COMMISSIONER].interface_up()
|
||||
|
||||
@@ -31,41 +31,29 @@ from ipaddress import ip_address
|
||||
import unittest
|
||||
|
||||
import command
|
||||
import config
|
||||
import mesh_cop
|
||||
import mle
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
LEADER = 2
|
||||
|
||||
|
||||
class Cert_9_2_02_MGMTCommissionerSet(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_panid(0xface)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_02_MGMTCommissionerSet(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,37 +29,33 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
LEADER = 2
|
||||
|
||||
|
||||
class Cert_9_2_04_ActiveDataset(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(
|
||||
10, panid=0xface, master_key='000102030405060708090a0b0c0d0e0f')
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(
|
||||
10, panid=0xface, master_key='000102030405060708090a0b0c0d0e0f')
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_04_ActiveDataset(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': 0xface,
|
||||
'master_key': '000102030405060708090a0b0c0d0e0f'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': 0xface,
|
||||
'master_key': '000102030405060708090a0b0c0d0e0f'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
PANID_INIT = 0xface
|
||||
|
||||
@@ -47,43 +46,38 @@ COMMISSIONER_PENDING_CHANNEL = 20
|
||||
COMMISSIONER_PENDING_PANID = 0xafce
|
||||
|
||||
|
||||
class Cert_9_2_7_DelayTimer(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(LEADER_ACTIVE_TIMESTAMP)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].set_panid(PANID_INIT)
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].set_panid(PANID_INIT)
|
||||
self.nodes[LEADER].set_partition_id(0xffffffff)
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER].set_active_dataset(ROUTER_ACTIVE_TIMESTAMP)
|
||||
self.nodes[ROUTER].set_pending_dataset(ROUTER_PENDING_TIMESTAMP,
|
||||
ROUTER_PENDING_ACTIVE_TIMESTAMP)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].set_panid(PANID_INIT)
|
||||
self.nodes[ROUTER].set_partition_id(0x1)
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_7_DelayTimer(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': LEADER_ACTIVE_TIMESTAMP
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'partition_id': 0xffffffff,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER]
|
||||
},
|
||||
ROUTER: {
|
||||
'active_dataset': {
|
||||
'timestamp': ROUTER_ACTIVE_TIMESTAMP
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'partition_id': 1,
|
||||
'pending_dataset': {
|
||||
'pendingtimestamp': ROUTER_PENDING_TIMESTAMP,
|
||||
'activetimestamp': ROUTER_PENDING_ACTIVE_TIMESTAMP
|
||||
},
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
LEADER = 2
|
||||
@@ -48,48 +48,54 @@ COMMISSIONER_PENDING_PANID = 0xafce
|
||||
MTDS = [ED, SED]
|
||||
|
||||
|
||||
class Cert_9_2_8_PersistentDatasets(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(LEADER_ACTIVE_TIMESTAMP,
|
||||
panid=PANID_INIT,
|
||||
channel=CHANNEL_INIT)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(LEADER_ACTIVE_TIMESTAMP,
|
||||
panid=PANID_INIT,
|
||||
channel=CHANNEL_INIT)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ED].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[SED].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_active_dataset(LEADER_ACTIVE_TIMESTAMP,
|
||||
panid=PANID_INIT,
|
||||
channel=CHANNEL_INIT)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self._setUpRouter()
|
||||
|
||||
self.nodes[ED].set_channel(CHANNEL_INIT)
|
||||
self.nodes[ED].set_panid(PANID_INIT)
|
||||
self.nodes[ED].set_mode('rsn')
|
||||
self._setUpEd()
|
||||
|
||||
self.nodes[SED].set_channel(CHANNEL_INIT)
|
||||
self.nodes[SED].set_panid(PANID_INIT)
|
||||
self.nodes[SED].set_mode('s')
|
||||
self._setUpSed()
|
||||
class Cert_9_2_8_PersistentDatasets(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': LEADER_ACTIVE_TIMESTAMP,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': LEADER_ACTIVE_TIMESTAMP,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'whitelist': [COMMISSIONER, ROUTER, ED, SED]
|
||||
},
|
||||
ROUTER: {
|
||||
'active_dataset': {
|
||||
'timestamp': LEADER_ACTIVE_TIMESTAMP,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
ED: {
|
||||
'channel': CHANNEL_INIT,
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': PANID_INIT,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
SED: {
|
||||
'channel': CHANNEL_INIT,
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': PANID_INIT,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpRouter(self):
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
@@ -106,11 +112,6 @@ class Cert_9_2_8_PersistentDatasets(unittest.TestCase):
|
||||
self.nodes[SED].enable_whitelist()
|
||||
self.nodes[SED].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
CHANNEL_INIT = 19
|
||||
PANID_INIT = 0xface
|
||||
@@ -44,56 +43,51 @@ ROUTER1 = 3
|
||||
ROUTER2 = 4
|
||||
|
||||
|
||||
class Cert_9_2_09_PendingPartition(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(10,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(10,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].set_partition_id(0xffffffff)
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_active_dataset(10,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_active_dataset(10,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
self.nodes[ROUTER2].set_network_id_timeout(100)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_09_PendingPartition(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'partition_id': 0xffffffff,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'network_id_timeout': 100,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
CHANNEL_INIT = 19
|
||||
PANID_INIT = 0xface
|
||||
@@ -47,61 +47,55 @@ SED1 = 5
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_9_2_10_PendingPartition(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(15,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(15,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].set_partition_id(0xffffffff)
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_active_dataset(15,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_channel(CHANNEL_INIT)
|
||||
self.nodes[ED1].set_panid(PANID_INIT)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_channel(CHANNEL_INIT)
|
||||
self.nodes[SED1].set_panid(PANID_INIT)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_10_PendingPartition(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 15,
|
||||
'panid': 0xface,
|
||||
'channel': 19
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 15,
|
||||
'panid': 0xface,
|
||||
'channel': 19
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'partition_id': 0xffffffff,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': 15,
|
||||
'panid': 0xface,
|
||||
'channel': 19
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1, SED1]
|
||||
},
|
||||
ED1: {
|
||||
'channel': 19,
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
SED1: {
|
||||
'channel': 19,
|
||||
'is_mtd': True,
|
||||
'mode': 's',
|
||||
'panid': 0xface,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
KEY1 = '000102030405060708090a0b0c0d0e0f'
|
||||
KEY2 = '0f0e0d0c0b0a09080706050403020100'
|
||||
@@ -47,65 +47,59 @@ SED1 = 5
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_9_2_11_MasterKey(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(10,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT,
|
||||
master_key=KEY1)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(10,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT,
|
||||
master_key=KEY1)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_active_dataset(10,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT,
|
||||
master_key=KEY1)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_channel(CHANNEL_INIT)
|
||||
self.nodes[ED1].set_panid(PANID_INIT)
|
||||
self.nodes[ED1].set_masterkey(KEY1)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_channel(CHANNEL_INIT)
|
||||
self.nodes[SED1].set_panid(PANID_INIT)
|
||||
self.nodes[SED1].set_masterkey(KEY1)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_11_MasterKey(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT,
|
||||
'master_key': '000102030405060708090a0b0c0d0e0f'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT,
|
||||
'master_key': '000102030405060708090a0b0c0d0e0f'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT,
|
||||
'master_key': '000102030405060708090a0b0c0d0e0f'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1, SED1]
|
||||
},
|
||||
ED1: {
|
||||
'channel': CHANNEL_INIT,
|
||||
'is_mtd': True,
|
||||
'masterkey': '000102030405060708090a0b0c0d0e0f',
|
||||
'mode': 'rsn',
|
||||
'panid': PANID_INIT,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
SED1: {
|
||||
'channel': CHANNEL_INIT,
|
||||
'is_mtd': True,
|
||||
'masterkey': '000102030405060708090a0b0c0d0e0f',
|
||||
'mode': 's',
|
||||
'panid': PANID_INIT,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER1 = 1
|
||||
ROUTER1 = 2
|
||||
@@ -47,60 +46,55 @@ DATASET2_CHANNEL = 12
|
||||
DATASET2_PANID = 0xafce
|
||||
|
||||
|
||||
class Cert_9_2_12_Announce(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 6):
|
||||
self.nodes[i] = node.Node(i, (i == MED), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER1].set_active_dataset(DATASET1_TIMESTAMP,
|
||||
channel=DATASET1_CHANNEL,
|
||||
panid=DATASET1_PANID)
|
||||
self.nodes[LEADER1].set_mode('rsdn')
|
||||
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER1].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_active_dataset(DATASET1_TIMESTAMP,
|
||||
channel=DATASET1_CHANNEL,
|
||||
panid=DATASET1_PANID)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER2].set_active_dataset(DATASET2_TIMESTAMP,
|
||||
channel=DATASET2_CHANNEL,
|
||||
panid=DATASET2_PANID)
|
||||
self.nodes[LEADER2].set_mode('rsdn')
|
||||
self.nodes[LEADER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER2].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[LEADER2].enable_whitelist()
|
||||
self.nodes[LEADER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_active_dataset(DATASET2_TIMESTAMP,
|
||||
channel=DATASET2_CHANNEL,
|
||||
panid=DATASET2_PANID)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[LEADER2].get_addr64())
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[MED].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[MED].set_channel(DATASET2_CHANNEL)
|
||||
self.nodes[MED].set_panid(DATASET2_PANID)
|
||||
self.nodes[MED].set_mode('rsn')
|
||||
self.nodes[MED].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[MED].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_12_Announce(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': DATASET1_TIMESTAMP,
|
||||
'panid': DATASET1_PANID,
|
||||
'channel': DATASET1_CHANNEL
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': DATASET1_TIMESTAMP,
|
||||
'panid': DATASET1_PANID,
|
||||
'channel': DATASET1_CHANNEL
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER1, LEADER2]
|
||||
},
|
||||
LEADER2: {
|
||||
'active_dataset': {
|
||||
'timestamp': DATASET2_TIMESTAMP,
|
||||
'panid': DATASET2_PANID,
|
||||
'channel': DATASET2_CHANNEL
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'active_dataset': {
|
||||
'timestamp': DATASET2_TIMESTAMP,
|
||||
'panid': DATASET2_PANID,
|
||||
'channel': DATASET2_CHANNEL
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER2, MED]
|
||||
},
|
||||
MED: {
|
||||
'channel': DATASET2_CHANNEL,
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': DATASET2_PANID,
|
||||
'whitelist': [ROUTER2]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER1].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
LEADER = 2
|
||||
@@ -38,44 +37,32 @@ ROUTER1 = 3
|
||||
ED1 = 4
|
||||
|
||||
|
||||
class Cert_9_2_13_EnergyScan(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, (i == ED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_panid(0xface)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_panid(0xface)
|
||||
self.nodes[ED1].set_mode('rs')
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_13_EnergyScan(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ED1]
|
||||
},
|
||||
ED1: {
|
||||
'is_mtd': True,
|
||||
'mode': 'rs',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
COMMISSIONER = 1
|
||||
LEADER1 = 2
|
||||
@@ -38,44 +37,31 @@ ROUTER1 = 3
|
||||
LEADER2 = 4
|
||||
|
||||
|
||||
class Cert_9_2_14_PanIdQuery(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_panid(0xface)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER1].set_panid(0xface)
|
||||
self.nodes[LEADER1].set_mode('rsdn')
|
||||
self.nodes[LEADER1].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER1].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER1].set_panid(0xface)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER2].set_panid(0xdead)
|
||||
self.nodes[LEADER2].set_mode('rsdn')
|
||||
self.nodes[LEADER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER2].enable_whitelist()
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_14_PanIdQuery(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER1]
|
||||
},
|
||||
LEADER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER1, LEADER2]
|
||||
},
|
||||
LEADER2: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xdead,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER1].start()
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
CHANNEL_INIT = 19
|
||||
PANID_INIT = 0xface
|
||||
@@ -43,59 +42,56 @@ ROUTER1 = 3
|
||||
ROUTER2 = 4
|
||||
|
||||
|
||||
class Cert_9_2_15_PendingPartition(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(15,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(15,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].set_partition_id(0xffffffff)
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_active_dataset(15,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_active_dataset(15,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self._setUpRouter2()
|
||||
class Cert_9_2_15_PendingPartition(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 15,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 15,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'partition_id': 0xffffffff,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': 15,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'active_dataset': {
|
||||
'timestamp': 15,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpRouter2(self):
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
CHANNEL_INIT = 19
|
||||
PANID_INIT = 0xface
|
||||
@@ -44,59 +43,56 @@ ROUTER1 = 3
|
||||
ROUTER2 = 4
|
||||
|
||||
|
||||
class Cert_9_2_16_ActivePendingPartition(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 5):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].set_partition_id(0xffffffff)
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self._setUpRouter2()
|
||||
class Cert_9_2_16_ActivePendingPartition(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'partition_id': 0xffffffff,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2]
|
||||
},
|
||||
ROUTER2: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def _setUpRouter2(self):
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
CHANNEL1 = 11
|
||||
CHANNEL2 = 18
|
||||
@@ -42,44 +42,38 @@ LEADER2 = 2
|
||||
ED1 = 3
|
||||
|
||||
|
||||
class Cert_9_2_17_Orphan(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 4):
|
||||
self.nodes[i] = node.Node(i, (i == ED1), simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER1].set_active_dataset(10,
|
||||
channel=CHANNEL1,
|
||||
panid=PANID_INIT,
|
||||
channel_mask=CHANNEL_MASK)
|
||||
self.nodes[LEADER1].set_mode('rsdn')
|
||||
self.nodes[LEADER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[LEADER1].enable_whitelist()
|
||||
self.nodes[LEADER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER2].set_active_dataset(20,
|
||||
channel=CHANNEL2,
|
||||
panid=PANID_INIT,
|
||||
channel_mask=CHANNEL_MASK)
|
||||
self.nodes[LEADER2].set_mode('rsdn')
|
||||
self.nodes[LEADER2].enable_whitelist()
|
||||
self.nodes[LEADER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_channel(CHANNEL1)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].set_panid(PANID_INIT)
|
||||
self.nodes[ED1].add_whitelist(self.nodes[LEADER1].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
self.nodes[ED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class Cert_9_2_17_Orphan(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': 10,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL1,
|
||||
'channel_mask': CHANNEL_MASK
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ED1]
|
||||
},
|
||||
LEADER2: {
|
||||
'active_dataset': {
|
||||
'timestamp': 20,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL2,
|
||||
'channel_mask': CHANNEL_MASK
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1
|
||||
},
|
||||
ED1: {
|
||||
'channel': CHANNEL1,
|
||||
'is_mtd': True,
|
||||
'mode': 'rsn',
|
||||
'panid': PANID_INIT,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [LEADER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER1].start()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
KEY1 = '00112233445566778899aabbccddeeff'
|
||||
KEY2 = 'ffeeddccbbaa99887766554433221100'
|
||||
@@ -48,75 +48,71 @@ SED1 = 6
|
||||
MTDS = [ED1, SED1]
|
||||
|
||||
|
||||
class Cert_9_2_18_RollBackActiveTimestamp(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 7):
|
||||
self.nodes[i] = node.Node(i, (i in MTDS), simulator=self.simulator)
|
||||
|
||||
self.nodes[COMMISSIONER].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT,
|
||||
master_key=KEY1)
|
||||
self.nodes[COMMISSIONER].set_mode('rsdn')
|
||||
self.nodes[COMMISSIONER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[COMMISSIONER].enable_whitelist()
|
||||
self.nodes[COMMISSIONER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[LEADER].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT,
|
||||
master_key=KEY1)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].set_partition_id(0xffffffff)
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[COMMISSIONER].get_addr64())
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER1].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT,
|
||||
master_key=KEY1)
|
||||
self.nodes[ROUTER1].set_mode('rsdn')
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ROUTER2].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[ED1].get_addr64())
|
||||
self.nodes[ROUTER1].add_whitelist(self.nodes[SED1].get_addr64())
|
||||
self.nodes[ROUTER1].enable_whitelist()
|
||||
self.nodes[ROUTER1].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ROUTER2].set_active_dataset(1,
|
||||
channel=CHANNEL_INIT,
|
||||
panid=PANID_INIT,
|
||||
master_key=KEY1)
|
||||
self.nodes[ROUTER2].set_mode('rsdn')
|
||||
self.nodes[ROUTER2].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ROUTER2].enable_whitelist()
|
||||
self.nodes[ROUTER2].set_router_selection_jitter(1)
|
||||
|
||||
self.nodes[ED1].set_channel(CHANNEL_INIT)
|
||||
self.nodes[ED1].set_masterkey(KEY1)
|
||||
self.nodes[ED1].set_mode('rsn')
|
||||
self.nodes[ED1].set_panid(PANID_INIT)
|
||||
self.nodes[ED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[ED1].enable_whitelist()
|
||||
|
||||
self.nodes[SED1].set_channel(CHANNEL_INIT)
|
||||
self.nodes[SED1].set_masterkey(KEY1)
|
||||
self.nodes[SED1].set_mode('s')
|
||||
self.nodes[SED1].set_panid(PANID_INIT)
|
||||
self.nodes[SED1].add_whitelist(self.nodes[ROUTER1].get_addr64())
|
||||
self.nodes[SED1].enable_whitelist()
|
||||
self.nodes[SED1].set_timeout(config.DEFAULT_CHILD_TIMEOUT)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
class Cert_9_2_18_RollBackActiveTimestamp(thread_cert.TestCase):
|
||||
topology = {
|
||||
COMMISSIONER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT,
|
||||
'master_key': '00112233445566778899aabbccddeeff'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
LEADER: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT,
|
||||
'master_key': '00112233445566778899aabbccddeeff'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'partition_id': 0xffffffff,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [COMMISSIONER, ROUTER1]
|
||||
},
|
||||
ROUTER1: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT,
|
||||
'master_key': '00112233445566778899aabbccddeeff'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER, ROUTER2, ED1, SED1]
|
||||
},
|
||||
ROUTER2: {
|
||||
'active_dataset': {
|
||||
'timestamp': 1,
|
||||
'panid': PANID_INIT,
|
||||
'channel': CHANNEL_INIT,
|
||||
'master_key': '00112233445566778899aabbccddeeff'
|
||||
},
|
||||
'mode': 'rsdn',
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
ED1: {
|
||||
'channel': CHANNEL_INIT,
|
||||
'is_mtd': True,
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 'rsn',
|
||||
'panid': PANID_INIT,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
SED1: {
|
||||
'channel': CHANNEL_INIT,
|
||||
'is_mtd': True,
|
||||
'masterkey': '00112233445566778899aabbccddeeff',
|
||||
'mode': 's',
|
||||
'panid': PANID_INIT,
|
||||
'timeout': config.DEFAULT_CHILD_TIMEOUT,
|
||||
'whitelist': [ROUTER1]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -128,6 +128,7 @@ EXTRA_DIST = \
|
||||
command.py \
|
||||
common.py \
|
||||
config.py \
|
||||
debug.py \
|
||||
dtls.py \
|
||||
ipv6.py \
|
||||
lowpan.py \
|
||||
@@ -160,6 +161,7 @@ EXTRA_DIST = \
|
||||
test_network_data.py \
|
||||
test_network_layer.py \
|
||||
test_reed_address_solicit_rejected.py \
|
||||
thread_cert.py \
|
||||
tlvs_parsing.py \
|
||||
$(NULL)
|
||||
|
||||
|
||||
@@ -29,21 +29,15 @@
|
||||
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
|
||||
|
||||
class Cert_Cli(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.nodes = {}
|
||||
self.nodes[LEADER] = node.Node(LEADER)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
class Cert_Cli(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
commands = self.nodes[LEADER].get_commands()
|
||||
|
||||
@@ -30,37 +30,29 @@
|
||||
import time
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class Test_MacScan(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
self.nodes[LEADER].set_channel(12)
|
||||
self.nodes[LEADER].set_network_name('OpenThread')
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_channel(12)
|
||||
self.nodes[ROUTER].set_network_name('OpenThread')
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
class Test_MacScan(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'channel': 12,
|
||||
'mode': 'rsdn',
|
||||
'network_name': 'OpenThread',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'channel': 12,
|
||||
'mode': 'rsdn',
|
||||
'network_name': 'OpenThread',
|
||||
'panid': 0xface,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -31,46 +31,29 @@ import unittest
|
||||
|
||||
import pexpect
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class TestCoapObserve(unittest.TestCase):
|
||||
class TestCoapObserve(thread_cert.TestCase):
|
||||
"""
|
||||
Test suite for CoAP Observations (RFC7641).
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Start up two nodes and get them on the virtual network.
|
||||
"""
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Tear down the nodes created.
|
||||
"""
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def _do_notification_test(self, con):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -30,37 +30,26 @@
|
||||
import unittest
|
||||
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class TestCoaps(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xface)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xface)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class TestCoaps(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xface,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
@@ -27,24 +27,18 @@
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
import unittest
|
||||
import time
|
||||
import unittest
|
||||
|
||||
import node
|
||||
import config
|
||||
import thread_cert
|
||||
|
||||
|
||||
class TestDiag(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
self.node = node.Node(1, False, simulator=self.simulator)
|
||||
|
||||
def tearDown(self):
|
||||
self.node.destroy()
|
||||
self.simulator.stop()
|
||||
class TestDiag(thread_cert.TestCase):
|
||||
topology = {1: None}
|
||||
|
||||
def test(self):
|
||||
self.node = self.nodes[1]
|
||||
|
||||
cases = [
|
||||
('diag\n', 'diagnostics mode is disabled\r\n'),
|
||||
('diag send 10 100\n', 'Error 13: InvalidState\r\n'),
|
||||
|
||||
@@ -31,37 +31,26 @@ import unittest
|
||||
|
||||
import common
|
||||
import config
|
||||
import node
|
||||
import thread_cert
|
||||
|
||||
LEADER = 1
|
||||
ROUTER = 2
|
||||
|
||||
|
||||
class TestIPv6Fragmentation(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.simulator = config.create_default_simulator()
|
||||
|
||||
self.nodes = {}
|
||||
for i in range(1, 3):
|
||||
self.nodes[i] = node.Node(i, simulator=self.simulator)
|
||||
|
||||
self.nodes[LEADER].set_panid(0xcafe)
|
||||
self.nodes[LEADER].set_mode('rsdn')
|
||||
self.nodes[LEADER].add_whitelist(self.nodes[ROUTER].get_addr64())
|
||||
self.nodes[LEADER].enable_whitelist()
|
||||
|
||||
self.nodes[ROUTER].set_panid(0xcafe)
|
||||
self.nodes[ROUTER].set_mode('rsdn')
|
||||
self.nodes[ROUTER].add_whitelist(self.nodes[LEADER].get_addr64())
|
||||
self.nodes[ROUTER].enable_whitelist()
|
||||
self.nodes[ROUTER].set_router_selection_jitter(1)
|
||||
|
||||
def tearDown(self):
|
||||
for n in list(self.nodes.values()):
|
||||
n.stop()
|
||||
n.destroy()
|
||||
self.simulator.stop()
|
||||
class TestIPv6Fragmentation(thread_cert.TestCase):
|
||||
topology = {
|
||||
LEADER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xcafe,
|
||||
'whitelist': [ROUTER]
|
||||
},
|
||||
ROUTER: {
|
||||
'mode': 'rsdn',
|
||||
'panid': 0xcafe,
|
||||
'router_selection_jitter': 1,
|
||||
'whitelist': [LEADER]
|
||||
},
|
||||
}
|
||||
|
||||
def test(self):
|
||||
self.nodes[LEADER].start()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user