class RouteRefresh (Message): ID = Message.ID.ROUTE_REFRESH TYPE = chr(Message.ID.ROUTE_REFRESH) request = 0 start = 1 end = 2 def __init__ (self,afi,safi,reserved=0): self.afi = AFI(afi) self.safi = SAFI(safi) self.reserved = Reserved(reserved) def messages (self,negotitated): return [self._message('%s%s%s' % (self.afi.pack(),chr(self.reserved),self.safi.pack())),] def __str__ (self): return "REFRESH" def extensive (self): return 'route refresh %s/%d/%s' % (self.afi,self.reserved,self.safi) def families (self): return self._families[:] @classmethod def unpack_message (cls,data,negotitated): try: afi,reserved,safi = unpack('!HBB',data) except error: raise Notify(7,1,'invalid route-refresh message') if reserved not in (0,1,2): raise Notify(7,2,'invalid route-refresh message subtype') return RouteRefresh(afi,safi,reserved)
class RouteRefresh(Message): TYPE = chr(Message.Type.ROUTE_REFRESH) request = 0 start = 1 end = 2 def __init__(self, afi, safi, reserved=0): self.afi = AFI(afi) self.safi = SAFI(safi) self.reserved = Reserved(reserved) def messages(self, negotitated): return [ self._message( '%s%s%s' % (self.afi.pack(), chr(self.reserved), self.safi.pack())), ] def __str__(self): return "REFRESH" def extensive(self): return 'route refresh %s/%d/%s' % (self.afi, self.reserved, self.safi) def families(self): return self._families[:]
class OperationalFamily (Operational): def __init__ (self,what,afi,safi,data=''): self.afi = AFI(afi) self.safi = SAFI(afi) Operational.__init__( self,what, '%s%s%s' % (self.afi.pack(),self.safi.pack(),data) ) def family (self): return (self.afi,self.safi)
class RouteRefresh(Message): ID = Message.CODE.ROUTE_REFRESH TYPE = character(Message.CODE.ROUTE_REFRESH) request = 0 start = 1 end = 2 def __init__(self, afi, safi, reserved=0): self.afi = AFI(afi) self.safi = SAFI(safi) self.reserved = Reserved(reserved) def message(self, negotiated=None): return self._message( concat_bytes(self.afi.pack(), character(self.reserved), self.safi.pack())) def __str__(self): return "REFRESH" def extensive(self): return 'route refresh %s/%d/%s' % (self.afi, self.reserved, self.safi) # XXX: Check how we get this data into the RR def families(self): return self._families[:] @classmethod def unpack_message(cls, data, _): try: afi, reserved, safi = unpack('!HBB', data) except error: raise Notify(7, 1, 'invalid route-refresh message') if reserved not in (0, 1, 2): raise Notify(7, 2, 'invalid route-refresh message subtype') return RouteRefresh(afi, safi, reserved) def __eq__(self, other): if not isinstance(other, RouteRefresh): return False if self.afi != other.afi: return False if self.safi != other.safi: return False if self.reserved != other.reserved: return False return True def __ne__(self, other): return not self.__eq__(other)
class RouteRefresh(Message): ID = Message.CODE.ROUTE_REFRESH TYPE = chr(Message.CODE.ROUTE_REFRESH) request = 0 start = 1 end = 2 def __init__(self, afi, safi, reserved=0): self.afi = AFI(afi) self.safi = SAFI(safi) self.reserved = Reserved(reserved) def messages(self, negotitated): # pylint: disable=W0613 return [ self._message( '%s%s%s' % (self.afi.pack(), chr(self.reserved), self.safi.pack())), ] def __str__(self): return "REFRESH" def extensive(self): return 'route refresh %s/%d/%s' % (self.afi, self.reserved, self.safi) def families(self): return self._families[:] @classmethod def unpack_message(cls, data, _): try: afi, reserved, safi = unpack('!HBB', data) except error: raise Notify(7, 1, 'invalid route-refresh message') if reserved not in (0, 1, 2): raise Notify(7, 2, 'invalid route-refresh message subtype') return RouteRefresh(afi, safi, reserved) def __eq__(self, other): if not isinstance(other, RouteRefresh): return False if self.afi != other.afi: return False if self.safi != other.safi: return False if self.reserved != other.reserved: return False return True
class RouteRefresh (Message): ID = Message.CODE.ROUTE_REFRESH TYPE = chr(Message.CODE.ROUTE_REFRESH) request = 0 start = 1 end = 2 def __init__ (self, afi, safi, reserved=0): self.afi = AFI(afi) self.safi = SAFI(safi) self.reserved = Reserved(reserved) def message (self,negotiated=None): return self._message('%s%s%s' % (self.afi.pack(),chr(self.reserved),self.safi.pack())) def __str__ (self): return "REFRESH" def extensive (self): return 'route refresh %s/%d/%s' % (self.afi,self.reserved,self.safi) def families (self): return self._families[:] @classmethod def unpack_message (cls, data, _): try: afi,reserved,safi = unpack('!HBB',data) except error: raise Notify(7,1,'invalid route-refresh message') if reserved not in (0,1,2): raise Notify(7,2,'invalid route-refresh message subtype') return RouteRefresh(afi,safi,reserved) def __eq__ (self, other): if not isinstance(other, RouteRefresh): return False if self.afi != other.afi: return False if self.safi != other.safi: return False if self.reserved != other.reserved: return False return True def __ne__ (self, other): return not self.__eq__(other)
class OperationalFamily(Operational): has_family = True def __init__(self, what, afi, safi, data=b''): Operational.__init__(self, what) self.afi = AFI(afi) self.safi = SAFI(safi) self.data = data def family(self): return (self.afi, self.safi) def _message(self, data): return Operational._message( self, concat_bytes(self.afi.pack(), self.safi.pack(), data)) def message(self, negotiated): return self._message(self.data)
class OperationalFamily (Operational): has_family = True def __init__ (self,what,afi,safi,data=''): Operational.__init__(self,what) self.afi = AFI(afi) self.safi = SAFI(afi) self.data = data def family (self): return (self.afi,self.safi) def _message (self,data): return Operational._message(self,"%s%s%s" % ( self.afi.pack(), self.safi.pack(), data )) def message (self,negotiated): return self._message(self.data)
class RouteRefresh(Message): ID = Message.ID.ROUTE_REFRESH TYPE = chr(Message.ID.ROUTE_REFRESH) request = 0 start = 1 end = 2 def __init__(self, afi, safi, reserved=0): self.afi = AFI(afi) self.safi = SAFI(safi) self.reserved = Reserved(reserved) def messages(self, negotitated): return [ self._message( '%s%s%s' % (self.afi.pack(), chr(self.reserved), self.safi.pack())), ] def __str__(self): return "REFRESH" def extensive(self): return 'route refresh %s/%d/%s' % (self.afi, self.reserved, self.safi) def families(self): return self._families[:] @classmethod def unpack_message(cls, data, negotitated): try: afi, reserved, safi = unpack('!HBB', data) except error: raise Notify(7, 1, 'invalid route-refresh message') if reserved not in (0, 1, 2): raise Notify(7, 2, 'invalid route-refresh message subtype') return RouteRefresh(afi, safi, reserved)
class RouteRefresh (Message): TYPE = chr(Message.Type.ROUTE_REFRESH) request = 0 start = 1 end = 2 def __init__ (self,afi,safi,reserved=0): self.afi = AFI(afi) self.safi = SAFI(safi) self.reserved = Reserved(reserved) def messages (self,negotitated): return [self._message('%s%s%s' % (self.afi.pack(),chr(self.reserved),self.safi.pack())),] def __str__ (self): return "REFRESH" def extensive (self): return 'route refresh %s/%d/%s' % (self.afi,self.reserved,self.safi) def families (self): return self._families[:]