From 493559bdc939dc3d44e0c3f56aafda451bcce9a5 Mon Sep 17 00:00:00 2001 From: Loshmitha Date: Thu, 26 Sep 2019 15:52:46 +0530 Subject: [PATCH] Vrf and AS num corrections AS num has been set to long and Vrf has been modified so that it gets added to QBGP Change-Id: Ieea690e578b9d4adc26402673fbaec6df5be0dde Signed-off-by: Loshmitha --- .../bgpmanager/BgpConfigurationManager.java | 30 ++++++++----------- .../netvirt/bgpmanager/ConfigureBgpCli.java | 4 +-- .../bgpmanager/commands/Multipath.java | 10 +++++++ .../bgpmanager/thrift/client/BgpRouter.java | 6 ++-- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java index a84eec3ed6..d0e5b49282 100755 --- a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java +++ b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpConfigurationManager.java @@ -291,12 +291,6 @@ public class BgpConfigurationManager { candidateRegistration = registerEntityCandidate(entityOwnershipService); entityListenerRegistration = registerEntityListener(entityOwnershipService); - /*register callbacks for reactors, shall be called after EoS registration. - * as listeners user EoS service to identify Owner node. Listener call-backs - * can get triggered immediately after registeration (before EoS register complete) - */ - registerCallbacks(); - LOG.info("BGP Configuration manager initialized"); initer.countDown(); @@ -329,8 +323,9 @@ public class BgpConfigurationManager { } else { LOG.error("Failed to init UPDATE server invalid ip:port={}:{}", getBgpSdncMipIp(), updatePort); } - LOG.info("BgpConfigurationManager initialized. IBgpManager={}", bgpManager); }); + registerCallbacks(); + LOG.info("BgpConfigurationManager initialized. IBgpManager={}", bgpManager); } public String getBgpSdncMipIp() { @@ -454,10 +449,10 @@ public class BgpConfigurationManager { private EntityOwnershipListenerRegistration registerEntityListener( final EntityOwnershipService entityOwnershipService) { return entityOwnershipService.registerListener(BGP_ENTITY_TYPE_FOR_OWNERSHIP, ownershipChange -> { - LOG.trace("entity owner change event fired: {}", ownershipChange); + LOG.info("entity owner change event fired: {}", ownershipChange); if (ownershipChange.getState() == EntityOwnershipChangeState.LOCAL_OWNERSHIP_GRANTED) { - LOG.trace("This PL is the Owner"); + LOG.info("This PL is the Owner"); if (bgpThriftService != null) { //opening UPDATE-SERVER port. bgpThriftService.start(); @@ -466,12 +461,11 @@ public class BgpConfigurationManager { } bgpRestarted(); } else { - LOG.debug("Not owner: hasOwner: {}, isOwner: {}", ownershipChange.getState().hasOwner(), + LOG.info("Not owner: hasOwner: {}, isOwner: {}", ownershipChange.getState().hasOwner(), ownershipChange.getState().isOwner()); if (bgpThriftService != null && bgpThriftService.isBgpThriftServiceStarted()) { //close the bgp Thrift Update-SERVER port opened on non-Entity Owner bgpThriftService.stop(); - bgpThriftService = null; } if (isBgpConnected()) { //disconnect the CONFIG SERVER port (which was )opened during I was Owner @@ -1320,8 +1314,8 @@ public class BgpConfigurationManager { List vrfAddrFamilyList = vrfs.getAddressFamiliesVrf(); for (AddressFamiliesVrf vrfAddrFamily : vrfAddrFamilyList) { /*add to br the new vrfs arguments*/ - br.addVrf(BgpUtil.getLayerType(vrfAddrFamily), rd, vrfs.getImportRts(), vrfs.getExportRts() - ); + br.addVrf(BgpUtil.getLayerType(vrfAddrFamily), rd, vrfs.getImportRts(), + vrfs.getExportRts(), vrfAddrFamily.getAfi(), vrfAddrFamily.getSafi()); } /*add to br the vrfs contained in mapNewAdFamily*/ List vrfAddrFamilyListFromMap = mapNewAdFamily.get(rd); @@ -1334,8 +1328,8 @@ public class BgpConfigurationManager { mapNewAdFamily.remove(rd); } else if (adf != null) { - br.addVrf(BgpUtil.getLayerType(adf), rd, vrfs.getImportRts(), vrfs.getExportRts() - ); + br.addVrf(BgpUtil.getLayerType(adf), rd, vrfs.getImportRts(), + vrfs.getExportRts(), adf.getAfi(), adf.getSafi()); // remove AddressFamiliesVrf which was already added to BGP vrfAddrFamilyListFromMap.remove(adf); if (vrfAddrFamilyListFromMap.isEmpty()) { @@ -1442,7 +1436,7 @@ public class BgpConfigurationManager { try { LOG.debug("call addVRf rd {} afi {} safi {}", rd, adfvrf.getAfi(), adfvrf.getSafi()); br.addVrf(BgpUtil.getLayerType(adfvrf), rd, newval.getImportRts(), - newval.getExportRts()); + newval.getExportRts(),adfvrf.getAfi(), adfvrf.getSafi()); } catch (TException | BgpRouterException e) { LOG.error("{} Add received exception; {}", YANG_OBJ, ADD_WARN, e); } @@ -1929,7 +1923,7 @@ public class BgpConfigurationManager { // use "rd" to query vrf table and obtain the protocol_type. // Currently using PROTOCOL_EVPN as default. onUpdatePushRoute( - protocol_type.PROTOCOL_EVPN, + protocol_type.PROTOCOL_L3VPN, rd, prefix, plen, @@ -2431,7 +2425,7 @@ public class BgpConfigurationManager { for (AddressFamiliesVrf adf : vrf.getAddressFamiliesVrf()) { try { br.addVrf(BgpUtil.getLayerType(adf), vrf.getRd(), vrf.getImportRts(), - vrf.getExportRts()); + vrf.getExportRts(), adf.getAfi(), adf.getSafi()); } catch (TException | BgpRouterException e) { LOG.error("Replay:addVrf() received exception", e); } diff --git a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/ConfigureBgpCli.java b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/ConfigureBgpCli.java index 2929e28e3d..225babc7df 100644 --- a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/ConfigureBgpCli.java +++ b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/ConfigureBgpCli.java @@ -47,7 +47,7 @@ public class ConfigureBgpCli extends OsgiCommandSupport { String md5passwordOption = null; @Option(name = "--address-family", description = "address family of the bgp neighbor " - + "SAFI_IPV4_LABELED_UNICAST|SAFI_MPLS_VPN", + + "lu|evpn|vpnv4|vpnv6", required = false, multiValued = false) String addressFamily = null; @@ -284,7 +284,7 @@ public class ConfigureBgpCli extends OsgiCommandSupport { return; } } - bgpConfigurationManager.startBgp(Integer.parseInt(asNumber), routerId, + bgpConfigurationManager.startBgp(Long.parseLong(asNumber), routerId, stalePathTime == null ? 0 : Integer.parseInt(stalePathTime), false); } diff --git a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/commands/Multipath.java b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/commands/Multipath.java index ed50144866..0bd7b68fb4 100644 --- a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/commands/Multipath.java +++ b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/commands/Multipath.java @@ -67,6 +67,11 @@ public class Multipath extends OsgiCommandSupport { session.getConsole().println("error: " + AF + " must be lu/evpn/vpnv4/vpnv6 "); return null; } + if (multipathEnable != null + && multipathEnable.equals("setmaxpath")) { + session.getConsole().println("error: " + AF + "can be configured with enable/disable only"); + return null; + } if (addrFamily.equals("vpnv6")) { afi = af_afi.findByValue(2); safi = af_safi.findByValue(5); @@ -88,6 +93,11 @@ public class Multipath extends OsgiCommandSupport { session.getConsole().println("error: " + MAXPATH + " range[" + MIN_MAXPATH + " - " + MAX_MAXPATH + "]"); return null; } + if (multipathEnable != null + && (multipathEnable.equals("enable") || multipathEnable.equals("disable"))) { + session.getConsole().println("error: " + MAXPATH + "can be configured with setmaxpath only"); + return null; + } } if (multipathEnable != null) { diff --git a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/thrift/client/BgpRouter.java b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/thrift/client/BgpRouter.java index 6aafaa9b6f..32a280047c 100644 --- a/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/thrift/client/BgpRouter.java +++ b/bgpmanager/impl/src/main/java/org/opendaylight/netvirt/bgpmanager/thrift/client/BgpRouter.java @@ -495,14 +495,16 @@ public final class BgpRouter { dispatch(bop); } - public synchronized void addVrf(LayerType layerType, String rd, List irts, List erts) - throws TException, BgpRouterException { + public synchronized void addVrf(LayerType layerType, String rd, List irts, List erts, + long afi, long safi) throws TException, BgpRouterException { bop.thriftLayerType = layerType == LayerType.LAYER2 ? layer_type.LAYER_2 : layer_type.LAYER_3; bop.type = Optype.VRF; bop.add = true; bop.strs[0] = rd; bop.irts = irts; bop.erts = erts; + bop.afi = af_afi.findByValue((int)afi); + bop.safi = af_safi.findByValue((int)safi); LOG.debug("Adding BGP VRF rd: {} ", rd); dispatch(bop); } -- 2.36.6