示例#1
0
    def indication(self, adapter, npdu):
        if isinstance(npdu, IAmRouterToNetwork):
            if isinstance(self._request, WhoIsRouterToNetwork):
                address, netlist = str(npdu.pduSource), npdu.iartnNetworkList
                self._log.info("{} router to {}".format(address, netlist))
                self._iartn.append(address)
                self._routing_table[address] = netlist
            for each in npdu.iartnNetworkList:
                self._learnedNetworks.add(int(each))

        elif isinstance(npdu, InitializeRoutingTableAck):
            self._log.info("{} routing table".format(npdu.pduSource))
            for rte in npdu.irtaTable:
                self._log.info("    {} {} {}".format(rte.rtDNET, rte.rtPortID,
                                                     rte.rtPortInfo))

        elif isinstance(npdu, NetworkNumberIs):
            self._log.info("{} network number is {}".format(
                npdu.pduSource, npdu.nniNet))
            self._learnedNetworks.add(int(npdu.nniNet))

        elif isinstance(npdu, RejectMessageToNetwork):
            self._log.warning(
                "{} Rejected message to network (reason : {})".format(
                    npdu.pduSource,
                    rejectMessageToNetworkReasons[npdu.rmtnRejectionReason],
                ))
        # forward it along
        NetworkServiceElement.indication(self, adapter, npdu)
示例#2
0
    def indication(self, adapter, npdu):
        if _debug:
            DiscoverNetworkServiceElement._debug("indication %r %r", adapter,
                                                 npdu)

        if isinstance(npdu, IAmRouterToNetwork):
            if interactive:
                print("{} router to {}".format(npdu.pduSource,
                                               npdu.iartnNetworkList))

        elif isinstance(npdu, InitializeRoutingTableAck):
            if interactive:
                print("{} routing table".format(npdu.pduSource))
                for rte in npdu.irtaTable:
                    print("    {} {} {}".format(rte.rtDNET, rte.rtPortID,
                                                rte.rtPortInfo))

        elif isinstance(npdu, NetworkNumberIs):
            if interactive:
                print("{} network number is {}".format(npdu.pduSource,
                                                       npdu.nniNet))

        # forward it along
        NetworkServiceElement.indication(self, adapter, npdu)