Cli: update 'keysequence' to make keyswithguardtime configurable (#815)

* Cli: update 'keysequence' to make keyswithguardtime configurable
This commit is contained in:
rongli
2016-10-16 22:49:31 -07:00
committed by Jonathan Hui
parent 8468ffdb77
commit aaf5a57ea2
25 changed files with 289 additions and 76 deletions
@@ -45,11 +45,13 @@ class Cert_5_8_1_KeySynchronization(unittest.TestCase):
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 node in list(self.nodes.values()):
@@ -70,8 +72,8 @@ class Cert_5_8_1_KeySynchronization(unittest.TestCase):
if 'ff:fe00' not in addr:
self.assertTrue(self.nodes[ED].ping(addr))
key_sequence = self.nodes[ED].get_key_sequence()
self.nodes[ED].set_key_sequence(key_sequence + 10)
key_sequence_counter = self.nodes[ED].get_key_sequence_counter()
self.nodes[ED].set_key_sequence_counter(key_sequence_counter + 10)
addrs = self.nodes[LEADER].get_addrs()
for addr in addrs:
@@ -44,12 +44,14 @@ class Cert_5_8_2_KeyIncrement(unittest.TestCase):
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):
@@ -69,8 +71,8 @@ class Cert_5_8_2_KeyIncrement(unittest.TestCase):
for addr in addrs:
self.assertTrue(self.nodes[LEADER].ping(addr))
key_sequence = self.nodes[LEADER].get_key_sequence()
self.nodes[LEADER].set_key_sequence(key_sequence + 1)
key_sequence_counter = self.nodes[LEADER].get_key_sequence_counter()
self.nodes[LEADER].set_key_sequence_counter(key_sequence_counter + 1)
addrs = self.nodes[ROUTER].get_addrs()
for addr in addrs:
@@ -45,12 +45,14 @@ class Cert_5_8_3_KeyIncrementRollOver(unittest.TestCase):
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_sequence(127)
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):
@@ -71,8 +73,8 @@ class Cert_5_8_3_KeyIncrementRollOver(unittest.TestCase):
for addr in addrs:
self.assertTrue(self.nodes[LEADER].ping(addr))
key_sequence = self.nodes[LEADER].get_key_sequence()
self.nodes[LEADER].set_key_sequence(key_sequence + 1)
key_sequence_counter = self.nodes[LEADER].get_key_sequence_counter()
self.nodes[LEADER].set_key_sequence_counter(key_sequence_counter + 1)
addrs = self.nodes[ROUTER].get_addrs()
for addr in addrs:
@@ -45,11 +45,13 @@ class Cert_6_6_1_KeyIncrement(unittest.TestCase):
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 node in list(self.nodes.values()):
@@ -68,8 +70,8 @@ class Cert_6_6_1_KeyIncrement(unittest.TestCase):
for addr in addrs:
self.assertTrue(self.nodes[LEADER].ping(addr))
key_sequence = self.nodes[LEADER].get_key_sequence()
self.nodes[LEADER].set_key_sequence(key_sequence + 1)
key_sequence_counter = self.nodes[LEADER].get_key_sequence_counter()
self.nodes[LEADER].set_key_sequence_counter(key_sequence_counter + 1)
addrs = self.nodes[ED].get_addrs()
for addr in addrs:
@@ -45,12 +45,14 @@ class Cert_6_6_2_KeyIncrement1(unittest.TestCase):
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_sequence(127)
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 node in list(self.nodes.values()):
@@ -70,8 +72,8 @@ class Cert_6_6_2_KeyIncrement1(unittest.TestCase):
for addr in addrs:
self.assertTrue(self.nodes[LEADER].ping(addr))
key_sequence = self.nodes[LEADER].get_key_sequence()
self.nodes[LEADER].set_key_sequence(key_sequence + 1)
key_sequence_counter = self.nodes[LEADER].get_key_sequence_counter()
self.nodes[LEADER].set_key_sequence_counter(key_sequence_counter + 1)
addrs = self.nodes[ED].get_addrs()
for addr in addrs:
+11 -6
View File
@@ -241,16 +241,21 @@ class Node:
self.send_command(cmd)
self.pexpect.expect('Done')
def get_key_sequence(self):
self.send_command('keysequence')
def get_key_sequence_counter(self):
self.send_command('keysequence counter')
i = self.pexpect.expect('(\d+)\r\n')
if i == 0:
key_sequence = int(self.pexpect.match.groups()[0])
key_sequence_counter = int(self.pexpect.match.groups()[0])
self.pexpect.expect('Done')
return key_sequence
return key_sequence_counter
def set_key_sequence(self, key_sequence):
cmd = 'keysequence %d' % key_sequence
def set_key_sequence_counter(self, key_sequence_counter):
cmd = 'keysequence counter %d' % key_sequence_counter
self.send_command(cmd)
self.pexpect.expect('Done')
def set_key_switch_guardtime(self, key_switch_guardtime):
cmd = 'keysequence guardtime %d' % key_switch_guardtime
self.send_command(cmd)
self.pexpect.expect('Done')