def __init__(self, router_adapter, router_id, area, max_routers, config_override={}): """ Initialize an instance of a router for a domain. """ ## ## Record important information about this router instance ## self.domain = "domain" self.router_adapter = router_adapter self._config = None # Not yet loaded self._log_hello = LogAdapter("ROUTER_HELLO") self._log_ls = LogAdapter("ROUTER_LS") self._log_ma = LogAdapter("ROUTER_MA") self._log_general = LogAdapter("ROUTER") self.io_adapter = [IoAdapter(self.receive, "qdrouter", 'L', '0', TREATMENT_MULTICAST_FLOOD), IoAdapter(self.receive, "qdrouter.ma", 'L', '0', TREATMENT_MULTICAST_ONCE), IoAdapter(self.receive, "qdrouter", 'T', '0', TREATMENT_MULTICAST_FLOOD), IoAdapter(self.receive, "qdrouter.ma", 'T', '0', TREATMENT_MULTICAST_ONCE), IoAdapter(self.receive, "qdhello", 'L', '0', TREATMENT_MULTICAST_FLOOD)] self.max_routers = max_routers self.id = router_id self.instance = long(time.time()) self.area = area self.log(LOG_INFO, "Router Engine Instantiated: id=%s instance=%d max_routers=%d" % (self.id, self.instance, self.max_routers)) ## ## Launch the sub-module engines ## self.node_tracker = NodeTracker(self, self.max_routers) self.hello_protocol = HelloProtocol(self, self.node_tracker) self.link_state_engine = LinkStateEngine(self) self.path_engine = PathEngine(self) self.mobile_address_engine = MobileAddressEngine(self, self.node_tracker)