Beispiel #1
0
 def unpack_message(cls, data, _=None):
     version = data[0]
     if version != 4:
         # Only version 4 is supported nowdays..
         raise Notify(2, 1, bytes(data[0], 'ascii'))
     asn = unpack('!H', data[1:3])[0]
     hold_time = unpack('!H', data[3:5])[0]
     numeric = unpack('!L', data[5:9])[0]
     router_id = "%d.%d.%d.%d" % (numeric >> 24, (numeric >> 16) & 0xFF, (numeric >> 8) & 0xFF, numeric & 0xFF)
     return cls(Version(version), ASN(asn), HoldTime(hold_time), RouterID(router_id), Capabilities.unpack(data[9:]))
Beispiel #2
0
 def __init__(self, version, asn, router_id, capabilities, hold_time):
     self.version = Version(version)
     self.asn = ASN(asn)
     self.hold_time = HoldTime(hold_time)
     self.router_id = RouterID(router_id)
     self.capabilities = capabilities