def test(self): # 1 self.nodes[DUT_LEADER].start() self.simulator.go(5) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') for i in range(ROUTER1, MED3 + 1): self.nodes[i].start() self.simulator.go(5) for i in [ROUTER1, ROUTER2]: self.assertEqual(self.nodes[i].get_state(), 'router') for i in MTDS: self.assertEqual(self.nodes[i].get_state(), 'child') # 2 leader_messages = self.simulator.get_messages_sent_by(DUT_LEADER) msg = leader_messages.next_mle_message(mle.CommandType.ADVERTISEMENT) command.check_mle_advertisement(msg) # 3 self.nodes[ROUTER2].add_prefix('2001:2:0:1::/64', 'paros') self.nodes[ROUTER2].register_netdata() # Set lowpan context of sniffer self.simulator.set_lowpan_context(1, '2001:2:0:1::/64') self.nodes[MED1].add_ipaddr('2001:2:0:1::1234') self.nodes[SED1].add_ipaddr('2001:2:0:1::1234') self.simulator.go(5) # 4 # Flush the message queue to avoid possible impact on follow-up # verification. self.simulator.get_messages_sent_by(DUT_LEADER) self.nodes[MED3].ping('2001:2:0:1::1234') # Verify DUT_LEADER sent an Address Query Request to the Realm local # address. dut_messages = self.simulator.get_messages_sent_by(DUT_LEADER) msg = dut_messages.next_coap_message('0.02', '/a/aq') command.check_address_query(msg, self.nodes[DUT_LEADER], config.REALM_LOCAL_ALL_ROUTERS_ADDRESS) # 5 & 6 # Verify DUT_LEADER sent an Address Error Notification to the Realm # local address. self.simulator.go(5) dut_messages = self.simulator.get_messages_sent_by(DUT_LEADER) msg = dut_messages.next_coap_message('0.02', '/a/ae') command.check_address_error_notification( msg, self.nodes[DUT_LEADER], config.REALM_LOCAL_ALL_ROUTERS_ADDRESS)
def test(self): # 1 self.nodes[DUT_LEADER].start() self.simulator.go(5) self.assertEqual(self.nodes[DUT_LEADER].get_state(), 'leader') for i in range(ROUTER1, MED3 + 1): self.nodes[i].start() self.simulator.go(5) for i in [ROUTER1, ROUTER2]: self.assertEqual(self.nodes[i].get_state(), 'router') for i in MTDS: self.assertEqual(self.nodes[i].get_state(), 'child') # 2 leader_messages = self.simulator.get_messages_sent_by(DUT_LEADER) msg = leader_messages.next_mle_message(mle.CommandType.ADVERTISEMENT) command.check_mle_advertisement(msg) # 3 self.nodes[ROUTER2].add_prefix('2001:2:0:1::/64', 'paros') self.nodes[ROUTER2].register_netdata() # Set lowpan context of sniffer self.simulator.set_lowpan_context(1, '2001:2:0:1::/64') self.nodes[MED1].add_ipaddr('2001:2:0:1::1234') self.nodes[SED1].add_ipaddr('2001:2:0:1::1234') self.simulator.go(5) # 4 # Flush the message queue to avoid possible impact on follow-up verification. self.simulator.get_messages_sent_by(DUT_LEADER) self.nodes[MED3].ping('2001:2:0:1::1234') # Verify DUT_LEADER sent an Address Query Request to the Realm local address. dut_messages = self.simulator.get_messages_sent_by(DUT_LEADER) msg = dut_messages.next_coap_message('0.02', '/a/aq') command.check_address_query(msg, self.nodes[DUT_LEADER], config.REALM_LOCAL_ALL_ROUTERS_ADDRESS) # 5 & 6 # Verify DUT_LEADER sent an Address Error Notification to the Realm local address. self.simulator.go(5) dut_messages = self.simulator.get_messages_sent_by(DUT_LEADER) msg = dut_messages.next_coap_message('0.02', '/a/ae') command.check_address_error_notification(msg, self.nodes[DUT_LEADER], config.REALM_LOCAL_ALL_ROUTERS_ADDRESS)