def setUp(self): """Create simulator, nodes and apply configurations. """ initial_topology = {} for i, params in self.topology.items(): if params: params = dict(DEFAULT_PARAMS, **params) else: params = DEFAULT_PARAMS.copy() initial_topology[i] = params self.nodes[i] = Node( i, params['is_mtd'], simulator=self.simulator, version=params['version'], ) self.nodes[i].set_panid(params['panid']) self.nodes[i].set_mode(params['mode']) self.nodes[i].set_addr64(format(EXTENDED_ADDRESS_BASE + i, '016x')) # we have to add whitelist after nodes are all created for i, params in initial_topology.items(): whitelist = params['whitelist'] if not whitelist: continue for j in whitelist: self.nodes[i].add_whitelist(self.nodes[j].get_addr64()) self.nodes[i].enable_whitelist() self._inspector = debug.Inspector(self)
def _setUp(self): """Create simulator, nodes and apply configurations. """ self._clean_up_tmp() self.simulator = config.create_default_simulator( use_message_factory=self.USE_MESSAGE_FACTORY) self.nodes = {} os.environ['LD_LIBRARY_PATH'] = '/tmp/thread-wireshark' if self._has_backbone_traffic(): self._prepare_backbone_network() self._start_backbone_sniffer() self._initial_topology = initial_topology = {} for i, params in self.TOPOLOGY.items(): params = self._parse_params(params) initial_topology[i] = params logging.info("Creating node %d: %r", i, params) if params['is_otbr']: nodeclass = OtbrNode elif params['is_host']: nodeclass = HostNode else: nodeclass = Node node = nodeclass( i, is_mtd=params['is_mtd'], simulator=self.simulator, name=params.get('name'), version=params['version'], is_bbr=params['is_bbr'], ) self.nodes[i] = node if node.is_host: continue self.nodes[i].set_panid(params['panid']) self.nodes[i].set_mode(params['mode']) if 'partition_id' in params: self.nodes[i].set_partition_id(params['partition_id']) if 'channel' in params: self.nodes[i].set_channel(params['channel']) if 'masterkey' in params: self.nodes[i].set_masterkey(params['masterkey']) if 'network_name' in params: self.nodes[i].set_network_name(params['network_name']) if 'router_selection_jitter' in params: self.nodes[i].set_router_selection_jitter( params['router_selection_jitter']) if 'router_upgrade_threshold' in params: self.nodes[i].set_router_upgrade_threshold( params['router_upgrade_threshold']) if 'router_downgrade_threshold' in params: self.nodes[i].set_router_downgrade_threshold( params['router_downgrade_threshold']) if 'timeout' in params: self.nodes[i].set_timeout(params['timeout']) if 'active_dataset' in params: self.nodes[i].set_active_dataset( params['active_dataset']['timestamp'], panid=params['active_dataset'].get('panid'), channel=params['active_dataset'].get('channel'), channel_mask=params['active_dataset'].get('channel_mask'), master_key=params['active_dataset'].get('master_key')) if 'pending_dataset' in params: self.nodes[i].set_pending_dataset( params['pending_dataset']['pendingtimestamp'], params['pending_dataset']['activetimestamp'], panid=params['pending_dataset'].get('panid'), channel=params['pending_dataset'].get('channel')) if 'key_switch_guardtime' in params: self.nodes[i].set_key_switch_guardtime( params['key_switch_guardtime']) if 'key_sequence_counter' in params: self.nodes[i].set_key_sequence_counter( params['key_sequence_counter']) if 'network_id_timeout' in params: self.nodes[i].set_network_id_timeout( params['network_id_timeout']) if 'context_reuse_delay' in params: self.nodes[i].set_context_reuse_delay( params['context_reuse_delay']) if 'max_children' in params: self.nodes[i].set_max_children(params['max_children']) # we have to add allowlist after nodes are all created for i, params in initial_topology.items(): allowlist = params['allowlist'] if not allowlist: continue for j in allowlist: rssi = None if isinstance(j, tuple): j, rssi = j self.nodes[i].add_allowlist(self.nodes[j].get_addr64(), rssi=rssi) self.nodes[i].enable_allowlist() self._inspector = debug.Inspector(self) self._collect_test_info_after_setup()
def setUp(self): """Create simulator, nodes and apply configurations. """ self._clean_up_tmp() self.simulator = config.create_default_simulator() self.nodes = {} initial_topology = {} for i, params in self.topology.items(): if params: params = dict(DEFAULT_PARAMS, **params) else: params = DEFAULT_PARAMS.copy() initial_topology[i] = params self.nodes[i] = Node( i, params['is_mtd'], simulator=self.simulator, version=params['version'], is_bbr=params['is_bbr'], ) self.nodes[i].set_panid(params['panid']) self.nodes[i].set_mode(params['mode']) if 'partition_id' in params: self.nodes[i].set_partition_id(params['partition_id']) if 'channel' in params: self.nodes[i].set_channel(params['channel']) if 'masterkey' in params: self.nodes[i].set_masterkey(params['masterkey']) if 'network_name' in params: self.nodes[i].set_network_name(params['network_name']) if 'router_selection_jitter' in params: self.nodes[i].set_router_selection_jitter( params['router_selection_jitter']) if 'router_upgrade_threshold' in params: self.nodes[i].set_router_upgrade_threshold( params['router_upgrade_threshold']) if 'router_downgrade_threshold' in params: self.nodes[i].set_router_downgrade_threshold( params['router_downgrade_threshold']) if 'timeout' in params: self.nodes[i].set_timeout(params['timeout']) if 'active_dataset' in params: self.nodes[i].set_active_dataset( params['active_dataset']['timestamp'], panid=params['active_dataset'].get('panid'), channel=params['active_dataset'].get('channel'), channel_mask=params['active_dataset'].get('channel_mask'), master_key=params['active_dataset'].get('master_key')) if 'pending_dataset' in params: self.nodes[i].set_pending_dataset( params['pending_dataset']['pendingtimestamp'], params['pending_dataset']['activetimestamp'], panid=params['pending_dataset'].get('panid'), channel=params['pending_dataset'].get('channel')) if 'key_switch_guardtime' in params: self.nodes[i].set_key_switch_guardtime( params['key_switch_guardtime']) if 'key_sequence_counter' in params: self.nodes[i].set_key_sequence_counter( params['key_sequence_counter']) if 'network_id_timeout' in params: self.nodes[i].set_network_id_timeout( params['network_id_timeout']) if 'context_reuse_delay' in params: self.nodes[i].set_context_reuse_delay( params['context_reuse_delay']) if 'max_children' in params: self.nodes[i].set_max_children(params['max_children']) # we have to add whitelist after nodes are all created for i, params in initial_topology.items(): whitelist = params['whitelist'] if not whitelist: continue for j in whitelist: rssi = None if isinstance(j, tuple): j, rssi = j self.nodes[i].add_whitelist(self.nodes[j].get_addr64(), rssi=rssi) self.nodes[i].enable_whitelist() self._inspector = debug.Inspector(self)