Esempio n. 1
0
class IPrefix6(IPrefix, IComponent, IPv6):
    # Must be defined in subclasses
    CODE = -1
    NAME = ''

    # not used, just present for simplying the nlri generation
    operations = 0x0

    def __init__(self, raw, netmask, offset):
        self.cidr = CIDR(raw, netmask)
        self.offset = offset

    def pack(self):
        # ID is defined in subclasses
        return "%s%s%s%s" % (chr(self.ID), chr(self.cidr.mask), chr(
            self.offset), self.cidr.pack_ip())  # pylint: disable=E1101

    def __str__(self):
        return "%s/%s" % (self.cidr, self.offset)

    @classmethod
    def make(cls, bgp):
        offset = ord(bgp[1])
        prefix, mask = CIDR.decode(AFI.ipv6, bgp[0] + bgp[2:])
        return cls(prefix, mask, offset), bgp[CIDR.size(mask) + 2:]
Esempio n. 2
0
class IPrefix6 (IPrefix,IComponent,IPv6):
	# Must be defined in subclasses
	CODE = -1
	NAME = ''

	# not used, just present for simplying the nlri generation
	operations = 0x0

	def __init__ (self, raw, netmask, offset):
		self.cidr = CIDR(raw,netmask)
		self.offset = offset

	def pack (self):
		# ID is defined in subclasses
		return "%s%s%s%s" % (chr(self.ID),chr(self.cidr.mask),chr(self.offset),self.cidr.pack_ip())  # pylint: disable=E1101

	def __str__ (self):
		return "%s/%s" % (self.cidr,self.offset)

	@classmethod
	def make (cls, bgp):
		offset = ord(bgp[1])
		prefix,mask = CIDR.decode(AFI.ipv6,bgp[0]+bgp[2:])
		return cls(prefix,mask,offset), bgp[CIDR.size(mask)+2:]