def pack (self,addpath): if addpath: path_info = self.path_info.pack() else: path_info = '' if self.has_label(): length = len(self.labels)*8 + len(self.rd)*8 + self.mask return path_info + chr(length) + self.labels.pack() + self.rd.pack() + self.packed[:mask_to_bytes[self.mask]] else: return path_info + Prefix.pack(self)
def pack(self, addpath): if addpath: path_info = self.path_info.pack() else: path_info = '' if self.has_label(): length = len(self.labels) * 8 + len(self.rd) * 8 + self.mask return path_info + chr(length) + self.labels.pack() + self.rd.pack( ) + self.packed[:mask_to_bytes[self.mask]] else: return path_info + Prefix.pack(self)
class IPrefix4 (IPrefix,IComponent,IPv4): # not used, just present for simplying the nlri generation operations = 0x0 # NAME def __init__ (self,raw,netmask): self.nlri = Prefix(self.afi,SAFI.flow_ip,raw,netmask) def pack (self): raw = self.nlri.pack() return "%s%s" % (chr(self.ID),raw) def __str__ (self): return str(self.nlri)
class IPrefix4(IPrefix, IComponent, IPv4): # not used, just present for simplying the nlri generation operations = 0x0 # NAME def __init__(self, raw, netmask): self.nlri = Prefix(self.afi, SAFI.flow_ip, raw, netmask) def pack(self): raw = self.nlri.pack() return "%s%s" % (chr(self.ID), raw) def __str__(self): return str(self.nlri)