From c8d5d6270466ec2a03dd2c1154b1dce174eacebe Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Tue, 24 Oct 2017 13:39:46 +0200 Subject: [PATCH] Cleanup of Lisp in VPP renderer - cleaning unused methods and variables - organizing imports - removing state classes Change-Id: I9c9459d28b85d5fd5abfc4fb55dfe49638e69234 Signed-off-by: Michal Cmarada --- .../config/vpp_provider/impl/VppRenderer.java | 6 +- .../vpp/commands/LoopbackCommandWrapper.java | 51 ++----- .../commands/UnnumberedInterfaceCommand.java | 3 +- .../ConfigureItrRemoteLocatorSetCommand.java | 2 +- ...onfigureLocalMappingInEidTableCommand.java | 2 +- .../lisp/ConfigureLocatorSetCommand.java | 2 +- .../ConfigureMapRegisterStatusCommand.java | 2 +- .../lisp/ConfigureMapResolverCommand.java | 2 +- .../lisp/ConfigureVrfToVniMappingCommand.java | 2 +- .../lisp/DeleteGpeFeatureDataCommand.java | 33 ----- .../vpp/commands/lisp/LispCommandWrapper.java | 37 ++--- .../vpp/commands/lisp/dom/CommandModel.java | 3 - .../renderer/vpp/iface/InterfaceManager.java | 6 +- .../vpp/lisp/LispStateCommandExecutor.java | 23 ++- .../renderer/vpp/lisp/LispStateManager.java | 50 +++---- .../event/manager/GbpSubnetEventManager.java | 14 +- ...eption.java => LispArgumentException.java} | 7 +- .../lisp/flat/overlay/FlatOverlayManager.java | 42 +++--- .../flat/overlay/StaticRoutingHelper.java | 25 +--- .../vpp/lisp/info/container/EndpointHost.java | 31 ---- .../container/HostRelatedInfoContainer.java | 78 ++--------- .../lisp/info/container/states/LispState.java | 132 ------------------ .../info/container/states/PortInterfaces.java | 74 ---------- .../info/container/states/PortRouteState.java | 67 --------- .../info/container/states/RouteState.java | 53 ------- .../info/container/states/SubnetHolder.java | 43 ------ .../info/container/states/SubnetState.java | 68 --------- .../lisp/info/container/states/VrfHolder.java | 45 ------ .../lisp/info/container/states/VrfState.java | 55 -------- .../vpp/lisp/loopback/LoopbackManager.java | 62 ++++---- .../vpp/lisp/loopback/SubnetHostInfo.java | 55 -------- .../mappers/SubnetUuidToGbpSubnetMapper.java | 43 ------ .../vpp/lisp/util/ConfigManagerHelper.java | 71 ++-------- .../renderer/vpp/lisp/util/Constants.java | 7 - .../renderer/vpp/lisp/util/IpAddressUtil.java | 28 ++-- .../vpp/listener/VppEndpointListener.java | 16 +-- .../renderer/vpp/util/LispUtil.java | 11 +- .../vpp/iface/InterfaceManagerTest.java | 2 +- .../policy/VppRendererPolicyManagerTest.java | 6 +- 39 files changed, 169 insertions(+), 1090 deletions(-) delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/DeleteGpeFeatureDataCommand.java rename renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/exception/{LispHelperArgumentException.java => LispArgumentException.java} (69%) delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/EndpointHost.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/LispState.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortInterfaces.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortRouteState.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/RouteState.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetHolder.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetState.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfHolder.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfState.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/SubnetHostInfo.java delete mode 100644 renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/mappers/SubnetUuidToGbpSubnetMapper.java diff --git a/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java index ec403258c..0630ba5bb 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java +++ b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java @@ -150,11 +150,11 @@ public class VppRenderer implements AutoCloseable, BindingAwareProvider { EventBus dtoEventBus = new EventBus((exception, context) -> LOG.error("Could not dispatch event: {} to {}", context.getSubscriber(), context.getSubscriberMethod(), exception)); vppEndpointListener = new VppEndpointListener(dataBroker, dtoEventBus); - LispStateManager lispStateManager = new LispStateManager(mountDataProvider); + LispStateManager lispStateManager = new LispStateManager(); FlatOverlayManager flatOverlayManager = new FlatOverlayManager(dataBroker, mountDataProvider, vppEndpointListener); - LoopbackManager loopbackManager = new LoopbackManager(mountDataProvider); + LoopbackManager loopbackManager = new LoopbackManager(); - interfaceManager = new InterfaceManager(mountDataProvider, dataBroker, flatOverlayManager); + interfaceManager = new InterfaceManager(mountDataProvider, dataBroker); AclManager aclManager = new AclManager(mountDataProvider, interfaceManager); NatManager natManager = (ConfigUtil.getInstance().isL3FlatEnabled()) ? new DvrNatImpl(dataBroker) : new CentralizedNatImpl( diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/LoopbackCommandWrapper.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/LoopbackCommandWrapper.java index 94c52614d..95c89934d 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/LoopbackCommandWrapper.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/LoopbackCommandWrapper.java @@ -14,49 +14,20 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. public class LoopbackCommandWrapper { - public static LoopbackCommand simpleLoopbackPutCommand(String interfaceName, - long vrf, - IpAddress ipAddress, - IpPrefix cidr) { + public static LoopbackCommand simpleLoopbackPutCommand(String interfaceName, long vrf, IpAddress ipAddress, + IpPrefix cidr) { LoopbackCommand.LoopbackCommandBuilder simpleLoopbackCommandBuilder = - simpleLoopbackCommandBuilder(interfaceName, vrf, ipAddress, cidr); - simpleLoopbackCommandBuilder.setOperation(General.Operations.PUT); + simpleLoopbackCommandBuilder(interfaceName, vrf, ipAddress, cidr).setOperation(General.Operations.PUT); return simpleLoopbackCommandBuilder.build(); } - public static LoopbackCommand bviLoopbackPutCommand(String interfaceName, - long vrf, - IpAddress ipAddress, - IpPrefix cidr, - String bridgeDomainName) { - LoopbackCommand.LoopbackCommandBuilder bviLoopbackCommandBuilder = - bviLoopbackCommandBuilder(interfaceName, vrf, ipAddress, cidr, bridgeDomainName); - bviLoopbackCommandBuilder.setOperation(General.Operations.PUT); - return bviLoopbackCommandBuilder.build(); - } - - private static LoopbackCommand.LoopbackCommandBuilder simpleLoopbackCommandBuilder(String interfaceName, - long vrf, - IpAddress ipAddress, - IpPrefix cidr) { - LoopbackCommand.LoopbackCommandBuilder loopbackCommandBuilder = new LoopbackCommand.LoopbackCommandBuilder(); - loopbackCommandBuilder.setInterfaceName(interfaceName); - loopbackCommandBuilder.setEnabled(true); - loopbackCommandBuilder.setVrfId(vrf); - loopbackCommandBuilder.setIpAddress(ipAddress); - loopbackCommandBuilder.setIpPrefix(cidr); - return loopbackCommandBuilder; - } - - private static LoopbackCommand.LoopbackCommandBuilder bviLoopbackCommandBuilder(String interfaceName, - long vrf, - IpAddress ipAddress, - IpPrefix cidr, - String bridgeDomainName) { - LoopbackCommand.LoopbackCommandBuilder simpleLoopbackCommandBuilder = - simpleLoopbackCommandBuilder(interfaceName, vrf, ipAddress, cidr); - simpleLoopbackCommandBuilder.setBridgeDomain(bridgeDomainName); - simpleLoopbackCommandBuilder.setBvi(true); - return simpleLoopbackCommandBuilder; + private static LoopbackCommand.LoopbackCommandBuilder simpleLoopbackCommandBuilder(String interfaceName, long vrf, + IpAddress ipAddress, IpPrefix cidr) { + return new LoopbackCommand.LoopbackCommandBuilder() + .setInterfaceName(interfaceName) + .setEnabled(true) + .setVrfId(vrf) + .setIpAddress(ipAddress) + .setIpPrefix(cidr); } } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/UnnumberedInterfaceCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/UnnumberedInterfaceCommand.java index d49e3d011..fb9f0a98e 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/UnnumberedInterfaceCommand.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/UnnumberedInterfaceCommand.java @@ -9,6 +9,7 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.commands; import com.google.common.base.Preconditions; + import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General; @@ -101,7 +102,7 @@ public class UnnumberedInterfaceCommand extends AbstractConfigCommand { } /** - * StaticArpCommand build method. + * UnnumberedInterfaceCommand build method. * * @return UnnumberedInterfaceCommand * @throws IllegalArgumentException if useInterface or interfaceName is null. diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureItrRemoteLocatorSetCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureItrRemoteLocatorSetCommand.java index 75d019a15..313b0c698 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureItrRemoteLocatorSetCommand.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureItrRemoteLocatorSetCommand.java @@ -13,7 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class ConfigureItrRemoteLocatorSetCommand extends AbstractLispCommand { - ItrRemoteLocatorSetDom itrRemoteLocatorSetDom; + private ItrRemoteLocatorSetDom itrRemoteLocatorSetDom; public ConfigureItrRemoteLocatorSetCommand(ItrRemoteLocatorSetDom itrRemoteLocatorSetDom) { this.itrRemoteLocatorSetDom = itrRemoteLocatorSetDom; diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocalMappingInEidTableCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocalMappingInEidTableCommand.java index a5f419f7d..2ddf364a3 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocalMappingInEidTableCommand.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocalMappingInEidTableCommand.java @@ -17,7 +17,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class ConfigureLocalMappingInEidTableCommand extends AbstractLispCommand { - LocalMappingDom localMappingDom; + private LocalMappingDom localMappingDom; public ConfigureLocalMappingInEidTableCommand(LocalMappingDom localMappingDom) { this.localMappingDom = localMappingDom; diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocatorSetCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocatorSetCommand.java index 8071c0018..f61aae3e3 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocatorSetCommand.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureLocatorSetCommand.java @@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class ConfigureLocatorSetCommand extends AbstractLispCommand { - LocatorSetDom locatorSetDom; + private LocatorSetDom locatorSetDom; public ConfigureLocatorSetCommand(LocatorSetDom locatorSetDom) { this.locatorSetDom = locatorSetDom; diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapRegisterStatusCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapRegisterStatusCommand.java index 96109901f..a431be2d7 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapRegisterStatusCommand.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapRegisterStatusCommand.java @@ -15,7 +15,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class ConfigureMapRegisterStatusCommand extends AbstractLispCommand{ - MapRegisterDom mapRegisterDom; + private MapRegisterDom mapRegisterDom; public ConfigureMapRegisterStatusCommand(MapRegisterDom mapRegisterDom) { this.mapRegisterDom = mapRegisterDom; diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapResolverCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapResolverCommand.java index 6859d72b0..d48990914 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapResolverCommand.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureMapResolverCommand.java @@ -15,7 +15,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class ConfigureMapResolverCommand extends AbstractLispCommand{ - MapResolverDom mapResolverDom; + private MapResolverDom mapResolverDom; public ConfigureMapResolverCommand(MapResolverDom mapResolverDom) { this.mapResolverDom = mapResolverDom; diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureVrfToVniMappingCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureVrfToVniMappingCommand.java index 64283336a..2fdec99e0 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureVrfToVniMappingCommand.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/ConfigureVrfToVniMappingCommand.java @@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class ConfigureVrfToVniMappingCommand extends AbstractLispCommand { - VniTableDom vniTableDom; + private VniTableDom vniTableDom; public ConfigureVrfToVniMappingCommand(VniTableDom vniTableDom) { this.vniTableDom = vniTableDom; diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/DeleteGpeFeatureDataCommand.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/DeleteGpeFeatureDataCommand.java deleted file mode 100644 index b6d9bf2c2..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/DeleteGpeFeatureDataCommand.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp; - -import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.feature.data.grouping.GpeFeatureData; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DeleteGpeFeatureDataCommand extends AbstractLispCommand { - private static final Logger LOG = LoggerFactory.getLogger(DeleteGpeFeatureDataCommand.class); - - @Override - public InstanceIdentifier getIid() { - return VppIidFactory.getGpeFeatureDataIid(); - } - - @Override - public GpeFeatureData getData() { - LOG.debug("Delete commands should not invoke getData()"); - return null; - } - - @Override public String toString() { - return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + "DeleteGpeFeatureDataCommand{}"; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/LispCommandWrapper.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/LispCommandWrapper.java index 3f4a12eab..dce40d6d1 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/LispCommandWrapper.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/LispCommandWrapper.java @@ -8,6 +8,8 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp; +import java.util.Collections; + import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.dom.GbpGpeEntryDom; import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.dom.GpeEnableDom; import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.dom.InterfaceDom; @@ -41,11 +43,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev171013.map.resolvers.grouping.map.resolvers.MapResolver; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev171013.map.servers.grouping.map.servers.MapServer; -import java.util.Arrays; - -/** - * Created by Shakib Ahmed on 3/21/17. - */ public class LispCommandWrapper { public static AbstractLispCommand enableLisp() { LispDom lispDom = new LispDom(); @@ -53,17 +50,15 @@ public class LispCommandWrapper { return new ConfigureLispStatusCommand(lispDom); } - public static AbstractLispCommand addLocatorSet(String locatorName, - String interfaceName, - short priority, - short weight) { + public static AbstractLispCommand addLocatorSet(String locatorName, String interfaceName, + short priority, short weight) { InterfaceDom interfaceDom = new InterfaceDom(); interfaceDom.setInterfaceName(interfaceName); interfaceDom.setPriority(priority); interfaceDom.setWeight(weight); LocatorSetDom locatorSetDom = new LocatorSetDom(); - locatorSetDom.setInterfaces(Arrays.asList(interfaceDom.getSALObject())); + locatorSetDom.setInterfaces(Collections.singletonList(interfaceDom.getSALObject())); locatorSetDom.setLocatorName(locatorName); return new ConfigureLocatorSetCommand(locatorSetDom); } @@ -99,10 +94,8 @@ public class LispCommandWrapper { return new ConfigureMapServerCommand(mapServerDom); } - public static AbstractLispCommand addLocalMappingInEidTable(String mappingName, - Eid eid, - String locatorName, - HmacKey hmacKey) { + public static AbstractLispCommand addLocalMappingInEidTable(String mappingName, Eid eid, + String locatorName, HmacKey hmacKey) { LocalMappingDom localMappingDom = new LocalMappingDom(); localMappingDom.setMappingId(new MappingId(mappingName)); localMappingDom.setEid(eid); @@ -112,8 +105,7 @@ public class LispCommandWrapper { return new ConfigureLocalMappingInEidTableCommand(localMappingDom); } - public static AbstractLispCommand deleteLocalMappingFromEidTable(String mappingName, - long vni) { + public static AbstractLispCommand deleteLocalMappingFromEidTable(String mappingName, long vni) { LocalMappingDom localMappingDom = new LocalMappingDom(); localMappingDom.setMappingId(new MappingId(mappingName)); localMappingDom.setVni(vni); @@ -132,10 +124,8 @@ public class LispCommandWrapper { return new ConfigureGpeCommand(gpeEnableDom); } - public static AbstractLispCommand addGpeSendMapregisterAction(String entryName, - RemoteEid rEid, - long vni, - long vrf) { + public static AbstractLispCommand addGpeSendMapregisterAction(String entryName, RemoteEid rEid, long vni, + long vrf) { GbpGpeEntryDom gpeEntryDom = new GbpGpeEntryDom(); gpeEntryDom.setId(entryName); gpeEntryDom.setRemoteEid(rEid); @@ -160,18 +150,13 @@ public class LispCommandWrapper { return new ConfigureItrRemoteLocatorSetCommand(itrRemoteLocatorSetDom); } - public static AbstractLispCommand addNativeForwardEntry(long vrf, - IpAddress nextHopIp) { + public static AbstractLispCommand addNativeForwardEntry(long vrf, IpAddress nextHopIp) { NativeForwardPathDom nativeForwardPathDom = new NativeForwardPathDom(); nativeForwardPathDom.setVrfId(vrf); nativeForwardPathDom.setNextHopIp(nextHopIp); return new ConfigureNativeForwardPathCommand(nativeForwardPathDom); } - public static AbstractLispCommand deleteGpeFeatureData() { - return new DeleteGpeFeatureDataCommand(); - } - public static AbstractLispCommand deleteNativeForwardPathsTables() { return new DeleteNativeForwardPathsTablesDeleteCommand(); } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/dom/CommandModel.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/dom/CommandModel.java index 6a30c1792..62b09bc97 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/dom/CommandModel.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/commands/lisp/dom/CommandModel.java @@ -10,9 +10,6 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.dom; import org.opendaylight.yangtools.yang.binding.DataObject; -/** - * Created by Shakib Ahmed on 3/20/17. - */ public interface CommandModel { T getSALObject(); } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManager.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManager.java index 9f7048092..8d0ddbf64 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManager.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManager.java @@ -37,7 +37,6 @@ import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.interfaces.Config import org.opendaylight.groupbasedpolicy.renderer.vpp.config.ConfigUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.event.NodeOperEvent; import org.opendaylight.groupbasedpolicy.renderer.vpp.event.VppEndpointConfEvent; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.flat.overlay.FlatOverlayManager; import org.opendaylight.groupbasedpolicy.renderer.vpp.policy.acl.AccessListWrapper; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.GbpNetconfTransaction; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General.Operations; @@ -77,13 +76,10 @@ public class InterfaceManager implements AutoCloseable { private final MountedDataBrokerProvider mountDataProvider; private final VppEndpointLocationProvider vppEndpointLocationProvider; private final SetMultimap excludedFromPolicy = HashMultimap.create(); - private final FlatOverlayManager flatOverlayManager; - public InterfaceManager(@Nonnull MountedDataBrokerProvider mountDataProvider, @Nonnull DataBroker dataProvider, - FlatOverlayManager flatOverlayManager) { + public InterfaceManager(@Nonnull MountedDataBrokerProvider mountDataProvider, @Nonnull DataBroker dataProvider) { this.mountDataProvider = Preconditions.checkNotNull(mountDataProvider); this.vppEndpointLocationProvider = new VppEndpointLocationProvider(dataProvider); - this.flatOverlayManager = flatOverlayManager; } @Subscribe diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateCommandExecutor.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateCommandExecutor.java index 35f31f977..95bb1e60f 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateCommandExecutor.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateCommandExecutor.java @@ -12,16 +12,12 @@ import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.AbstractLisp import org.opendaylight.groupbasedpolicy.renderer.vpp.util.GbpNetconfTransaction; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.LispUtil; -import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Function; - public class LispStateCommandExecutor { private static final Logger LOG = LoggerFactory.getLogger(LispStateCommandExecutor.class); @@ -31,16 +27,14 @@ public class LispStateCommandExecutor { return executeCommand(nodeIid, lispStateCommand); } - public static boolean executePutCommand(String hostName, - AbstractLispCommand lispStateCommand) { + static boolean executePutCommand(String hostName, AbstractLispCommand lispStateCommand) { lispStateCommand.setOperation(General.Operations.PUT); - return executeCommand(LispUtil.HOSTNAME_TO_IID.apply(hostName), lispStateCommand); + return executeCommand(LispUtil.hostnameToIid(hostName), lispStateCommand); } - public static boolean executeMergeCommand(String hostName, - AbstractLispCommand lispStateCommand) { + static boolean executeMergeCommand(String hostName, AbstractLispCommand lispStateCommand) { lispStateCommand.setOperation(General.Operations.MERGE); - return executeCommand(LispUtil.HOSTNAME_TO_IID.apply(hostName), lispStateCommand); + return executeCommand(LispUtil.hostnameToIid(hostName), lispStateCommand); } public static boolean executeDeleteCommand(InstanceIdentifier nodeIid, @@ -49,14 +43,13 @@ public class LispStateCommandExecutor { return executeCommand(nodeIid, lispStateCommand); } - public static boolean executeDeleteCommand(String hostName, - AbstractLispCommand lispStateCommand) { + static boolean executeDeleteCommand(String hostName, AbstractLispCommand lispStateCommand) { lispStateCommand.setOperation(General.Operations.DELETE); - return executeCommand(LispUtil.HOSTNAME_TO_IID.apply(hostName), lispStateCommand); + return executeCommand(LispUtil.hostnameToIid(hostName), lispStateCommand); } - public static boolean executeCommand(InstanceIdentifier nodeIid, - AbstractLispCommand lispStateCommand) { + private static boolean executeCommand(InstanceIdentifier nodeIid, + AbstractLispCommand lispStateCommand) { final boolean transactionState; switch (lispStateCommand.getOperation()) { case MERGE: diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateManager.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateManager.java index c08ea8776..ddd552a7e 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateManager.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/LispStateManager.java @@ -17,8 +17,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; -import javax.annotation.Nonnull; - import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.AbstractLispCommand; import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.LispCommandWrapper; @@ -26,23 +24,16 @@ import org.opendaylight.groupbasedpolicy.renderer.vpp.config.ConfigUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispConfigCommandFailedException; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispNotFoundException; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.flat.overlay.FlatOverlayManager; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.flat.overlay.StaticRoutingHelper; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.EndpointHost; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.HostRelatedInfoContainer; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.LispState; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PhysicalInterfaces; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.mappers.NeutronTenantToVniMapper; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.ConfigManagerHelper; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.Constants; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.GbpNetconfTransaction; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.LispUtil; -import org.opendaylight.groupbasedpolicy.renderer.vpp.util.MountedDataBrokerProvider; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.nat.rev150908.nat.config.nat.instances.nat.instance.MappingTable; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev170511.IpPrefixType; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.Gpe; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.NativeForwardPathsTables; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801._native.forward.paths.tables._native.forward.paths.table.NativeForwardPath; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.feature.data.grouping.GpeFeatureData; @@ -73,7 +64,6 @@ public class LispStateManager { private static final Logger LOG = LoggerFactory.getLogger(LispStateManager.class); private HostRelatedInfoContainer hostRelatedInfoContainer; - private MountedDataBrokerProvider mountedDataBrokerProvider; private ConfigManagerHelper lispStateHelper; private NeutronTenantToVniMapper neutronTenantToVniMapper; @@ -87,12 +77,9 @@ public class LispStateManager { // Node ID, VRF ID, route count private Map> vnisByHostname = new HashMap<>(); - public LispStateManager(@Nonnull MountedDataBrokerProvider mountedDataBrokerProvider) { - Preconditions.checkNotNull(mountedDataBrokerProvider, - "MountedDataBrokerProvider found to be null!"); + public LispStateManager() { hostRelatedInfoContainer = HostRelatedInfoContainer.getInstance(); - this.mountedDataBrokerProvider= mountedDataBrokerProvider; - this.lispStateHelper = new ConfigManagerHelper(this.mountedDataBrokerProvider); + this.lispStateHelper = new ConfigManagerHelper(); neutronTenantToVniMapper = NeutronTenantToVniMapper.getInstance(); } @@ -136,14 +123,17 @@ public class LispStateManager { try { boolean lispEnabled = enableLispOnHost(hostName); - Optional gpeFeatureDataOptional = GbpNetconfTransaction.read(VppIidFactory.getNetconfNodeIid(new NodeId(hostName)), + Optional gpeFeatureDataOptional = + GbpNetconfTransaction.read(VppIidFactory.getNetconfNodeIid(new NodeId(hostName)), LogicalDatastoreType.CONFIGURATION, VppIidFactory.getGpeFeatureDataIid(), GbpNetconfTransaction.RETRY_COUNT); LOG.trace("configureHostIfNeeded -> GpeOnHostFeatureData: {}", gpeFeatureDataOptional); if (!gpeFeatureDataOptional.isPresent() || !gpeFeatureDataOptional.get().isEnable()) { - enableGpeOnHostIfNeeded(hostName); + if (!enableGpeOnHostIfNeeded(hostName)) { + LOG.trace("configureHostIfNeeded -> Gpe on host: {} cannot be enabled.", hostName); + } LOG.trace("configureHostIfNeeded -> GpeOnHostFeatureData were cleared"); } @@ -202,7 +192,8 @@ public class LispStateManager { if (LispStateCommandExecutor.executePutCommand(hostName, addLocatorSetCommand)) { addExtraItrRlocLocatorSetIfNeeded(hostName, lispDataInterfaceName); } else { - LOG.warn("Failed to write locator set: {} -> {} to host: {}", locatorSetName, lispDataInterfaceName, hostName); + LOG.warn("Failed to write locator set: {} -> {} to host: {}", locatorSetName, lispDataInterfaceName, + hostName); } } catch (InterruptedException | ExecutionException e) { throw new LispNotFoundException("No interface with Ip Address found!"); @@ -267,7 +258,7 @@ public class LispStateManager { private void addVniSpecificConfigurationsIfNeeded(String hostName, long vni, long vrf) { - if (vnisByHostname.get(hostName) != null && !vnisByHostname.get(hostName).contains(Long.valueOf(vni))) { + if (vnisByHostname.get(hostName) != null && !vnisByHostname.get(hostName).contains(vni)) { if (addVniToVrfMapping(hostName, vni, vrf)) { if (!addGpeNativeForwardPath(hostName, vrf, hostRelatedInfoContainer.getPhysicalInterfaceState(hostName) .getIp(PhysicalInterfaces.PhysicalInterfaceType.PUBLIC))) { @@ -340,7 +331,9 @@ public class LispStateManager { if (vnisByHostname.get(hostname)!= null && vnisByHostname.get(hostname).size() == 0) { //safe to delete lisp deleteLispStatesFromHost(hostname); - deleteNativeForwardPathsTables(hostname); + if (!deleteNativeForwardPathsTables(hostname)) { + LOG.warn("Failed to delete native forward paths tables from host: {}", hostname); + } vnisByHostname.remove(hostname); } @@ -364,20 +357,9 @@ public class LispStateManager { private void deleteLispStatesFromHost(String hostname) throws LispConfigCommandFailedException { - /*AbstractLispCommand deleteLispFeatureData = LispCommandWrapper.deleteLispFeatureData(); - - if (LispStateCommandExecutor.executeDeleteCommand(endpointHost.getHostName(), deleteLispFeatureData)) { - hostRelatedInfoContainer.deleteLispStateOfHost(endpointHost.getHostName()); - LOG.debug("Deleted all lisp data {}, for host {}", - hostRelatedInfoContainer.getLispStateOfHost(endpointHost.getHostName()), endpointHost.getHostName()); - } else { - throw new LispConfigCommandFailedException("Lisp delete feature data command failed!"); - } - */ - - //Todo workaround to delete only inside data not whole lisp-feature-data + //Todo workaround to delete only inside data not whole lisp-feature-data at once // (causes VPP to crash https://jira.fd.io/browse/HC2VPP-242) remove when fixed - InstanceIdentifier nodeIid = LispUtil.HOSTNAME_TO_IID.apply(hostname); + InstanceIdentifier nodeIid = LispUtil.hostnameToIid(hostname); Optional lispOptional = GbpNetconfTransaction.read(nodeIid, LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Lisp.class), GbpNetconfTransaction.RETRY_COUNT); @@ -484,7 +466,7 @@ public class LispStateManager { return neutronTenantToVniMapper.getVni(tenantUuid); } - public static void cleanLisp(String hostName) + private static void cleanLisp(String hostName) throws LispConfigCommandFailedException { if (LispStateCommandExecutor.executeDeleteCommand(hostName, LispCommandWrapper.deleteLispFeatureData())) { LOG.debug("Deleted all lisp data for host {}",hostName); diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/event/manager/GbpSubnetEventManager.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/event/manager/GbpSubnetEventManager.java index 18c4436e6..7e7363e75 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/event/manager/GbpSubnetEventManager.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/event/manager/GbpSubnetEventManager.java @@ -10,28 +10,22 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.event.manager; import com.google.common.base.Preconditions; import com.google.common.eventbus.Subscribe; + +import javax.annotation.Nonnull; + import org.opendaylight.groupbasedpolicy.renderer.vpp.event.GbpSubnetEvent; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.loopback.LoopbackManager; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.mappers.SubnetUuidToGbpSubnetMapper; -import org.opendaylight.groupbasedpolicy.renderer.vpp.util.MountedDataBrokerProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.GbpSubnet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nonnull; - -/** - * Created by Shakib Ahmed on 5/3/17. - */ public class GbpSubnetEventManager { private static final Logger LOG = LoggerFactory.getLogger(GbpSubnetEventManager.class); - private SubnetUuidToGbpSubnetMapper subnetUuidToGbpSubnetInfoMapper; private LoopbackManager loopbackManager; public GbpSubnetEventManager(@Nonnull LoopbackManager loopbackManager) { this.loopbackManager = loopbackManager; - this.subnetUuidToGbpSubnetInfoMapper = SubnetUuidToGbpSubnetMapper.getInstance(); } @Subscribe @@ -60,12 +54,10 @@ public class GbpSubnetEventManager { } private void processSubnetCreated(String subnetUuid, GbpSubnet subnetInfo) { - //subnetUuidToGbpSubnetInfoMapper.addSubnetInfo(subnetUuid, subnetInfo); loopbackManager.gbpSubnetCreated(subnetUuid, subnetInfo); } private void processSubnetDeleted(String subnetUuid) { - //subnetUuidToGbpSubnetInfoMapper.removeSubnetInfo(subnetUuid); loopbackManager.gbpSubnetdeleted(subnetUuid); } } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/exception/LispHelperArgumentException.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/exception/LispArgumentException.java similarity index 69% rename from renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/exception/LispHelperArgumentException.java rename to renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/exception/LispArgumentException.java index 8a766740f..05b158d23 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/exception/LispHelperArgumentException.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/exception/LispArgumentException.java @@ -8,11 +8,8 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception; -/** - * Created by Shakib Ahmed on 3/31/17. - */ -public class LispHelperArgumentException extends Exception { - public LispHelperArgumentException(final String message) { +public class LispArgumentException extends Exception { + public LispArgumentException(final String message) { super(message); } } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/FlatOverlayManager.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/FlatOverlayManager.java index 406237cb2..198b76aa3 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/FlatOverlayManager.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/FlatOverlayManager.java @@ -8,6 +8,8 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.flat.overlay; +import com.google.common.base.Optional; + import java.util.HashMap; import java.util.List; import java.util.Map; @@ -20,13 +22,10 @@ import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.StaticArpCommand; import org.opendaylight.groupbasedpolicy.renderer.vpp.iface.VppPathMapper; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.EndpointHost; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.HostRelatedInfoContainer; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PhysicalInterfaces; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PortInterfaces; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.mappers.NeutronTenantToVniMapper; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.ConfigManagerHelper; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.Constants; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.IpAddressUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.listener.VppEndpointListener; import org.opendaylight.groupbasedpolicy.renderer.vpp.routing.RoutingManager; @@ -48,7 +47,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpo import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev170511.IpPrefixType; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.Config; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425._interface.attributes._interface.type.choice.TapCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpoint; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpointKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.Routing; @@ -59,9 +57,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; - public class FlatOverlayManager { private static final Logger LOG = LoggerFactory.getLogger(FlatOverlayManager.class); @@ -79,7 +74,7 @@ public class FlatOverlayManager { public FlatOverlayManager(@Nonnull DataBroker dataBroker, @Nonnull MountedDataBrokerProvider mountedDataBrokerProvider, @Nonnull VppEndpointListener vppEndpointListener) { - this.overlayHelper = new ConfigManagerHelper(mountedDataBrokerProvider); + this.overlayHelper = new ConfigManagerHelper(); staticRoutingHelper = new StaticRoutingHelper(); this.dataBroker = dataBroker; this.vppEndpointListener = vppEndpointListener; @@ -91,18 +86,10 @@ public class FlatOverlayManager { } private void addInterfaceInVrf(String hostName, String interfaceName, long vrf) { - if (hostRelatedInfoContainer.getPortInterfaceStateOfHost(hostName) - .isVrfConfiguredForInterface(interfaceName)) { - return; - } - if (!putVrfInInterface(hostName, interfaceName, vrf)) { LOG.warn("Failed to put interface {} to vrf {}", interfaceName, vrf); } else { - hostRelatedInfoContainer - .getPortInterfaceStateOfHost(hostName) - .initializeRoutingContextForInterface(interfaceName, vrf); - LOG.debug("Added interface {} to vrf {}", interfaceName, vrf); + LOG.trace("Added interface {} to vrf {}", interfaceName, vrf); } } @@ -110,7 +97,7 @@ public class FlatOverlayManager { InstanceIdentifier iid = VppIidFactory.getRoutingIid(new InterfaceKey(interfaceName)); RoutingBuilder builder = new RoutingBuilder(); builder.setIpv4VrfId(vrf); - return GbpNetconfTransaction.netconfSyncedWrite(LispUtil.HOSTNAME_TO_IID.apply(hostName), iid, + return GbpNetconfTransaction.netconfSyncedWrite(LispUtil.hostnameToIid(hostName), iid, builder.build(), GbpNetconfTransaction.RETRY_COUNT); } @@ -152,7 +139,7 @@ public class FlatOverlayManager { staticArpCommandBuilder.setIp(ip); staticArpCommandBuilder.setLinkLayerAddress(physAddress); - return GbpNetconfTransaction.netconfSyncedWrite(LispUtil.HOSTNAME_TO_IID.apply(hostName), + return GbpNetconfTransaction.netconfSyncedWrite(LispUtil.hostnameToIid(hostName), staticArpCommandBuilder.build(), GbpNetconfTransaction.RETRY_COUNT); } @@ -200,7 +187,8 @@ public class FlatOverlayManager { Map hostnamesAndIntfcs = new HashMap<>(); if (addressEp.getRelativeLocations() != null && addressEp.getRelativeLocations().getExternalLocation() != null) { - LOG.trace("deleteStaticRoutingEntry -> addresEp locations: {}", addressEp.getRelativeLocations().getExternalLocation()); + LOG.trace("deleteStaticRoutingEntry -> addresEp locations: {}", + addressEp.getRelativeLocations().getExternalLocation()); addressEp.getRelativeLocations().getExternalLocation().forEach(externalLocation -> { Optional interfaceOptional = VppPathMapper.interfacePathToInterfaceName(externalLocation.getExternalNodeConnector()); @@ -233,7 +221,7 @@ public class FlatOverlayManager { private boolean addStaticRoute(Long routeId, String hostName, long vrfId, Ipv4Address ipWithoutPrefix, Ipv4Prefix ipv4Prefix, String outgoingInterfaceName) { if (vrfsByHostname.get(hostName) == null || !vrfsByHostname.get(hostName).keySet().contains(vrfId)) { - if (staticRoutingHelper.addRoutingProtocolForVrf(LispUtil.HOSTNAME_TO_IID.apply(hostName), vrfId)) { + if (staticRoutingHelper.addRoutingProtocolForVrf(LispUtil.hostnameToIid(hostName), vrfId)) { addStaticRouteToPublicInterface(hostName, vrfId); countPlusPlus(hostName, vrfId); } @@ -317,13 +305,16 @@ public class FlatOverlayManager { Map hostnamesAndIntfcs = resolveIntfcsByHosts(addressEp); LOG.trace("deleteStaticRoutingEntry -> addresEp locations: {}", addressEp); hostnamesAndIntfcs.entrySet().forEach(intfcsByHost -> { - LOG.trace("deleteStaticRoutingEntry -> Deleting addresEp: {} for interface: {}, on node: {}", addressEp.getKey(), intfcsByHost.getValue(), intfcsByHost.getKey()); + LOG.trace("deleteStaticRoutingEntry -> Deleting addresEp: {} for interface: {}, on node: {}", + addressEp.getKey(), intfcsByHost.getValue(), intfcsByHost.getKey()); Ipv4Address ipWithoutPrefix = ConfigManagerHelper.getInterfaceIp(addressEp); - if (!staticRoutingHelper.deleteSingleStaticRouteFromRoutingProtocol(intfcsByHost.getKey(), vrfId, routeId.get())) { + if (!staticRoutingHelper.deleteSingleStaticRouteFromRoutingProtocol(intfcsByHost.getKey(), vrfId, + routeId.get())) { LOG.warn("Failed to delete route ({} via {}) from vrf {} from host{}", ipWithoutPrefix, intfcsByHost.getValue(), vrfId, intfcsByHost); } else { - LOG.trace("deletedStaticRoutingEntry -> Deleted addresEp: {} for interface: {}, on node: {}", addressEp.getKey(), intfcsByHost.getValue(), intfcsByHost.getKey()); + LOG.trace("deletedStaticRoutingEntry -> Deleted addresEp: {} for interface: {}, on node: {}", + addressEp.getKey(), intfcsByHost.getValue(), intfcsByHost.getKey()); countMinusMinus(intfcsByHost.getKey(), vrfId); if (getRouteCount(intfcsByHost.getKey(), vrfId) <= 1) { LOG.info("deletedStaticRoutingEntry -> Removing route to public int from VRF {}", vrfId); @@ -337,7 +328,8 @@ public class FlatOverlayManager { } } LOG.trace("deleteStaticRoutingEntry -> flushPendingVppEndpoint for addresEp: {}", addressEp); - hostRelatedInfoContainer.deleteRouteFromIntfc(intfcsByHost.getKey(), intfcsByHost.getValue(), routeId.get()); + hostRelatedInfoContainer.deleteRouteFromIntfc(intfcsByHost.getKey(), intfcsByHost.getValue(), + routeId.get()); vppEndpointListener.flushPendingVppEndpoint(intfcsByHost.getKey(), intfcsByHost.getValue()); LOG.debug("Delete Static Route ({} via {}) from vrf {} from host {}", ipWithoutPrefix, intfcsByHost.getValue(), vrfId, intfcsByHost); diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/StaticRoutingHelper.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/StaticRoutingHelper.java index 12659c504..d0433300c 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/StaticRoutingHelper.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/flat/overlay/StaticRoutingHelper.java @@ -7,20 +7,11 @@ */ package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.flat.overlay; -import com.google.common.base.Preconditions; - import java.util.Collections; import java.util.List; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.LispStateManager; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispConfigCommandFailedException; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.HostRelatedInfoContainer; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PortInterfaces; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PortRouteState; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.VrfHolder; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.VrfState; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.Constants; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.IpAddressUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.GbpNetconfTransaction; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; @@ -49,7 +40,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class StaticRoutingHelper { +class StaticRoutingHelper { private static final Logger LOG = LoggerFactory.getLogger(StaticRoutingHelper.class); private HostRelatedInfoContainer hostRelatedInfoContainer = HostRelatedInfoContainer.getInstance(); @@ -70,11 +61,8 @@ public class StaticRoutingHelper { InstanceIdentifier iid = VppIidFactory .getRoutingInstanceIid(builder.getKey()); - if (GbpNetconfTransaction.netconfSyncedWrite(nodeIid, iid, builder.build(), - GbpNetconfTransaction.RETRY_COUNT)) { - return true; - } - return false; + return GbpNetconfTransaction.netconfSyncedWrite(nodeIid, iid, builder.build(), + GbpNetconfTransaction.RETRY_COUNT); } synchronized boolean addSingleStaticRouteInRoutingProtocol(Long routeId, String hostName, long portVrfId, @@ -116,8 +104,9 @@ public class StaticRoutingHelper { return false; } - public synchronized static boolean deleteSingleStaticRouteFromRoutingProtocol(String hostName, long vrfId, Long routeId) { - LOG.trace("deleteSingleStaticRouteFromRoutingProtocol -> deleting route. id: {}, vrf: {}, hostName: {}", routeId, vrfId, hostName); + synchronized boolean deleteSingleStaticRouteFromRoutingProtocol(String hostName, long vrfId, Long routeId) { + LOG.trace("deleteSingleStaticRouteFromRoutingProtocol -> deleting route. id: {}, vrf: {}, hostName: {}", + routeId, vrfId, hostName); String protocolName = Constants.ROUTING_PROTOCOL_NAME_PREFIX + vrfId; InstanceIdentifier iid = VppIidFactory @@ -131,7 +120,7 @@ public class StaticRoutingHelper { GbpNetconfTransaction.RETRY_COUNT); } - public static RoutingProtocolKey getRoutingProtocolName(long vrf) { + static RoutingProtocolKey getRoutingProtocolName(long vrf) { return new RoutingProtocolKey(Constants.ROUTING_PROTOCOL_NAME_PREFIX + vrf); } } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/EndpointHost.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/EndpointHost.java deleted file mode 100644 index 885d8802c..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/EndpointHost.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container; - -import org.opendaylight.controller.md.sal.binding.api.DataBroker; - -/** - * Created by Shakib Ahmed on 7/14/17. - */ -public class EndpointHost { - DataBroker hostDataBroker; - String hostName; - - public EndpointHost(DataBroker hostDataBroker, String hostName) { - this.hostDataBroker = hostDataBroker; - this.hostName = hostName; - } - - public DataBroker getHostDataBroker() { - return hostDataBroker; - } - - public String getHostName() { - return hostName; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/HostRelatedInfoContainer.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/HostRelatedInfoContainer.java index bb6a08a67..6d0295bf6 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/HostRelatedInfoContainer.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/HostRelatedInfoContainer.java @@ -7,44 +7,29 @@ */ package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PortInterfaces; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.LispState; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PhysicalInterfaces; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.VrfHolder; -import org.opendaylight.groupbasedpolicy.renderer.vpp.listener.VppEndpointListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.google.common.base.Preconditions; import com.google.common.collect.HashBasedTable; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.google.common.collect.Table; import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.Set; -/** - * Created by Shakib Ahmed on 7/13/17. - */ +import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PhysicalInterfaces; +import org.opendaylight.groupbasedpolicy.renderer.vpp.listener.VppEndpointListener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class HostRelatedInfoContainer { - private HashMap hostNameToLispStateMapper; private HashMap hostNameToPhysicalInterfacesMapper; - private HashMap hostNameToPortInterfacesMapper; - private HashMap hostNameToVrfHolderMapper; - //route IDs on an interface on a host + //route IDs on an interface on a host private Table> routeIdsByHostByVrf = HashBasedTable.create(); - + private static final HostRelatedInfoContainer INSTANCE = new HostRelatedInfoContainer(); private HostRelatedInfoContainer() { - this.hostNameToLispStateMapper = new HashMap<>(); this.hostNameToPhysicalInterfacesMapper = new HashMap<>(); - this.hostNameToPortInterfacesMapper = new HashMap<>(); - this.hostNameToVrfHolderMapper = new HashMap<>(); } public void addRouteToIntfc(String hostname, String intfName, Long routeId) { @@ -68,14 +53,15 @@ public class HostRelatedInfoContainer { } private static final Logger LOG = LoggerFactory.getLogger(VppEndpointListener.class); - + public boolean intfcIsBusy(String hostname, String intfName) { Preconditions.checkNotNull(hostname); Preconditions.checkNotNull(intfName); if (routeIdsByHostByVrf.get(hostname, intfName) != null) { int size = routeIdsByHostByVrf.get(hostname, intfName).size(); - LOG.trace("ISPORTBUSY -> hostname: {}, inftName: {}, entries: {}", hostname, intfName, routeIdsByHostByVrf.get(hostname, intfName)); - return (size == 0) ? false : true; + LOG.trace("ISPORTBUSY -> hostname: {}, inftName: {}, entries: {}", hostname, intfName, + routeIdsByHostByVrf.get(hostname, intfName)); + return size != 0; } LOG.trace("ISPORTBUSY -> not busy interface on hostname: {}, inftName: {}", hostname, intfName); return false; @@ -85,18 +71,6 @@ public class HostRelatedInfoContainer { return INSTANCE; } - public LispState getLispStateOfHost(String hostName) { - return hostNameToLispStateMapper.get(hostName); - } - - public void setLispStateOfHost(String hostName, LispState lispState) { - hostNameToLispStateMapper.put(hostName, lispState); - } - - public void deleteLispStateOfHost(String hostName) { - hostNameToLispStateMapper.remove(hostName); - } - public PhysicalInterfaces getPhysicalInterfaceState(String hostName) { return hostNameToPhysicalInterfacesMapper.get(hostName); } @@ -106,35 +80,7 @@ public class HostRelatedInfoContainer { } public void removePhysicalInterfaceStateOfHost(String hostName) { + //TODO should be called when host is removed hostNameToPhysicalInterfacesMapper.remove(hostName); } - - public PortInterfaces getPortInterfaceStateOfHost(String hostName) { - return hostNameToPortInterfacesMapper.computeIfAbsent(hostName, key -> new PortInterfaces()); - } - - public void setVirtualInterfaceStateOfHost(String hostName, PortInterfaces portInterfaces) { - hostNameToPortInterfacesMapper.put(hostName, portInterfaces); - } - - public void removeVirtualInterfaceStateOfHost(String hostName) { - hostNameToPortInterfacesMapper.remove(hostName); - } - - public VrfHolder getVrfStateOfHost(String hostName) { - return hostNameToVrfHolderMapper.get(hostName); - } - - public VrfHolder initializeVrfStateOfHost(String hostName) { - return hostNameToVrfHolderMapper.computeIfAbsent(hostName, key -> new VrfHolder()); - } - - public int getVrfStateOfHostCount(String hostName) { - VrfHolder vrfHolder = hostNameToVrfHolderMapper.get(hostName); - return vrfHolder != null ? vrfHolder.vrfStateCount() : 0; - } - - public void removeVrfStateOfHost(String hostName) { - hostNameToVrfHolderMapper.remove(hostName); - } } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/LispState.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/LispState.java deleted file mode 100644 index fa67c906e..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/LispState.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev171013.dp.subtable.grouping.local.mappings.local.mapping.Eid; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * Created by Shakib Ahmed on 3/29/17. - */ -public class LispState { - private boolean lispEnabled; - private boolean gpeEnabled; - private HashMap interfaceNameToLocatorSetNameMapper; - private Set mapServerIpAddressSet; - private Set mapResolverIpAddressSet; - private Set vniSet; - private Set eidSet; - - public LispState() { - lispEnabled = false; - interfaceNameToLocatorSetNameMapper = new HashMap<>(); - mapServerIpAddressSet = new HashSet<>(); - mapResolverIpAddressSet = new HashSet<>(); - vniSet = new HashSet<>(); - eidSet = new HashSet<>(); - } - - public boolean isLispEnabled() { - return lispEnabled; - } - - public void setLispEnabled(boolean lispEnabled) { - this.lispEnabled = lispEnabled; - } - - public boolean isGpeEnabled() { - return gpeEnabled; - } - - public void setGpeEnabled(boolean gpeEnabled) { - this.gpeEnabled = gpeEnabled; - } - - public String getLocIntfToLocSetNameMapping(String locatorIntf) { - return interfaceNameToLocatorSetNameMapper.get(locatorIntf); - } - - public void setLocIntfToLocSetNameMapping(String locIntfName, String locSetName) { - interfaceNameToLocatorSetNameMapper.put(locIntfName, locSetName); - } - - public Set> getLocatorSetEntry() { - return interfaceNameToLocatorSetNameMapper.entrySet(); - } - - public int getLocatorCount() { - return interfaceNameToLocatorSetNameMapper.size(); - } - - public boolean mapServerSetContains(IpAddress ip) { - return mapServerIpAddressSet.contains(ip); - } - - public void addInMapServerSet(IpAddress ip) { - mapServerIpAddressSet.add(ip); - } - - public boolean mapResolverSetContains(IpAddress ip) { - return mapResolverIpAddressSet.contains(ip); - } - - public void addInMapResolverSet(IpAddress ip) { - mapResolverIpAddressSet.add(ip); - } - - public boolean isVniConfigured(long vni) { - return vniSet.contains(vni); - } - - public int vniSetCount() { - return vniSet == null ? 0 : vniSet.size(); - } - - public void addInVniSet(long vni) { - vniSet.add(vni); - } - - public boolean eidSetContains(Eid eid) { - return eidSet.contains(eid); - } - - public int eidCount() { - return eidSet.size(); - } - - public void addEidInEidSet(Eid eid) { - eidSet.add(eid); - } - public void deleteEid(Eid eid) { - eidSet.remove(eid); - } - - public void deleteEidSet() { - eidSet.clear(); - } - - public void deleteVniSet() { - vniSet.clear(); - } - - public void deleteLocators() { - interfaceNameToLocatorSetNameMapper.clear(); - } - - @Override public String toString() { - return "LispState{" + "lispEnabled=" + lispEnabled + ", gpeEnabled=" + gpeEnabled - + ", interfaceNameToLocatorSetNameMapper=" + interfaceNameToLocatorSetNameMapper - + ", mapServerIpAddressSet=" + mapServerIpAddressSet + ", mapResolverIpAddressSet=" - + mapResolverIpAddressSet + ", vniSet=" + vniSet + ", eidSet=" + eidSet + '}'; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortInterfaces.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortInterfaces.java deleted file mode 100644 index d78f8e579..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortInterfaces.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Set; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class PortInterfaces { - private HashMap interfaceNameToPortRouteStateMapper; - private Set metadataInterfaceSet; - private static final Logger LOG = LoggerFactory.getLogger(PortInterfaces.class); - - - public PortInterfaces() { - interfaceNameToPortRouteStateMapper = new HashMap<>(); - metadataInterfaceSet = new HashSet<>(); - } - - public void initializeRoutingContextForInterface(String interfaceName, Long vrfId) { - interfaceNameToPortRouteStateMapper.put(interfaceName, new PortRouteState(vrfId)); - } - - public boolean isVrfConfiguredForInterface(String interfaceName) { - return interfaceNameToPortRouteStateMapper.containsKey(interfaceName); - } - - public PortRouteState getPortRouteState(String interfaceName) { - return interfaceNameToPortRouteStateMapper.get(interfaceName); - } - - public void addRouteToPortInterface(String interfaceName, String ipSubnetUuid, Ipv4Address ip, long routeId) { - interfaceNameToPortRouteStateMapper.get(interfaceName).addRouteInfo(ip, routeId, ipSubnetUuid); - } - - public boolean isInterfaceConfiguredForMetadata(String interfaceName) { - return metadataInterfaceSet.contains(interfaceName); - } - - public void addInterfaceInMetadataInterfaceSet(String interfaceName) { - metadataInterfaceSet.add(interfaceName); - } - - public Long getInterfaceVrfId(String interfaceName) { - PortRouteState portRouteState = interfaceNameToPortRouteStateMapper.get(interfaceName); - if (portRouteState != null) { - return portRouteState.getVrfId(); - } - return null; - } - - public void removePortInterface(String interfaceName) { - metadataInterfaceSet.remove(interfaceName); - interfaceNameToPortRouteStateMapper.remove(interfaceName); - } - - public boolean isRoutingContextForInterfaceInitialized(String interfaceName) { - return interfaceNameToPortRouteStateMapper.get(interfaceName) != null; - } - - @Override public String toString() { - return "PortInterfaces{" + "interfaceNameToPortRouteStateMapper=" + interfaceNameToPortRouteStateMapper - + ", metadataInterfaceSet=" + metadataInterfaceSet + '}'; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortRouteState.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortRouteState.java deleted file mode 100644 index d0b8c75ab..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/PortRouteState.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import com.google.common.collect.Lists; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -/** - * Created by Shakib Ahmed on 7/17/17. - */ -public class PortRouteState { - private HashMap ipToSubnetUuidMapper; - private HashMap ipToRouteIdMapper; - private Long vrfId; - - public PortRouteState(long vrfId) { - ipToRouteIdMapper = new HashMap<>(); - ipToSubnetUuidMapper = new HashMap<>(); - this.vrfId = vrfId; - } - - public long getVrfId() { - return this.vrfId; - } - - public void addRouteInfo(Ipv4Address ip, Long routeId, String ipSubnetUuid) { - ipToRouteIdMapper.put(ip, routeId); - ipToSubnetUuidMapper.put(ip, ipSubnetUuid); - } - - public Long getRouteIdOfIp(Ipv4Address interfaceIp) { - return ipToRouteIdMapper.get(interfaceIp); - } - - public String getSubnetUuidOfIp(Ipv4Address interfaceIp) { - return ipToSubnetUuidMapper.get(interfaceIp); - } - - public void removeIp(Ipv4Address ip) { - ipToRouteIdMapper.remove(ip); - ipToSubnetUuidMapper.remove(ip); - } - - public List getAllIps() { - return new ArrayList<>(ipToRouteIdMapper.keySet()); - } - - public boolean isPortRouteStateEmpty() { - return (ipToRouteIdMapper.size() == 0 && ipToSubnetUuidMapper.size() == 0); - } - - @Override public String toString() { - return "PortRouteState= {vrfId= " + vrfId + ", ipToSubnetUuidMapper= " + ipToSubnetUuidMapper + ", ipToRouteIdMapper= " + ipToRouteIdMapper + "}"; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/RouteState.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/RouteState.java deleted file mode 100644 index 326435e5a..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/RouteState.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; - -/** - * Created by Shakib Ahmed on 7/17/17. - */ -public class RouteState { - private HashMap ipToRouteIdMapper; - - public RouteState() { - ipToRouteIdMapper = new HashMap<>(); - } - - public boolean ipExists(Ipv4Address ip) { - return ipToRouteIdMapper.containsKey(ip); - } - - public void addIpToRouteIdInfo(Ipv4Address ip, Long routeId) { - ipToRouteIdMapper.put(ip, routeId); - } - - public long getRouteId(Ipv4Address ip) { - return ipToRouteIdMapper.get(ip); - } - - public void removeIp(Ipv4Address ip) { - ipToRouteIdMapper.remove(ip); - } - - public boolean hasNoIpRoutes() { - return ipToRouteIdMapper.isEmpty(); - } - - public List getAllIps() { - return new ArrayList<>(ipToRouteIdMapper.keySet()); - } - - @Override public String toString() { - return "RouteState{" + "ipToRouteIdMapper=" + ipToRouteIdMapper + '}'; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetHolder.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetHolder.java deleted file mode 100644 index 1132198a0..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetHolder.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import java.util.HashMap; - -public class SubnetHolder { - private HashMap subnetUuidToSubnetStateMapper; - - public SubnetHolder() { - subnetUuidToSubnetStateMapper = new HashMap<>(); - } - - public SubnetState getSubnetState(String subnetUuid) { - return subnetUuidToSubnetStateMapper.get(subnetUuid); - } - - public SubnetState initializeSubnetState (String subnetUuid) { - return subnetUuidToSubnetStateMapper.computeIfAbsent(subnetUuid, - key -> new SubnetState()); - } - - public void removeSubnetState(String subnetUuid) { - subnetUuidToSubnetStateMapper.remove(subnetUuid); - } - - public int subnetHolderCount() { - return subnetUuidToSubnetStateMapper.size(); - } - - public boolean subnetStateContains(String subnetUuid) { - return subnetUuidToSubnetStateMapper.get(subnetUuid) != null; - } - - @Override public String toString() { - return "SubnetHolder: { subnetUuidToSubnetStateMapper: {}" + subnetUuidToSubnetStateMapper + "}"; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetState.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetState.java deleted file mode 100644 index ca210306b..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/SubnetState.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.HashSet; -import java.util.Set; - -/** - * Created by Shakib Ahmed on 7/17/17. - */ -public class SubnetState { - private String gwInterfaceName; - private Set ipsInSubnet; - - private static final Logger LOG = LoggerFactory.getLogger(SubnetState.class); - - - public SubnetState() { - ipsInSubnet = new HashSet<>(); - } - - public boolean isGwConfigured() { - return gwInterfaceName != null && !gwInterfaceName.isEmpty(); - } - - public String getGwInterfaceName() { - return gwInterfaceName; - } - - public void setGwInterfaceName(String gwInterfaceName) { - this.gwInterfaceName = gwInterfaceName; - } - - public boolean hasIpsInSubnet() { - return !ipsInSubnet.isEmpty(); - } - - public void addNewIp(Ipv4Address portIp) { - ipsInSubnet.add(portIp); - LOG.trace("SubnetState -> added IP: {} to SubnetState: {}", portIp, this); - } - - public boolean isIpPresent(Ipv4Address portIp) { - return ipsInSubnet.contains(portIp); - } - - public void removeIp(Ipv4Address portIp) { - ipsInSubnet.remove(portIp); - LOG.trace("SubnetState -> removed IP: {} from SubnetState: {}", portIp, this); - } - - public Set getIpsInSubnet() { - return ipsInSubnet; - } - - @Override public String toString() { - return "SubnetState{" + "gwInterfaceName='" + gwInterfaceName + '\'' + ", ipsInSubnet=" + ipsInSubnet + '}'; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfHolder.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfHolder.java deleted file mode 100644 index eaea527ff..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfHolder.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import java.util.HashMap; - -/** - * Created by Shakib Ahmed on 7/17/17. - */ -public class VrfHolder { - HashMap vrfIdToVrfStateMapper; - - public VrfHolder() { - vrfIdToVrfStateMapper = new HashMap<>(); - } - - public VrfState getVrfState(Long vrfId) { - return vrfIdToVrfStateMapper.get(vrfId); - } - - public void initializeVrfState(Long vrfId, String routingProtocolName) { - vrfIdToVrfStateMapper.put(vrfId, new VrfState(routingProtocolName)); - } - - public VrfState removeVrfState(Long vrfId) { - return vrfIdToVrfStateMapper.remove(vrfId); - } - - public boolean hasVrf(Long vrfId) { - return vrfIdToVrfStateMapper.containsKey(vrfId); - } - - public int vrfStateCount() { - return vrfIdToVrfStateMapper.size(); - } - - @Override public String toString() { - return "VrfHolder{" + "vrfIdToVrfStateMapper=" + vrfIdToVrfStateMapper + '}'; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfState.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfState.java deleted file mode 100644 index 21cd1c559..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/info/container/states/VrfState.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states; - -import org.apache.commons.lang3.mutable.MutableLong; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; - -public class VrfState { - private SubnetHolder subnetHolder; - private String protocolName; - private MutableLong nextRouteId; - - public VrfState(String routingProtocolName) { - this.subnetHolder = new SubnetHolder(); - this.protocolName = routingProtocolName; - this.nextRouteId = new MutableLong(1L); - } - - public SubnetHolder getSubnetHolder() { - return subnetHolder; - } - - public String getProtocolName() { - return protocolName; - } - - public long getNextRouteId() { - return nextRouteId.getValue(); - } - - public void addNewPortIpInVrf(String portSubnetUuid, Ipv4Address portIp) { - subnetHolder.getSubnetState(portSubnetUuid).addNewIp(portIp); - nextRouteId.increment(); - } - - public void removePortIpFromVrf(String portSubnetUuid, Ipv4Address portIp) { - if (subnetHolder.subnetStateContains(portSubnetUuid)) { - subnetHolder.getSubnetState(portSubnetUuid).removeIp(portIp); - } - } - - public int subnetCount() { - return subnetHolder.subnetHolderCount(); - } - - @Override public String toString() { - return "VrfState{" + "subnetHolder=" + subnetHolder + ", protocolName='" + protocolName + '\'' - + ", nextRouteId=" + nextRouteId + '}'; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/LoopbackManager.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/LoopbackManager.java index 9721404cd..cd412a51e 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/LoopbackManager.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/LoopbackManager.java @@ -18,8 +18,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nonnull; - import org.apache.commons.lang3.tuple.Pair; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.LoopbackCommand; @@ -30,7 +28,7 @@ import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.AbstractLisp import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.LispCommandWrapper; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.LispStateCommandExecutor; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispConfigCommandFailedException; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispHelperArgumentException; +import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispArgumentException; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.flat.overlay.FlatOverlayManager; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.mappers.NeutronTenantToVniMapper; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.ConfigManagerHelper; @@ -39,7 +37,6 @@ import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util.IpAddressUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.GbpNetconfTransaction; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.LispUtil; -import org.opendaylight.groupbasedpolicy.renderer.vpp.util.MountedDataBrokerProvider; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; @@ -64,39 +61,39 @@ import org.slf4j.LoggerFactory; public class LoopbackManager { private static final Logger LOG = LoggerFactory.getLogger(LoopbackManager.class); - private ConfigManagerHelper loopbackManagerHelper; + private ConfigManagerHelper configManagerHelper; private Table> unnumberedCache = HashBasedTable.create(); private NeutronTenantToVniMapper neutronTenantToVniMapper = NeutronTenantToVniMapper.getInstance(); - Map GbpSubnetCache = new HashMap<>(); - Map> loopBackHostnames = new HashMap<>(); + private Map GbpSubnetCache = new HashMap<>(); + private Map> loopBackHostnames = new HashMap<>(); private class LoopBackDetails { - LoopbackCommand loopbackCommand; - String hostName; + private LoopbackCommand loopbackCommand; + private String hostName; - public LoopbackCommand getLoopbackCommand() { + LoopbackCommand getLoopbackCommand() { return loopbackCommand; } - public void setLoopbackCommand(LoopbackCommand loopbackCommand) { + void setLoopbackCommand(LoopbackCommand loopbackCommand) { this.loopbackCommand = loopbackCommand; } - public String getHostName() { + String getHostName() { return hostName; } - public void setHostName(String hostName) { + void setHostName(String hostName) { this.hostName = hostName; } } - public LoopbackManager(@Nonnull MountedDataBrokerProvider mountedDataBrokerProvider) { - this.loopbackManagerHelper = new ConfigManagerHelper(mountedDataBrokerProvider); + public LoopbackManager() { + this.configManagerHelper = new ConfigManagerHelper(); } public void createSimpleLoopbackIfNeeded(AddressEndpointWithLocation addressEp) { @@ -109,7 +106,7 @@ public class LoopbackManager { try { long vni = getVni(addressEp.getTenant().getValue()); long vrfId = vni; - String subnetUuid = loopbackManagerHelper.getSubnet(addressEp); + String subnetUuid = configManagerHelper.getSubnet(addressEp); GbpSubnet gbpSubnetInfo = GbpSubnetCache.get(subnetUuid); String loopIntfcName = Constants.GW_NAME_PREFIX + subnetUuid; @@ -121,8 +118,8 @@ public class LoopbackManager { GbpNetconfTransaction.RETRY_COUNT); if (!optionalLoopback.isPresent()) { LoopbackCommand simpleLoopbackCommand = - LoopbackCommandWrapper.simpleLoopbackPutCommand(loopIntfcName, vrfId, gbpSubnetInfo.getGatewayIp(), - gbpSubnetInfo.getCidr()); + LoopbackCommandWrapper.simpleLoopbackPutCommand(loopIntfcName, vrfId, + gbpSubnetInfo.getGatewayIp(), gbpSubnetInfo.getCidr()); if (createLoopbackInterface(hostname, simpleLoopbackCommand)) { addGpeEntry(VppIidFactory.getNetconfNodeIid(new NodeId(hostname)), gbpSubnetInfo, vni); addProxyArpRange(hostname, vrfId, gbpSubnetInfo); @@ -139,7 +136,8 @@ public class LoopbackManager { } } } else { - LOG.trace("Loopback already present on host: {} skip update for: {} - {} in vrf: {}", hostname, loopIntfcName, gbpSubnetInfo.getGatewayIp(), vrfId); + LOG.trace("Loopback already present on host: {} skip update for: {} - {} in vrf: {}", hostname, + loopIntfcName, gbpSubnetInfo.getGatewayIp(), vrfId); } } @@ -232,16 +230,19 @@ public class LoopbackManager { private boolean addUnnumberedInterface(String hostname, String neutronInterfaceName, String loopbackName) { InstanceIdentifier nodeIid = VppIidFactory.getNetconfNodeIid(new NodeId(hostname)); if (neutronInterfaceName.equalsIgnoreCase(loopbackName)) { - LOG.trace("No need to configure unnumbered for loopback: {} on host: {}. skip processing.", loopbackName, neutronInterfaceName); + LOG.trace("No need to configure unnumbered for loopback: {} on host: {}. skip processing.", loopbackName, + neutronInterfaceName); return true; } - LOG.trace("Adding unnumbered configuration hostname: {}, interface: {} use : {}", hostname, neutronInterfaceName, loopbackName); + LOG.trace("Adding unnumbered configuration hostname: {}, interface: {} use : {}", hostname, + neutronInterfaceName, loopbackName); boolean unnumberWritten = putUnnumberedInterface(nodeIid, neutronInterfaceName, loopbackName); if (unnumberWritten) { if (unnumberedCache.get(nodeIid.firstKeyOf(Node.class), loopbackName) != null) { unnumberedCache.get(nodeIid.firstKeyOf(Node.class), loopbackName).add(neutronInterfaceName); } else { - unnumberedCache.put(nodeIid.firstKeyOf(Node.class), loopbackName, Lists.newArrayList(neutronInterfaceName)); + unnumberedCache.put(nodeIid.firstKeyOf(Node.class), loopbackName, + Lists.newArrayList(neutronInterfaceName)); } LOG.debug("Added Interface {} as unnumbered for {}", loopbackName, neutronInterfaceName); } @@ -280,7 +281,7 @@ public class LoopbackManager { if (!putGpeEntry(iid, Constants.GPE_ENTRY_PREFIX + gbpSubnetInfo.getId() + "_2", secondREid, vni, vni)) { LOG.warn("Failed to write GPE entry: {}", Constants.GPE_ENTRY_PREFIX + gbpSubnetInfo.getId() + "_2"); } - } catch (LispHelperArgumentException e) { + } catch (LispArgumentException e) { e.printStackTrace(); } } @@ -314,18 +315,23 @@ public class LoopbackManager { if (loopBackDetails != null) { loopBackDetails.forEach(loopbackDetail -> { - InstanceIdentifier iid = VppIidFactory.getNetconfNodeIid(new NodeId(loopbackDetail.getHostName())); + InstanceIdentifier iid = + VppIidFactory.getNetconfNodeIid(new NodeId(loopbackDetail.getHostName())); if (deleteSpecificLoopback(iid, loopIntfcName)) { - if (!deleteProxyArpRange(loopbackDetail.getHostName(), loopbackDetail.getLoopbackCommand().getVrfId(), gbpSubnet)) { - LOG.warn("Failed to delete ProxyArpRange: {} on host: {}", gbpSubnet.getAllocationPools(), loopbackDetail.getHostName()); + if (!deleteProxyArpRange(loopbackDetail.getHostName(), + loopbackDetail.getLoopbackCommand().getVrfId(), gbpSubnet)) { + LOG.warn("Failed to delete ProxyArpRange: {} on host: {}", gbpSubnet.getAllocationPools(), + loopbackDetail.getHostName()); } if (!deleteGpeEntry(iid, Constants.GPE_ENTRY_PREFIX + gbpSubnet.getId() + "_1")) { - LOG.warn("Failed to delete gpeEntry: {} on host: {}", Constants.GPE_ENTRY_PREFIX + gbpSubnet.getId() + "_1", loopbackDetail.getHostName()); + LOG.warn("Failed to delete gpeEntry: {} on host: {}", + Constants.GPE_ENTRY_PREFIX + gbpSubnet.getId() + "_1", loopbackDetail.getHostName()); } if (!deleteGpeEntry(iid, Constants.GPE_ENTRY_PREFIX + gbpSubnet.getId() + "_2")) { - LOG.warn("Failed to delete gpeEntry: {} on host: {}", Constants.GPE_ENTRY_PREFIX + gbpSubnet.getId() + "_2", loopbackDetail.getHostName()); + LOG.warn("Failed to delete gpeEntry: {} on host: {}", + Constants.GPE_ENTRY_PREFIX + gbpSubnet.getId() + "_2", loopbackDetail.getHostName()); } if (!deleteGpeFeatureData(loopbackDetail.getHostName())) { LOG.warn("Failed to delete gpe configuration: {} on host: {}", loopbackDetail.getHostName()); diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/SubnetHostInfo.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/SubnetHostInfo.java deleted file mode 100644 index 62986f3a6..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/loopback/SubnetHostInfo.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.loopback; - -import com.google.common.base.Preconditions; - -/** - * Created by Shakib Ahmed on 5/16/17. - */ -public class SubnetHostInfo { - private String interfaceName; - private int portCount; - - public SubnetHostInfo(String interfaceName) { - this.interfaceName = interfaceName; - this.portCount = 0; - } - - public String getInterfaceName() { - return interfaceName; - } - - public void setInterfaceName(String interfaceName) { - this.interfaceName = interfaceName; - } - - public void incrementPortCount() { - portCount++; - } - - public void decrementPortCount() { - Preconditions.checkArgument(portCount > 0, "No port to decrement"); - portCount--; - } - - public int incrementAndGetPortCount() { - incrementPortCount(); - return portCount; - } - - public int decrementAndGetPortCount() { - decrementPortCount(); - return portCount; - } - - public int getPortCount() { - return portCount; - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/mappers/SubnetUuidToGbpSubnetMapper.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/mappers/SubnetUuidToGbpSubnetMapper.java deleted file mode 100644 index 68b314658..000000000 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/mappers/SubnetUuidToGbpSubnetMapper.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2017 Cisco Systems, Inc. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.mappers; - -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.GbpSubnet; - -import java.util.HashMap; - -/** - * Created by Shakib Ahmed on 5/3/17. - */ -public class SubnetUuidToGbpSubnetMapper { - - private HashMap subnetInformation; - - private static SubnetUuidToGbpSubnetMapper INSTANCE = new SubnetUuidToGbpSubnetMapper(); - - private SubnetUuidToGbpSubnetMapper() { - subnetInformation = new HashMap<>(); - } - - public static SubnetUuidToGbpSubnetMapper getInstance() { - return INSTANCE; - } - - public void addSubnetInfo(String subnetUuid, GbpSubnet subnetInfo) { - subnetInformation.put(subnetUuid, subnetInfo); - } - - public GbpSubnet getSubnetInfo(String subnetUuid) { - return subnetInformation.get(subnetUuid); - } - - public void removeSubnetInfo(String subnetUuid) { - subnetInformation.remove(subnetUuid); - } -} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/ConfigManagerHelper.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/ConfigManagerHelper.java index 67ad968da..0eb92614f 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/ConfigManagerHelper.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/ConfigManagerHelper.java @@ -14,26 +14,19 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.util.List; -import java.util.Map; -import java.util.Set; import javax.annotation.Nonnull; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.groupbasedpolicy.renderer.vpp.config.ConfigUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.iface.VppPathMapper; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.LispStateManager; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispNotFoundException; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.EndpointHost; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.HostRelatedInfoContainer; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.LispState; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PhysicalInterfaces; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.GbpNetconfTransaction; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.InterfaceUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.util.LispUtil; -import org.opendaylight.groupbasedpolicy.renderer.vpp.util.MountedDataBrokerProvider; -import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.EthernetCsmacd; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone; @@ -51,7 +44,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpo import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.network.containment.containment.NetworkDomainContainment; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.absolute.location.LocationType; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.absolute.location.location.type.ExternalLocationCase; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.child.endpoints.ChildEndpoint; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.relative.location.relative.locations.ExternalLocation; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.parent.child.endpoints.ParentEndpointChoice; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.parent.child.endpoints.parent.endpoint.choice.ParentEndpointCase; @@ -60,15 +52,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev170511.L3Context; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev170511.MacAddressType; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpoint; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev171013.HmacKeyType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev171013.dp.subtable.grouping.local.mappings.local.mapping.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev171013.hmac.key.grouping.HmacKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.Routing; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.RoutingBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -76,10 +62,8 @@ import org.slf4j.LoggerFactory; public class ConfigManagerHelper { private static final Logger LOG = LoggerFactory.getLogger(ConfigManagerHelper.class); - private MountedDataBrokerProvider mountedDataBrokerProvider; - public ConfigManagerHelper(MountedDataBrokerProvider mountedDataBrokerProvider) { - this.mountedDataBrokerProvider = mountedDataBrokerProvider; + public ConfigManagerHelper() { } @@ -109,7 +93,7 @@ public class ConfigManagerHelper { .getName(PhysicalInterfaces.PhysicalInterfaceType.PUBLIC); final Optional opInterfaceState = - GbpNetconfTransaction.read(LispUtil.HOSTNAME_TO_IID.apply(hostName), LogicalDatastoreType.OPERATIONAL, + GbpNetconfTransaction.read(LispUtil.hostnameToIid(hostName), LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(InterfacesState.class), GbpNetconfTransaction.RETRY_COUNT); if (!opInterfaceState.isPresent()) { @@ -126,7 +110,7 @@ public class ConfigManagerHelper { } final Optional opInterfaces = - GbpNetconfTransaction.read(LispUtil.HOSTNAME_TO_IID.apply(hostName), LogicalDatastoreType.CONFIGURATION, + GbpNetconfTransaction.read(LispUtil.hostnameToIid(hostName), LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Interfaces.class), GbpNetconfTransaction.RETRY_COUNT); @@ -226,14 +210,14 @@ public class ConfigManagerHelper { return false; } - final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.Ipv4 ipv4 = - augIntf.getIpv4(); + final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.Ipv4 + ipv4 = augIntf.getIpv4(); if (ipv4 == null) { return false; } - final List addresses = - ipv4.getAddress(); + final List + addresses = ipv4.getAddress(); if (addresses == null || addresses.isEmpty()) { return false; } @@ -244,7 +228,7 @@ public class ConfigManagerHelper { public String getLispCpRlocInterfaceName(@Nonnull String hostName) { List operationalInterfaceList = - InterfaceUtil.getOperationalInterfaces(LispUtil.HOSTNAME_TO_IID.apply(hostName)); + InterfaceUtil.getOperationalInterfaces(LispUtil.hostnameToIid(hostName)); if (operationalInterfaceList == null) { return null; @@ -333,16 +317,6 @@ public class ConfigManagerHelper { } } - public String getFirstLocatorSetName(LispState lispState) { - Set> locatorSet = lispState.getLocatorSetEntry(); - Preconditions.checkNotNull(locatorSet, "No locator set found!"); - if (!locatorSet.iterator().hasNext()) { - return null; - } - - return locatorSet.iterator().next().getValue(); - } - public Optional getInterfaceName(AddressEndpointWithLocation addedEp) { ExternalLocationCase epLoc = resolveAndValidateLocation(addedEp); String interfacePath = epLoc.getExternalNodeConnector(); @@ -360,37 +334,8 @@ public class ConfigManagerHelper { return LispUtil.toHmacKey(HmacKeyType.Sha196Key, LispStateManager.DEFAULT_XTR_KEY); } - public String getPhysicalAddress(AddressEndpointWithLocation addressEp) { - String physicalAddress = null; - - if (addressEp.getAddressType().equals(MacAddressType.class)) { - physicalAddress = addressEp.getAddress(); - } else { - List childEndpoints = addressEp.getChildEndpoint(); - for (ChildEndpoint childEndpoint : childEndpoints) { - if (childEndpoint.getAddressType().equals(MacAddressType.class)) { - physicalAddress = childEndpoint.getAddress(); - break; - } - } - } - return Preconditions.checkNotNull(physicalAddress, "Physical address not found " + - "in address endpoint: " + addressEp); - } - - public boolean hasRelativeLocations(AddressEndpointWithLocation addedEp) { - return addedEp.getRelativeLocations() != null && addedEp.getRelativeLocations().getExternalLocation() != null; - } public static boolean isMetadataPort(AddressEndpointWithLocation addressEp) { return IpAddressUtil.isMetadataIp(getInterfaceIp(addressEp)); } - - public String getGatewayInterfaceName(String gwNamePrefix, String subnetUuid) { - return gwNamePrefix + subnetUuid; - } - - public Routing getRouting(long vrf) { - return new RoutingBuilder().setIpv4VrfId(vrf).build(); - } } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/Constants.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/Constants.java index 3bfa479a5..3d25b631a 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/Constants.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/Constants.java @@ -7,19 +7,12 @@ */ package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util; - -/** - * Created by Shakib Ahmed on 7/20/17. - */ public class Constants { public static final String METADATA_IP = "169.254.169.254"; - public static final String METADATA_SUBNET_UUID = "local-metadata-subnet"; public static final String ROUTING_PROTOCOL_NAME_PREFIX = "static-routing-"; public static final String DEFAULT_ROUTING_DESCRIPTION = "Static route added from GBP for flat L3 overlay"; public static final String GW_NAME_PREFIX = "loop-"; public static final String GPE_ENTRY_PREFIX = "gpe-entry-"; - public static final String DUMMY_PROTOCOL_BRIDGE_DOMAIN = "bridge-domain-dummy-protocol"; public static final String TENANT_INTERFACE = "tenant-interface"; - public static final String PUBLIC_SUBNET_UUID = "public-interface-subnet-uuid"; } diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/IpAddressUtil.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/IpAddressUtil.java index 4295d6530..00c7043df 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/IpAddressUtil.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/lisp/util/IpAddressUtil.java @@ -9,25 +9,23 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.util; import com.google.common.net.InetAddresses; + +import java.net.InetAddress; +import java.net.UnknownHostException; + import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.net.util.SubnetUtils; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispHelperArgumentException; +import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.exception.LispArgumentException; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.net.InetAddress; -import java.net.UnknownHostException; - -/** - * Created by Shakib Ahmed on 5/3/17. - */ public class IpAddressUtil { private static final Logger LOG = LoggerFactory.getLogger(IpAddressUtil.class); - public static boolean isMetadataIp(Ipv4Address ipv4Address) { + static boolean isMetadataIp(Ipv4Address ipv4Address) { return ipv4Address.getValue().equals(Constants.METADATA_IP); } @@ -39,7 +37,7 @@ public class IpAddressUtil { return new ImmutablePair<>(lowIp, highIp); } - public static Pair getSmallerSubnet(Ipv4Prefix ipv4Prefix) throws LispHelperArgumentException { + public static Pair getSmallerSubnet(Ipv4Prefix ipv4Prefix) throws LispArgumentException { String cidrNotion = ipv4Prefix.getValue(); SubnetUtils subnetUtils = new SubnetUtils(cidrNotion); @@ -62,7 +60,7 @@ public class IpAddressUtil { secondSubnet = secondAddress + "/" + maskLen; } catch (UnknownHostException e) { LOG.warn("Failed to translate IP address " + cidrNotion+ " to smaller subnet"); - throw new LispHelperArgumentException("Invalid argument for subnet " + cidrNotion); + throw new LispArgumentException("Invalid argument for subnet " + cidrNotion); } return new ImmutablePair<>(new Ipv4Prefix(firstSubnet), new Ipv4Prefix(secondSubnet)); } @@ -71,7 +69,7 @@ public class IpAddressUtil { return new Ipv4Prefix(ipv4Address.getValue() + "/32"); } - public static boolean ipInRange(Ipv4Address ip, String startIpStr, String endIpStr) { + static boolean ipInRange(Ipv4Address ip, String startIpStr, String endIpStr) { String ipStr = ip.getValue(); int startLim = InetAddresses.coerceToInteger(InetAddresses.forString(startIpStr)); @@ -85,15 +83,15 @@ public class IpAddressUtil { return (startUnsigned <= ipNumUnsigned) && (ipNumUnsigned <= endUnsigned); } - public static String startIpOfSubnet(String cidrNotion) { + static String startIpOfSubnet(String cidrNotion) { return new SubnetUtils(cidrNotion).getInfo().getLowAddress(); } - public static String endIpOfSubnet(String cidrNotion) { + static String endIpOfSubnet(String cidrNotion) { return new SubnetUtils(cidrNotion).getInfo().getHighAddress(); } - public static int maskLen(String cidrNotion) { + static int maskLen(String cidrNotion) { return Integer.valueOf(cidrNotion.split("/")[1]); } -} \ No newline at end of file +} diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/listener/VppEndpointListener.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/listener/VppEndpointListener.java index d7c53735b..12fdee198 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/listener/VppEndpointListener.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/listener/VppEndpointListener.java @@ -8,6 +8,13 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.listener; +import com.google.common.base.Preconditions; +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Table; +import com.google.common.eventbus.EventBus; + +import javax.annotation.Nonnull; + import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; @@ -15,7 +22,6 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.groupbasedpolicy.renderer.vpp.config.ConfigUtil; import org.opendaylight.groupbasedpolicy.renderer.vpp.event.VppEndpointConfEvent; import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.HostRelatedInfoContainer; -import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states.PortInterfaces; import org.opendaylight.groupbasedpolicy.util.DataTreeChangeHandler; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.Config; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpoint; @@ -23,13 +29,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Preconditions; -import com.google.common.collect.HashBasedTable; -import com.google.common.collect.Table; -import com.google.common.eventbus.EventBus; - -import javax.annotation.Nonnull; - public class VppEndpointListener extends DataTreeChangeHandler { private static final Logger LOG = LoggerFactory.getLogger(VppEndpointListener.class); @@ -57,6 +56,7 @@ public class VppEndpointListener extends DataTreeChangeHandler { InstanceIdentifier rootIdentifier) { if (ConfigUtil.getInstance().isL3FlatEnabled()) { VppEndpoint vppEndpointBefore = rootNode.getDataBefore(); + Preconditions.checkNotNull(vppEndpointBefore, "VppEndpoint cannot be null on delete operation."); LOG.trace("onDelete -> Vppendpoint deleted: {}", vppEndpointBefore); Preconditions.checkArgument(vppEndpointBefore.getVppNodeId() != null); Preconditions.checkArgument(vppEndpointBefore.getVppInterfaceName() != null); diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/LispUtil.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/LispUtil.java index 526025a16..6d0700f52 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/LispUtil.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/LispUtil.java @@ -31,19 +31,14 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import com.google.common.base.Function; - -/** - * Created by Shakib Ahmed on 3/21/17. - */ public class LispUtil { private LispUtil() { } - public static Function> HOSTNAME_TO_IID = host -> { - return VppIidFactory.getNetconfNodeIid(new NodeId(host)); - }; + public static InstanceIdentifier hostnameToIid(String hostName) { + return VppIidFactory.getNetconfNodeIid(new NodeId(hostName)); + } public static Eid toEid(Address address, long vni, Class addressType) { EidDom eidDom = new EidDom(); diff --git a/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManagerTest.java b/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManagerTest.java index 6ea71dab9..ef86f4675 100644 --- a/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManagerTest.java +++ b/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/iface/InterfaceManagerTest.java @@ -102,7 +102,7 @@ public class InterfaceManagerTest extends CustomDataBrokerTest { dataBroker = getDataBroker(); Mockito.when(mountedDataProviderMock.resolveDataBrokerForMountPoint(Mockito.any(InstanceIdentifier.class))) .thenReturn(Optional.of(mountPointDataBroker)); - manager = new InterfaceManager(mountedDataProviderMock, dataBroker, flatOverlayManager); + manager = new InterfaceManager(mountedDataProviderMock, dataBroker); } @Test diff --git a/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/VppRendererPolicyManagerTest.java b/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/VppRendererPolicyManagerTest.java index 5c24f4289..0f913d282 100644 --- a/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/VppRendererPolicyManagerTest.java +++ b/renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/VppRendererPolicyManagerTest.java @@ -163,10 +163,10 @@ public class VppRendererPolicyManagerTest extends CustomDataBrokerTest { Mockito.when(mountedDataProviderMock.resolveDataBrokerForMountPoint(Mockito.any(InstanceIdentifier.class))) .thenReturn(Optional.of(mountPointDataBroker)); vppEndpointListener = new VppEndpointListener(dataBroker, dtoEventBus); - lispStateManager = new LispStateManager(mountedDataProviderMock); - loopbackManager = new LoopbackManager(mountedDataProviderMock); + lispStateManager = new LispStateManager(); + loopbackManager = new LoopbackManager(); flatOverlayManager = new FlatOverlayManager(dataBroker, mountedDataProviderMock, vppEndpointListener); - ifaceManager = new InterfaceManager(mountedDataProviderMock, dataBroker, flatOverlayManager); + ifaceManager = new InterfaceManager(mountedDataProviderMock, dataBroker); aclManager = new AclManager(mountedDataProviderMock, ifaceManager); natManager = new CentralizedNatImpl(dataBroker); routingManager = new RoutingManager(dataBroker, mountedDataProviderMock); -- 2.36.6