示例#1
0
	def __init__ (self, rd, etag, ip, packed=None,nexthop=None,action=None,addpath=None):
		EVPN.__init__(self,action,addpath)
		self.nexthop = nexthop
		self.rd = rd
		self.etag = etag
		self.ip = ip
		self._pack(packed)
示例#2
0
	def __init__ (self, rd, esi, ip, packed=None,nexthop=None,action=None,addpath=None):
		EVPN.__init__(self,action,addpath)
		self.nexthop = nexthop
		self.rd = rd
		self.esi = esi
		self.ip = ip
		self._pack(packed)
示例#3
0
 def __init__(self,
              rd,
              esi,
              etag,
              label,
              ip,
              iplen,
              gwip,
              packed=None,
              nexthop=None,
              action=None,
              addpath=None):
     '''
     rd: a RouteDistinguisher
     esi: an EthernetSegmentIdentifier
     etag: an EthernetTag
     mac: a MAC
     label: a LabelStackEntry
     ip: an IP address (dotted quad string notation)
     iplen: prefixlength for ip (defaults to 32)
     gwip: an IP address (dotted quad string notation)
     '''
     EVPN.__init__(self, action, addpath)
     self.nexthop = nexthop
     self.rd = rd
     self.esi = esi
     self.etag = etag
     self.ip = ip
     self.iplen = iplen
     self.gwip = gwip
     self.label = label
     self.label = label if label else Labels.NOLABEL
     self._pack(packed)
示例#4
0
 def __init__(self,
              rd,
              esi,
              etag,
              mac,
              maclen,
              label,
              ip,
              packed=None,
              nexthop=None,
              action=None,
              addpath=None):
     EVPN.__init__(self, packed, nexthop, action, addpath)
     # assert(isinstance(rd, RouteDistinguisher))
     # assert(isinstance(etag, EthernetTag))
     # assert(isinstance(ip, IP))
     # assert(isinstance(mac, MACQUAL))
     self.rd = rd
     self.esi = esi
     self.etag = etag
     self.maclen = maclen
     self.mac = mac
     self.ip = ip
     self.label = label if label else Labels.NOLABEL
     self._pack()
示例#5
0
	def __init__ (self, rd, esi, etag, label, packed=None,nexthop=None,action=None,addpath=None):
		EVPN.__init__(self,action,addpath)
		self.nexthop = nexthop
		self.rd = rd
		self.esi = esi
		self.etag = etag
		self.label = label if label else Labels.NOLABEL
		self._pack(packed)
示例#6
0
文件: mac.py 项目: jbfavre/exabgp
	def __init__(self,rd,esi,etag,mac,label,ip,packed=None):
		self.rd = rd
		self.esi = esi
		self.etag = etag
		self.mac = mac
		self.ip = ip
		self.label = label if label else Labels.NOLABEL
		EVPN.__init__(self,packed if packed else self.pack())
示例#7
0
	def __init__ (self, rd, etag, ip, packed=None,nexthop=None,action=None,addpath=None):
		EVPN.__init__(self,packed,nexthop,action,addpath)
		# assert(isinstance(rd, RouteDistinguisher))
		# assert(isinstance(etag, EthernetTag))
		# assert(isinstance(ip, IP))
		self.rd = rd
		self.etag = etag
		self.ip = ip
		self._pack()
示例#8
0
	def __init__ (self, rd, etag, ip, packed=None,nexthop=None,action=None,addpath=None):
		EVPN.__init__(self,packed,nexthop,action,addpath)
		# assert(isinstance(rd, RouteDistinguisher))
		# assert(isinstance(etag, EthernetTag))
		# assert(isinstance(ip, IP))
		self.rd = rd
		self.etag = etag
		self.ip = ip
		self._pack()
示例#9
0
	def __init__ (self, rd, esi, etag, mac, maclen, label,ip,packed=None):
		EVPN.__init__(self,packed)
		self.rd = rd
		self.esi = esi
		self.etag = etag
		self.maclen = maclen
		self.mac = mac
		self.ip = ip
		self.label = label if label else Labels.NOLABEL
		self.pack()
示例#10
0
文件: mac.py 项目: Akheon23/exabgp
	def __init__ (self, rd, esi, etag, mac, maclen, label,ip,packed=None,nexthop=None,action=None,addpath=None):
		EVPN.__init__(self,packed,nexthop,action,addpath)
		assert(isinstance(rd, RouteDistinguisher))
		assert(isinstance(etag, EthernetTag))
		assert(isinstance(ip, IP))
		assert(isinstance(mac, MACQUAL))
		self.rd = rd
		self.esi = esi
		self.etag = etag
		self.maclen = maclen
		self.mac = mac
		self.ip = ip
		self.label = label if label else Labels.NOLABEL
		self._pack()
示例#11
0
    def test99_EVPNPrefixCreatePackUnpack(self):
        '''Test pack/unpack for E-VPN Prefix routes'''

        nlri = EVPNPrefix(RouteDistinguisher.fromElements("42.42.42.42", 5),
                          ESI(),
                          EthernetTag(111),
                          Labels([42], True),
                          IP.create("1.1.1.0"),24,
                          IP.create("2.2.2.2"),
                          )

        packed = nlri.pack()

        unpacked,leftover = EVPN.unpack_nlri(AFI.l2vpn, SAFI.evpn,
                                             packed, OUT.UNSET, None)

        self.assertEqual(0, len(leftover))

        # TODO: compare packed with a reference encoding verified
        # as conformant with RFC7432

        self.assertTrue(isinstance(unpacked, EVPNPrefix))

        self.assertEqual("42.42.42.42:5", unpacked.rd._str())
        self.assertEqual(ESI.DEFAULT, unpacked.esi.esi)
        self.assertEqual(EthernetTag(111), unpacked.etag)
        self.assertEqual(IP.create("1.1.1.0"), unpacked.ip)
        self.assertEqual(24, unpacked.iplen)
        self.assertEqual(IP.create("2.2.2.2"), unpacked.gwip)
        self.assertEqual(1, len(unpacked.label.labels))
        self.assertEqual(42, unpacked.label.labels[0])
示例#12
0
    def test99_EVPNMACCreatePackUnpack(self):
        '''Test pack/unpack for E-VPN MAC routes'''
        nlri = EVPNMAC(RouteDistinguisher.fromElements("42.42.42.42", 5),
                       ESI(),
                       EthernetTag(111),
                       MAC("01:02:03:04:05:06"), 6*8,
                       Labels([42], True),
                       IP.create("1.1.1.1"))

        packed = nlri.pack()

        unpacked,leftover = EVPN.unpack_nlri(AFI(AFI.l2vpn), SAFI(SAFI.evpn),
                                             packed, OUT.UNSET, None)

        self.assertEqual(0, len(leftover))

        # TODO: compare packed with a reference encoding verified 
        # as conformant with RFC7432

        self.assertTrue(isinstance(unpacked, EVPNMAC))

        self.assertEqual("42.42.42.42:5", unpacked.rd._str())
        self.assertEqual(ESI.DEFAULT, unpacked.esi.esi)
        self.assertEqual(EthernetTag(111), unpacked.etag)
        self.assertEqual(MAC("01:02:03:04:05:06"), unpacked.mac)

        self.assertEqual(IP.create("1.1.1.1"), unpacked.ip)

        self.assertEqual(1, len(unpacked.label.labels))
        self.assertEqual(42, unpacked.label.labels[0])
示例#13
0
    def test99_EVPNMACCreatePackUnpack(self):
        '''Test pack/unpack for E-VPN MAC routes'''
        nlri = EVPNMAC(
            RouteDistinguisher.fromElements("42.42.42.42", 5),
            ESI(),
            EthernetTag(111),
            MAC("01:02:03:04:05:06"),
            6 * 8,
            Labels([42], True),
            IP.create("1.1.1.1"),
        )

        packed = nlri.pack()

        unpacked, leftover = EVPN.unpack_nlri(AFI.l2vpn, SAFI.evpn, packed,
                                              OUT.UNSET, None)

        self.assertEqual(0, len(leftover))

        # TODO: compare packed with a reference encoding verified
        # as conformant with RFC7432

        self.assertTrue(isinstance(unpacked, EVPNMAC))

        self.assertEqual("42.42.42.42:5", unpacked.rd._str())
        self.assertEqual(ESI.DEFAULT, unpacked.esi.esi)
        self.assertEqual(EthernetTag(111), unpacked.etag)
        self.assertEqual(MAC("01:02:03:04:05:06"), unpacked.mac)

        self.assertEqual(IP.create("1.1.1.1"), unpacked.ip)

        self.assertEqual(1, len(unpacked.label.labels))
        self.assertEqual(42, unpacked.label.labels[0])
示例#14
0
文件: mac.py 项目: yokoi-h/exabgp
	def __eq__ (self, other):
		return \
			EVPN.__eq__(self,other) and \
			self.rd == other.rd and \
			self.etag == other.etag and \
			self.mac == other.mac and \
			self.ip == other.ip
示例#15
0
文件: prefix.py 项目: earies/exabgp
	def __init__(self, rd, esi, etag, label, ip, iplen, gwip, packed=None,nexthop=None,action=None,addpath=None):
		'''
		rd: a RouteDistinguisher
		esi: an EthernetSegmentIdentifier
		etag: an EthernetTag
		mac: a MAC
		label: a LabelStackEntry
		ip: an IP address (dotted quad string notation)
		iplen: prefixlength for ip (defaults to 32)
		gwip: an IP address (dotted quad string notation)
		'''
		EVPN.__init__(self,packed,nexthop,action,addpath)
		self.rd = rd
		self.esi = esi
		self.etag = etag
		self.ip = ip
		self.iplen = iplen
		self.gwip = gwip
		self.label = label
		self.label = label if label else Labels.NOLABEL
		self.pack()
示例#16
0
    def __init__(self, rd, esi, etag, label, ip, iplen, gwip, packed=None):
        '''
		rd: a RouteDistinguisher
		esi: an EthernetSegmentIdentifier
		etag: an EthernetTag
		mac: a MAC
		label: a LabelStackEntry
		ip: an IP address (dotted quad string notation)
		iplen: prefixlength for ip (defaults to 32)
		gwip: an IP address (dotted quad string notation)
		'''
        EVPN.__init__(self, packed)
        self.rd = rd
        self.esi = esi
        self.etag = etag
        self.ip = ip
        self.iplen = iplen
        self.gwip = gwip
        self.label = label
        if self.label is None:
            raise RuntimeError(
                'NO_LABEL is not defined - it MUST have a pack() function')
            self.label = "NO_LABEL"
        self.pack()
示例#17
0
    def test99_EVPNMulticastCreatePackUnpack(self):
        '''Test pack/unpack for E-VPN Multicast routes'''

        nlri = EVPNMulticast(RouteDistinguisher.fromElements("42.42.42.42", 5),
                             EthernetTag(111), IP.create("1.1.1.1"))

        packed = nlri.pack()

        unpacked, leftover = EVPN.unpack_nlri(AFI.l2vpn, SAFI.evpn, packed,
                                              OUT.UNSET, None)

        self.assertEqual(0, len(leftover))

        # TODO: compare packed with a reference encoding verified
        # as conformant with RFC7432

        self.assertTrue(isinstance(unpacked, EVPNMulticast))

        self.assertEqual("42.42.42.42:5", unpacked.rd._str())
        self.assertEqual(EthernetTag(111), unpacked.etag)
        self.assertEqual(IP.create("1.1.1.1"), unpacked.ip)
示例#18
0
    def test99_EVPNMulticastCreatePackUnpack(self):
        '''Test pack/unpack for E-VPN Multicast routes'''

        nlri = EVPNMulticast(RouteDistinguisher.fromElements("42.42.42.42", 5),
                             EthernetTag(111),
                             IP.create("1.1.1.1"))

        packed = nlri.pack()

        unpacked,leftover = EVPN.unpack_nlri(AFI(AFI.l2vpn), SAFI(SAFI.evpn),
                                             packed, OUT.UNSET, None)

        self.assertEqual(0, len(leftover))

        # TODO: compare packed with a reference encoding verified 
        # as conformant with RFC7432

        self.assertTrue(isinstance(unpacked, EVPNMulticast))

        self.assertEqual("42.42.42.42:5", unpacked.rd._str())
        self.assertEqual(EthernetTag(111), unpacked.etag)
        self.assertEqual(IP.create("1.1.1.1"), unpacked.ip)
示例#19
0
文件: __init__.py 项目: fobser/exabgp
"""
evpn/__init__.py

Created by Thomas Mangin on 2014-06-27.
Copyright (c) 2014-2015 Orange. All rights reserved.
"""

from exabgp.bgp.message.update.nlri.evpn.nlri import EVPN

from exabgp.bgp.message.update.nlri.evpn.ethernetad import EthernetAD
from exabgp.bgp.message.update.nlri.evpn.mac import MAC
from exabgp.bgp.message.update.nlri.evpn.multicast import Multicast
from exabgp.bgp.message.update.nlri.evpn.segment import EthernetSegment

# EVPN.register_evpn(EthernetAD)
EVPN.register_evpn(MAC)
EVPN.register_evpn(Multicast)
# EVPN.register_evpn(EthernetSegment)
示例#20
0
 def index(self):
     return EVPN.index(self)
示例#21
0
"""
evpn/__init__.py

Created by Thomas Mangin on 2014-06-27.
Copyright (c) 2014-2015 Orange. All rights reserved.
"""

from exabgp.bgp.message.update.nlri.evpn.nlri import EVPN

from exabgp.bgp.message.update.nlri.evpn.ethernetad import EthernetAD
from exabgp.bgp.message.update.nlri.evpn.mac import MAC
from exabgp.bgp.message.update.nlri.evpn.multicast import Multicast
from exabgp.bgp.message.update.nlri.evpn.segment import EthernetSegment
from exabgp.bgp.message.update.nlri.evpn.prefix import Prefix

# EVPN.register_evpn(EthernetAD)
EVPN.register_evpn(MAC)
EVPN.register_evpn(Multicast)
# EVPN.register_evpn(EthernetSegment)
EVPN.register_evpn(Prefix)
示例#22
0
文件: mac.py 项目: szhong-jnpr/exabgp
	def index (self):
		return EVPN.index(self)
示例#23
0
	def __init__(self,rd,etag,ip):
		self.rd = rd
		self.etag = etag
		self.ip = ip
		EVPN.__init__(self,self.pack())