import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.opendaylight.netvirt.elan.internal.ElanServiceProvider;
import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.netvirt.elanmanager.api.IElanService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInterface;
private String interfaceName;
private static final Logger logger = LoggerFactory.getLogger(EtreeInterfaceDelete.class);
private IElanService elanProvider;
- private ElanUtils elanUtils;
+ //private ElanUtils elanUtils;
public void setElanProvider(IElanService elanServiceProvider) {
this.elanProvider = elanServiceProvider;
}
- public void setElanUtils(ElanUtils elanUtils) {
+ /*public void setElanUtils(ElanUtils elanUtils) {
this.elanUtils = elanUtils;
- }
+ }*/
@Override
protected Object doExecute() {
try {
logger.debug("Deleting EtreeInterface command" + "\t" + etreeName + "\t" + interfaceName + "\t");
- ElanInterface existingInterface = elanUtils.getElanInterfaceByElanInterfaceName(interfaceName);
+ ElanInterface existingInterface =
+ ElanServiceProvider.getElanutils().getElanInterfaceByElanInterfaceName(interfaceName);
if (existingInterface == null || existingInterface.getAugmentation(EtreeInterface.class) == null) {
System.out.println("Etree interface doesn't exist or isn't configured as etree: " + interfaceName);
}
import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
+import org.opendaylight.netvirt.elan.internal.ElanServiceProvider;
import org.opendaylight.netvirt.elan.utils.ElanCLIUtils;
import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.netvirt.elanmanager.api.IElanService;
private IInterfaceManager interfaceManager;
public static int MAX_LENGTH = 31;
private IElanService elanProvider;
- private ElanUtils elanUtils;
+ //private ElanUtils elanUtils;
public static boolean isDisplay = true;
public void setElanProvider(IElanService elanServiceProvider) {
this.interfaceManager = interfaceManager;
}
- public void setElanUtils(ElanUtils elanUtils) {
+ /*public void setElanUtils(ElanUtils elanUtils) {
this.elanUtils = elanUtils;
- }
+ }*/
@Override
protected Object doExecute() {
if (!interfaceList.isEmpty()) {
for (String elanInterface : interfaceList) {
InterfaceInfo interfaceInfo = interfaceManager.getInterfaceInfo(elanInterface);
- EtreeInterface etreeInterface = elanUtils.getEtreeInterfaceByElanInterfaceName(elanInterface);
+ EtreeInterface etreeInterface =
+ ElanServiceProvider.getElanutils().getEtreeInterfaceByElanInterfaceName(elanInterface);
if (interfaceInfo != null) {
System.out.println(String.format(ElanCLIUtils.ETREE_INTERFACE_CLI_FORMAT,
elanInstance.getElanInstanceName() + "/" + elanInstance.getElanTag(),
import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils;
import org.opendaylight.netvirt.elan.utils.ElanClusterUtils;
import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
+import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.netvirt.elanmanager.utils.ElanL2GwCacheUtils;
import org.opendaylight.genius.datastoreutils.AsyncClusteredDataChangeListenerBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.ElanDpnInterfaces;
private final ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils;
public ElanDpnInterfaceClusteredListener(DataBroker broker, EntityOwnershipService entityOwnershipService,
- ElanL2GatewayUtils elanL2GatewayUtils,
- ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils) {
+ ElanUtils elanUtils) {
super(DpnInterfaces.class, ElanDpnInterfaceClusteredListener.class);
this.broker = broker;
this.entityOwnershipService = entityOwnershipService;
- this.elanL2GatewayUtils = elanL2GatewayUtils;
- this.elanL2GatewayMulticastUtils = elanL2GatewayMulticastUtils;
+ this.elanL2GatewayUtils = elanUtils.getElanL2GatewayUtils();
+ this.elanL2GatewayMulticastUtils = elanUtils.getElanL2GatewayMulticastUtils();
}
public void init() {
private final DataBroker broker;
private final IdManagerService idManager;
- private final ElanInterfaceManager elanInterfaceManager;
private final IInterfaceManager interfaceManager;
- private final ElanUtils elanUtils;
+ private final ElanInterfaceManager elanInterfaceManager;
+ private ElanUtils elanUtils;
public ElanInstanceManager(final DataBroker dataBroker, final IdManagerService managerService,
final ElanInterfaceManager elanInterfaceManager,
- final IInterfaceManager interfaceManager, ElanUtils elanUtils) {
+ final IInterfaceManager interfaceManager) {
super(ElanInstance.class, ElanInstanceManager.class);
this.broker = dataBroker;
this.idManager = managerService;
this.elanInterfaceManager = elanInterfaceManager;
this.interfaceManager = interfaceManager;
+ }
+
+ public void setElanUtils(ElanUtils elanUtils) {
this.elanUtils = elanUtils;
}
private final IInterfaceManager interfaceManager;
private final IdManagerService idManager;
private final ElanForwardingEntriesHandler elanForwardingEntriesHandler;
- private final ElanL2GatewayUtils elanL2GatewayUtils;
- private final ElanUtils elanUtils;
+ private ElanL2GatewayUtils elanL2GatewayUtils;
+ private ElanUtils elanUtils;
private static final long waitTimeForSyncInstall = Long.getLong("wait.time.sync.install", 300L);
final IdManagerService managerService,
final IMdsalApiManager mdsalApiManager,
IInterfaceManager interfaceManager,
- final ElanForwardingEntriesHandler elanForwardingEntriesHandler,
- final ElanL2GatewayUtils elanL2GatewayUtils, ElanUtils elanUtils) {
+ final ElanForwardingEntriesHandler elanForwardingEntriesHandler) {
super(ElanInterface.class, ElanInterfaceManager.class);
this.broker = dataBroker;
this.idManager = managerService;
this.mdsalManager = mdsalApiManager;
this.interfaceManager = interfaceManager;
this.elanForwardingEntriesHandler = elanForwardingEntriesHandler;
- this.elanL2GatewayUtils = elanL2GatewayUtils;
+ }
+
+ public void setElanUtils(ElanUtils elanUtils) {
this.elanUtils = elanUtils;
+ this.elanL2GatewayUtils = elanUtils.getElanL2GatewayUtils();
+ this.elanForwardingEntriesHandler.setElanUtils(elanUtils);
}
public void init() {
private final ElanUtils elanUtils;
private final ElanL2GatewayUtils elanL2GatewayUtils;
- public ElanPacketInHandler(DataBroker dataBroker, final IInterfaceManager interfaceManager, ElanUtils elanUtils,
- ElanL2GatewayUtils elanL2GatewayUtils) {
+ public ElanPacketInHandler(DataBroker dataBroker, final IInterfaceManager interfaceManager, ElanUtils elanUtils) {
broker = dataBroker;
this.interfaceManager = interfaceManager;
this.elanUtils = elanUtils;
- this.elanL2GatewayUtils = elanL2GatewayUtils;
+ this.elanL2GatewayUtils = elanUtils.getElanL2GatewayUtils();
}
@Override
import java.util.concurrent.Future;
import java.util.function.BiFunction;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.genius.interfacemanager.exceptions.InterfaceAlreadyExistsException;
import org.opendaylight.genius.interfacemanager.globals.IfmConstants;
import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
import org.opendaylight.genius.mdsalutil.MDSALUtil;
import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
+import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils;
+import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
+import org.opendaylight.netvirt.elan.l2gw.utils.L2GatewayConnectionUtils;
import org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitor;
import org.opendaylight.netvirt.elan.utils.ElanConstants;
import org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlan;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInstance;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInstanceBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInterface;
private final ElanBridgeManager bridgeMgr;
private final DataBroker broker;
private final ElanStatusMonitor elanStatusMonitor;
- private final ElanUtils elanUtils;
+ private static ElanUtils elanUtils;
private boolean generateIntBridgeMac = true;
public ElanServiceProvider(IdManagerService idManager, IInterfaceManager interfaceManager,
- ElanInstanceManager elanInstanceManager, ElanBridgeManager bridgeMgr, DataBroker broker,
+ ElanInstanceManager elanInstanceManager, ElanBridgeManager bridgeMgr,
+ DataBroker dataBroker,
+ ElanInterfaceManager elanInterfaceManager,
ElanStatusMonitor elanStatusMonitor, ElanUtils elanUtils) {
this.idManager = idManager;
this.interfaceManager = interfaceManager;
this.elanInstanceManager = elanInstanceManager;
this.bridgeMgr = bridgeMgr;
- this.broker = broker;
+ this.broker = dataBroker;
this.elanStatusMonitor = elanStatusMonitor;
this.elanUtils = elanUtils;
+ elanInstanceManager.setElanUtils(elanUtils);
+ elanInterfaceManager.setElanUtils(elanUtils);
+ }
+
+ public static ElanUtils getElanutils() {
+ return ElanServiceProvider.elanUtils;
}
public void init() {
import org.opendaylight.genius.datastoreutils.AsyncClusteredDataChangeListenerBase;
import org.opendaylight.genius.utils.hwvtep.HwvtepUtils;
import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
+import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.netvirt.elanmanager.utils.ElanL2GwCacheUtils;
import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayDevice;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
private final DataBroker broker;
private final ElanL2GatewayUtils elanL2GatewayUtils;
- public HwvtepLocalUcastMacListener(DataBroker broker, ElanL2GatewayUtils elanL2GatewayUtils) {
+ public HwvtepLocalUcastMacListener(DataBroker broker, ElanUtils elanUtils) {
super(LocalUcastMacs.class, HwvtepLocalUcastMacListener.class);
this.broker = broker;
- this.elanL2GatewayUtils = elanL2GatewayUtils;
+ this.elanL2GatewayUtils = elanUtils.getElanL2GatewayUtils();
}
public void init() {
import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
import org.opendaylight.netvirt.elan.l2gw.utils.L2GatewayConnectionUtils;
import org.opendaylight.netvirt.elan.utils.ElanClusterUtils;
+import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.netvirt.elanmanager.utils.ElanL2GwCacheUtils;
import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayDevice;
import org.opendaylight.netvirt.neutronvpn.api.l2gw.utils.L2GatewayCacheUtils;
* the data broker
* @param itmRpcService
* @param entityOwnershipService
- * @param l2GatewayConnectionUtils
+ * @param elanUtils
*/
public HwvtepPhysicalSwitchListener(final DataBroker dataBroker, ItmRpcService itmRpcService,
EntityOwnershipService entityOwnershipService,
- L2GatewayConnectionUtils l2GatewayConnectionUtils) {
+ ElanUtils elanUtils) {
super(PhysicalSwitchAugmentation.class, HwvtepPhysicalSwitchListener.class);
this.dataBroker = dataBroker;
this.itmRpcService = itmRpcService;
this.entityOwnershipService = entityOwnershipService;
- this.l2GatewayConnectionUtils = l2GatewayConnectionUtils;
+ this.l2GatewayConnectionUtils = elanUtils.getL2GatewayConnectionUtils();
}
public void init() {
import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
import org.opendaylight.netvirt.elan.l2gw.utils.L2GatewayConnectionUtils;
import org.opendaylight.netvirt.elan.utils.ElanClusterUtils;
+import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayDevice;
import org.opendaylight.netvirt.neutronvpn.api.l2gw.utils.L2GatewayCacheUtils;
import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundConstants;
private final ElanL2GatewayUtils elanL2GatewayUtils;
private final EntityOwnershipService entityOwnershipService;
- public HwvtepTerminationPointListener(DataBroker broker, ElanL2GatewayUtils elanL2GatewayUtils,
+ public HwvtepTerminationPointListener(DataBroker broker, ElanUtils elanUtils,
EntityOwnershipService entityOwnershipService) {
super(TerminationPoint.class, HwvtepTerminationPointListener.class);
this.broker = broker;
- this.elanL2GatewayUtils = elanL2GatewayUtils;
+ this.elanL2GatewayUtils = elanUtils.getElanL2GatewayUtils();
this.entityOwnershipService = entityOwnershipService;
registerListener();
logger.debug("created HwvtepTerminationPointListener");
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.binding.api.ClusteredDataChangeListener;
import org.opendaylight.netvirt.elan.l2gw.utils.L2GatewayConnectionUtils;
-import org.opendaylight.netvirt.elan.internal.ElanInstanceManager;
import org.opendaylight.genius.datastoreutils.AsyncClusteredDataChangeListenerBase;
+import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712.l2gateway.connections.attributes.L2gatewayConnections;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712.l2gateway.connections.attributes.l2gatewayconnections.L2gatewayConnection;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
private ListenerRegistration<DataChangeListener> listenerRegistration;
private final DataBroker broker;
- private final ElanInstanceManager elanInstanceManager;
private final L2GatewayConnectionUtils l2GatewayConnectionUtils;
- public L2GatewayConnectionListener(final DataBroker db, ElanInstanceManager elanInstanceManager,
- L2GatewayConnectionUtils l2GatewayConnectionUtils) {
+ public L2GatewayConnectionListener(final DataBroker db,
+ ElanUtils elanUtils) {
super(L2gatewayConnection.class, L2GatewayConnectionListener.class);
broker = db;
- this.elanInstanceManager = elanInstanceManager;
- this.l2GatewayConnectionUtils = l2GatewayConnectionUtils;
+ this.l2GatewayConnectionUtils = elanUtils.getL2GatewayConnectionUtils();
registerListener(db);
}
*/
package org.opendaylight.netvirt.elan.l2gw.utils;
-import java.math.BigInteger;
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.SettableFuture;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentMap;
-
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.netvirt.elan.internal.ElanInterfaceManager;
-import org.opendaylight.netvirt.elan.utils.ElanUtils;
-import org.opendaylight.netvirt.elan.internal.ElanInstanceManager;
-import org.opendaylight.netvirt.elan.utils.ElanConstants;
import org.opendaylight.genius.datastoreutils.DataStoreJobCoordinator;
-import org.opendaylight.netvirt.elan.l2gw.jobs.HwvtepDeviceMcastMacUpdateJob;
-import org.opendaylight.netvirt.elanmanager.utils.ElanL2GwCacheUtils;
import org.opendaylight.genius.mdsalutil.MDSALUtil;
-import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayDevice;
import org.opendaylight.genius.utils.hwvtep.HwvtepSouthboundUtils;
import org.opendaylight.genius.utils.hwvtep.HwvtepUtils;
+import org.opendaylight.netvirt.elan.internal.ElanInstanceManager;
+import org.opendaylight.netvirt.elan.internal.ElanInterfaceManager;
+import org.opendaylight.netvirt.elan.l2gw.jobs.HwvtepDeviceMcastMacUpdateJob;
+import org.opendaylight.netvirt.elan.utils.ElanConstants;
+import org.opendaylight.netvirt.elan.utils.ElanUtils;
+import org.opendaylight.netvirt.elanmanager.utils.ElanL2GwCacheUtils;
+import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayDevice;
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.yang.types.rev130715.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp.rev160428.DesignatedSwitchesForExternalTunnels;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp.rev160428.designated.switches._for.external.tunnels.DesignatedSwitchForTunnel;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp.rev160428.designated.switches._for.external.tunnels.DesignatedSwitchForTunnelKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.dpn.interfaces.elan.dpn.interfaces.list.DpnInterfaces;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepLogicalSwitchRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepPhysicalLocatorAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacsKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSetBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp.rev160428.DesignatedSwitchesForExternalTunnels;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp.rev160428.designated.switches._for.external.tunnels.DesignatedSwitchForTunnel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.dhcp.rev160428.designated.switches._for.external.tunnels.DesignatedSwitchForTunnelKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.dpn.interfaces.elan.dpn.interfaces.list.DpnInterfaces;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
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.collect.Lists;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
-
/**
* The utility class to handle ELAN L2 Gateway related to multicast.
*/
/** The elan interface manager. */
private final ElanInterfaceManager elanInterfaceManager;
- private final ElanL2GatewayUtils elanL2GatewayUtils;
-
private final ElanUtils elanUtils;
public ElanL2GatewayMulticastUtils(DataBroker broker, ElanInstanceManager elanInstanceManager,
- ElanInterfaceManager elanInterfaceManager, ElanL2GatewayUtils elanL2GatewayUtils,
+ ElanInterfaceManager elanInterfaceManager,
ElanUtils elanUtils) {
this.broker = broker;
this.elanInstanceManager = elanInstanceManager;
this.elanInterfaceManager = elanInterfaceManager;
- this.elanL2GatewayUtils = elanL2GatewayUtils;
this.elanUtils = elanUtils;
}
L2GatewayDevice device, List<IpAddress> dpnsTepIps,
List<IpAddress> l2GwDevicesTepIps) {
NodeId nodeId = new NodeId(device.getHwvtepNodeId());
- String logicalSwitchName = ElanL2GatewayUtils.getLogicalSwitchFromElan(elanName);
+ String logicalSwitchName = "";//ElanL2GatewayUtils.getLogicalSwitchFromElan(elanName);
ArrayList<IpAddress> remoteTepIps = new ArrayList<>(l2GwDevicesTepIps);
remoteTepIps.remove(device.getTunnelIp());
private List<IpAddress> getAllTepIpsOfDpns(L2GatewayDevice l2GwDevice, List<DpnInterfaces> dpns) {
List<IpAddress> tepIps = new ArrayList<>();
for (DpnInterfaces dpn : dpns) {
- IpAddress internalTunnelIp = elanL2GatewayUtils.getSourceDpnTepIp(dpn.getDpId(),
- new NodeId(l2GwDevice.getHwvtepNodeId()));
+ IpAddress internalTunnelIp = null;//elanL2GatewayUtils.getSourceDpnTepIp(dpn.getDpId(),
+ //new NodeId(l2GwDevice.getHwvtepNodeId()));
if (internalTunnelIp != null) {
tepIps.add(internalTunnelIp);
}
DesignatedSwitchForTunnel desgSwitch = getDesignatedSwitchForExternalTunnel(l2GwDevice.getTunnelIp(),
elanInstanceName);
if (desgSwitch != null) {
- tepIp = elanL2GatewayUtils.getSourceDpnTepIp(BigInteger.valueOf(desgSwitch.getDpId()),
- new NodeId(l2GwDevice.getHwvtepNodeId()));
+ tepIp = null;//elanL2GatewayUtils.getSourceDpnTepIp(BigInteger.valueOf(desgSwitch.getDpId()),
+ //new NodeId(l2GwDevice.getHwvtepNodeId()));
}
return tepIp;
}
private final ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils;
public L2GatewayConnectionUtils(DataBroker dataBroker, ElanInstanceManager elanInstanceManager,
- ElanL2GatewayUtils elanL2GatewayUtils,
- EntityOwnershipService entityOwnershipService, ElanUtils elanUtils,
- ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils) {
+ EntityOwnershipService entityOwnershipService, ElanUtils elanUtils) {
this.broker = dataBroker;
this.elanInstanceManager = elanInstanceManager;
- this.elanL2GatewayUtils = elanL2GatewayUtils;
+ this.elanL2GatewayUtils = elanUtils.getElanL2GatewayUtils();
this.entityOwnershipService = entityOwnershipService;
this.elanUtils = elanUtils;
- this.elanL2GatewayMulticastUtils = elanL2GatewayMulticastUtils;
+ this.elanL2GatewayMulticastUtils = elanUtils.getElanL2GatewayMulticastUtils();
}
public static boolean isGatewayAssociatedToL2Device(L2GatewayDevice l2GwDevice) {
private static final Logger logger = LoggerFactory.getLogger(ElanForwardingEntriesHandler.class);
private final DataBroker broker;
- private final ElanUtils elanUtils;
+ private ElanUtils elanUtils;
- public ElanForwardingEntriesHandler(DataBroker dataBroker, ElanUtils elanUtils){
+ public ElanForwardingEntriesHandler(DataBroker dataBroker){
this.broker = dataBroker;
+ }
+
+ public void setElanUtils(ElanUtils elanUtils) {
this.elanUtils = elanUtils;
}
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
import org.opendaylight.genius.utils.ServiceIndex;
import org.opendaylight.netvirt.elan.internal.ElanInstanceManager;
+import org.opendaylight.netvirt.elan.internal.ElanInterfaceManager;
+import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils;
+import org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils;
+import org.opendaylight.netvirt.elan.l2gw.utils.L2GatewayConnectionUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
private final ElanInstanceManager elanInstanceManager;
private final OdlInterfaceRpcService interfaceManagerRpcService;
private final ItmRpcService itmRpcService;
+ private ElanL2GatewayUtils elanL2GatewayUtils;
+ private ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils;
+ private L2GatewayConnectionUtils l2GatewayConnectionUtils;
public static final FutureCallback<Void> DEFAULT_CALLBACK = new FutureCallback<Void>() {
@Override
};
public ElanUtils(DataBroker dataBroker, IMdsalApiManager mdsalManager, ElanInstanceManager elanInstanceManager,
- OdlInterfaceRpcService interfaceManagerRpcService, ItmRpcService itmRpcService) {
+ OdlInterfaceRpcService interfaceManagerRpcService, ItmRpcService itmRpcService,
+ ElanInterfaceManager elanInterfaceManager,
+ EntityOwnershipService entityOwnershipService) {
this.broker = dataBroker;
this.mdsalManager = mdsalManager;
this.elanInstanceManager = elanInstanceManager;
this.interfaceManagerRpcService = interfaceManagerRpcService;
this.itmRpcService = itmRpcService;
+
+ elanL2GatewayMulticastUtils =
+ new ElanL2GatewayMulticastUtils(broker, elanInstanceManager, elanInterfaceManager, this);
+ elanL2GatewayUtils = new ElanL2GatewayUtils(broker, itmRpcService, this,
+ entityOwnershipService, elanL2GatewayMulticastUtils);
+ l2GatewayConnectionUtils = new L2GatewayConnectionUtils(broker,
+ elanInstanceManager, entityOwnershipService, this);
+ }
+
+ public ElanL2GatewayUtils getElanL2GatewayUtils() {
+ return elanL2GatewayUtils;
}
+ public ElanL2GatewayMulticastUtils getElanL2GatewayMulticastUtils() {
+ return elanL2GatewayMulticastUtils;
+ }
+
+ public L2GatewayConnectionUtils getL2GatewayConnectionUtils() {
+ return l2GatewayConnectionUtils;
+ }
public static void addElanInstanceIntoCache(String elanInstanceName, ElanInstance elanInstance) {
elanInstanceLocalCache.put(elanInstanceName, elanInstance);
<reference id="interfaceManagerRef"
interface="org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager"
availability="optional" />
- <reference id="elanUtilsRef" interface="org.opendaylight.netvirt.elan.utils.ElanUtils"
- availability="optional" />
+ <!--<reference id="elanUtilsRef" interface="org.opendaylight.netvirt.elan.utils.ElanUtils" />-->
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
<command>
<action class="org.opendaylight.netvirt.elan.cli.ElanAdd">
<action class="org.opendaylight.netvirt.elan.cli.etree.EtreeInterfaceGet">
<property name="elanProvider" ref="elanProviderRef" />
<property name="interfaceManager" ref="interfaceManagerRef" />
- <property name="elanUtils" ref="elanUtilsRef" />
+ <!--<property name="elanUtils" ref="elanUtilsRef" />-->
</action>
</command>
<command>
<action class="org.opendaylight.netvirt.elan.cli.etree.EtreeInterfaceDelete">
<property name="elanProvider" ref="elanProviderRef" />
- <property name="elanUtils" ref="elanUtilsRef" />
+ <!--<property name="elanUtils" ref="elanUtilsRef" />-->
</action>
</command>
</command-bundle>
<odl:rpc-service id="idManagerService"
interface="org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService" />
- <bean id="elanForwardingEntriesHandler" class="org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler"
- destroy-method="close">
+ <bean id="elanBridgeManager" class="org.opendaylight.netvirt.elan.internal.ElanBridgeManager">
+ <argument ref="dataBroker" />
+ </bean>
+
+ <bean id="elanForwardingEntriesHandler" class="org.opendaylight.netvirt.elan.utils.ElanForwardingEntriesHandler">
<argument ref="dataBroker" />
- <argument ref="elanUtils" />
</bean>
<bean id="elanInterfaceManager"
<argument ref="mdsalUtils" />
<argument ref="interfaceManager" />
<argument ref="elanForwardingEntriesHandler" />
- <argument ref="elanL2GatewayUtils" />
- <argument ref="elanUtils" />
</bean>
<bean id="elanInstanceManager"
<argument ref="idManagerService" />
<argument ref="elanInterfaceManager" />
<argument ref="interfaceManager" />
- <argument ref="elanUtils" />
</bean>
<bean id="elanNodeListener"
<argument ref="dataBroker" />
<argument ref="interfaceManager" />
<argument ref="elanUtils" />
- <argument ref="elanL2GatewayUtils" />
</bean>
<odl:notification-listener ref="elanPacketInHandler" />
class="org.opendaylight.netvirt.elan.internal.ElanSmacFlowEventListener">
<argument ref="dataBroker" />
<argument ref="interfaceManager" />
+ <argument ref="elanUtils" />
</bean>
<odl:notification-listener ref="elanSmacFlowEventListener" />
<argument ref="elanInstanceManager" />
<argument ref="odlInterfaceRpcService" />
<argument ref="itmRpcService" />
+ <argument ref="elanInterfaceManager" />
+ <argument ref="entityOwnershipService" />
</bean>
<bean id="elanStatisticsImpl" class="org.opendaylight.netvirt.elan.statisitcs.ElanStatisticsImpl">
<argument ref="entityOwnershipService" />
</bean>
- <bean id="elanInterfaceClusterListener"
+ <bean id="elanDpnInterfaceClusteredListener"
class="org.opendaylight.netvirt.elan.internal.ElanDpnInterfaceClusteredListener">
<argument ref="dataBroker" />
<argument ref="entityOwnershipService" />
- <argument ref="elanL2GatewayUtils" />
+ <argument ref="elanUtils" />
</bean>
<bean id="elanService" class="org.opendaylight.netvirt.elan.internal.ElanServiceProvider"
<argument ref="elanInstanceManager" />
<argument ref="elanBridgeManager" />
<argument ref="dataBroker" />
+ <argument ref="elanInterfaceManager" />
<argument ref="elanStatusMonitor" />
<argument ref="elanUtils" />
</bean>
<service ref="elanService" odl:type="default" interface="org.opendaylight.netvirt.elanmanager.api.IElanService" />
- <bean id="elanL2GatewayUtils" class="org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayUtils">
- <argument ref="dataBroker" />
- <argument ref="itmRpcService" />
- <argument ref="elanUtils" />
- <argument ref="entityOwnershipService" />
- </bean>
-
<bean id="cacheElanInterfaceListener" class="org.opendaylight.netvirt.elan.utils.CacheElanInterfaceListener"
init-method="init" destroy-method="close">
<argument ref="dataBroker" />
<bean id="hwvtepLocalUcastMacListener" class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepLocalUcastMacListener"
init-method="init" destroy-method="close">
<argument ref="dataBroker" />
- <argument ref="elanL2GatewayUtils" />
+ <argument ref="elanUtils" />
</bean>
<bean id="elanStatusMonitor" class="org.opendaylight.netvirt.elan.statusanddiag.ElanStatusMonitor"
class="org.opendaylight.netvirt.elan.l2gw.listeners.L2GatewayConnectionListener"
destroy-method="close">
<argument ref="dataBroker" />
- <argument ref="elanInstanceManager" />
- <argument ref="l2GatewayConnectionUtils" />
+ <argument ref="elanUtils" />
</bean>
<bean id="hwvtepPhysicalSwitchListener"
<argument ref="dataBroker" />
<argument ref="itmRpcService" />
<argument ref="entityOwnershipService" />
- <argument ref="l2GatewayConnectionUtils" />
+ <argument ref="elanUtils" />
</bean>
<bean id="hwvtepTerminationPointListener"
class="org.opendaylight.netvirt.elan.l2gw.listeners.HwvtepTerminationPointListener"
destroy-method="close">
- <argument ref="broker" />
- <argument ref="elanL2GatewayUtils" />
+ <argument ref="dataBroker" />
+ <argument ref="elanUtils" />
<argument ref="entityOwnershipService" />
</bean>
</blueprint>
\ No newline at end of file
* Start method called by blueprint.
*/
public void start() {
- new ConfigStateManager(this).start();
+ setReady(true);
}
/**
}
}
- @Override
- public void setReady(boolean ready) {
- if (ready) {
+ private class WriteTopology implements Runnable {
+ public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
initializeNetvirtTopology();
}
}
+
+ @Override
+ public void setReady(boolean ready) {
+ if (ready) {
+ new Thread(new WriteTopology()).start();
+ }
+ }
}