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

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

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

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

    def __str__(self):
        return str(self.cidr)

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

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

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

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

	def __str__ (self):
		return str(self.cidr)

	@classmethod
	def make (cls, bgp):
		prefix,mask = CIDR.decode(AFI.ipv4,bgp)
		return cls(prefix,mask), bgp[CIDR.size(mask)+1:]