From 711b7dede2b5726d54169d70eaceb97fbb02d66a Mon Sep 17 00:00:00 2001 From: Julien Courtat Date: Fri, 24 Feb 2017 11:46:31 +0100 Subject: [PATCH] Yang changes for Inter DC connectivity using BGPVPNv6 This patchset includes the yang changes required to implement Spec to support IPv6 Inter DC L3VPN connectivity using BGPVPN [1]. [1] https://git.opendaylight.org/gerrit/#/c/50359 Change-Id: I70fb5460bde2a852dc965525fb37ae8003bea109 Signed-off-by: Julien Courtat --- .../netvirt/bgpmanager/BgpConfigurationManager.java | 8 +++++--- .../opendaylight/netvirt/bgpmanager/BgpManager.java | 10 +++++----- vpnservice/model-bgp/src/main/yang/ebgp.yang | 5 ++++- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java b/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java index 0b5dd520ad..2c53455e25 100755 --- a/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java +++ b/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java @@ -1830,14 +1830,16 @@ public class BgpConfigurationManager { } public synchronized void addPrefix(String rd, String macAddress, String pfx, List nhList, - VrfEntry.EncapType encapType, int lbl, long l3vni, String gatewayMac) { + VrfEntry.EncapType encapType, int lbl, long l3vni, String gatewayMac, int addressFamily) { for (String nh : nhList) { Ipv4Address nexthop = nh != null ? new Ipv4Address(nh) : null; Long label = (long) lbl; + Long afi = (long) addressFamily; InstanceIdentifier iid = InstanceIdentifier.builder(Bgp.class) .child(Networks.class, new NetworksKey(pfx, rd)).build(); NetworksBuilder networksBuilder = new NetworksBuilder().setRd(rd).setPrefixLen(pfx).setNexthop(nexthop) - .setLabel(label).setEthtag(BgpConstants.DEFAULT_ETH_TAG); + .setLabel(label).setEthtag(BgpConstants.DEFAULT_ETH_TAG) + .setAfi(afi); buildVpnEncapSpecificInfo(networksBuilder, encapType, label, l3vni, macAddress, gatewayMac); update(iid, networksBuilder.build()); } @@ -1938,7 +1940,7 @@ public class BgpConfigurationManager { delete(iid); } - public synchronized void delPrefix(String rd, String pfx) { + public synchronized void delPrefix(String rd, String pfx, int afi) { InstanceIdentifier.InstanceIdentifierBuilder iib = InstanceIdentifier.builder(Bgp.class) .child(Networks.class, new NetworksKey(pfx, rd)); diff --git a/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpManager.java b/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpManager.java index 44f17bf2a0..820405d230 100644 --- a/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpManager.java +++ b/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpManager.java @@ -112,7 +112,7 @@ public class BgpManager implements AutoCloseable, IBgpManager { fibDSWriter.addFibEntryToDS(rd, macAddress, prefix, nextHopList, encapType, vpnLabel, l3vni, gatewayMac, origin); bcm.addPrefix(rd, macAddress, prefix, nextHopList, - encapType, vpnLabel, l3vni, gatewayMac); + encapType, vpnLabel, l3vni, gatewayMac, 1 /* TODO FIX afi */); } @Override @@ -125,7 +125,7 @@ public class BgpManager implements AutoCloseable, IBgpManager { @Override public void deletePrefix(String rd, String prefix) { fibDSWriter.removeFibEntryFromDS(rd, prefix); - bcm.delPrefix(rd, prefix); + bcm.delPrefix(rd, prefix, 1 /* TODO FIX afi */); } @Override @@ -133,7 +133,7 @@ public class BgpManager implements AutoCloseable, IBgpManager { VrfEntry.EncapType encapType, int vpnLabel, long l3vni, String gatewayMac) throws Exception { bcm.addPrefix(rd, macAddress, prefix, nextHopList, - encapType, vpnLabel, l3vni, gatewayMac); + encapType, vpnLabel, l3vni, gatewayMac, 1 /* TODO FIX afi */); } @Override @@ -142,14 +142,14 @@ public class BgpManager implements AutoCloseable, IBgpManager { String gatewayMac) throws Exception { LOG.info("ADVERTISE: Adding Prefix rd {} prefix {} nexthop {} label {}", rd, prefix, nextHop, vpnLabel); bcm.addPrefix(rd, macAddress, prefix, Collections.singletonList(nextHop), encapType, - vpnLabel, l3vni, gatewayMac); + vpnLabel, l3vni, gatewayMac, 1 /* TODO FIX afi */); LOG.info("ADVERTISE: Added Prefix rd {} prefix {} nexthop {} label {}", rd, prefix, nextHop, vpnLabel); } @Override public void withdrawPrefix(String rd, String prefix) { LOG.info("WITHDRAW: Removing Prefix rd {} prefix {}", rd, prefix); - bcm.delPrefix(rd, prefix); + bcm.delPrefix(rd, prefix, 1 /* TODO FIX afi */); LOG.info("WITHDRAW: Removed Prefix rd {} prefix {}", rd, prefix); } diff --git a/vpnservice/model-bgp/src/main/yang/ebgp.yang b/vpnservice/model-bgp/src/main/yang/ebgp.yang index c0dfccfb66..2468e39bab 100644 --- a/vpnservice/model-bgp/src/main/yang/ebgp.yang +++ b/vpnservice/model-bgp/src/main/yang/ebgp.yang @@ -159,6 +159,9 @@ module ebgp { leaf prefix-len { type string; } + leaf afi { + type uint32; + } leaf macaddress { description "Mac address of the advertised host."; type string; @@ -327,4 +330,4 @@ module ebgp { default "l3"; } } // bgp -} \ No newline at end of file +} -- 2.36.6