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)
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)
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)
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()
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)
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())
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()
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()
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()
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])
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])
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])
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
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()
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()
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)
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)
""" 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)
def index(self): return EVPN.index(self)
""" 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)
def index (self): return EVPN.index(self)
def __init__(self,rd,etag,ip): self.rd = rd self.etag = etag self.ip = ip EVPN.__init__(self,self.pack())