示例#1
0
    def __init__(self, bgpManager, name, peerAddress):
        # call super
        Thread.__init__(self)
        self.setDaemon(True)
        self.name = "BGP-%s" % peerAddress
        Worker.__init__(self, bgpManager, self.name)

        self.bgpManager = bgpManager
        self.peerAddress = peerAddress

        # its up to subclasses to call setHoldTime again to set holdtime based
        # on value advertized by peer
        self._setHoldTime(DEFAULT_HOLDTIME)

        # used to stop receiveThread
        self._stopLoops = Event()
        # used to track that we've been told to stop:
        self.shouldStop = False

        self.sendKATimer = None
        self.KAReceptionTimer = None

        LookingGlassLocalLogger.__init__(
            self, self.peerAddress.replace(".", "-"))

        self.fsm = FSM(self)

        self.log.debug("Init %s", self.name)
        self.enqueue(Init)
示例#2
0
    def __init__(self, bgpManager, workerName, compareRoutes=compareNoECMP):
        Worker.__init__(self, bgpManager, workerName)
        LookingGlassLocalLogger.__init__(self)

        # dict: entry -> list of routes:
        self.trackedEntry2routes = dict()
        # dict: entry -> set of bestRoutes:
        self.trackedEntry2bestRoutes = dict()

        self._compareRoutes = compareRoutes
示例#3
0
    def __init__(self, bgpManager, workerName, compareRoutes=compareNoECMP):
        Worker.__init__(self, bgpManager, workerName)
        LookingGlassLocalLogger.__init__(self)

        # dict: entry -> list of routes:
        self.trackedEntry2routes = dict()
        # dict: entry -> set of bestRoutes:
        self.trackedEntry2bestRoutes = dict()

        self._compareRoutes = compareRoutes