Class ElanServiceProvider
- java.lang.Object
-
- org.opendaylight.infrautils.inject.AbstractLifecycle
-
- org.opendaylight.netvirt.elan.internal.ElanServiceProvider
-
- All Implemented Interfaces:
org.opendaylight.infrautils.inject.Lifecycle,IElanService,IEtreeService
@Singleton public class ElanServiceProvider extends org.opendaylight.infrautils.inject.AbstractLifecycle implements IElanService
-
-
Constructor Summary
Constructors Constructor Description ElanServiceProvider(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager, ElanBridgeManager bridgeMgr, org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, ElanUtils elanUtils, org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService entityOwnershipService, org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils southboundUtils, ElanInstanceCache elanInstanceCache, ElanInterfaceCache elanInterfaceCache, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddArpResponderFlow(ArpResponderInput arpResponderInput)Add ARP Responder Flow on the given dpn for the ingress interface.voidaddElanInterface(java.lang.String elanInstanceName, java.lang.String interfaceName, @Nullable java.util.List<java.lang.String> staticMacAddresses, @Nullable java.lang.String description)voidaddEtreeInterface(java.lang.String etreeInstanceName, java.lang.String interfaceName, EtreeInterface.EtreeInterfaceType interfaceType, java.util.List<java.lang.String> staticMacAddresses, java.lang.String description)voidaddExternalTunnelArpResponderFlow(ArpResponderInput arpResponderInput, java.lang.String elanInstanceName)Add ARP Responder Flow on the given dpn for the SR-IOV VMs ingress interface.voidaddKnownL3DmacAddress(java.lang.String macAddress, java.lang.String elanInstanceName)voidaddStaticMacAddress(java.lang.String interfaceName, java.lang.String macAddress)static booleancompareWithExistingElanInstance(ElanInstance existingElanInstance, long macTimeOut, java.lang.String description)booleancreateElanInstance(java.lang.String elanInstanceName, long macTimeout, java.lang.String description)booleancreateEtreeInstance(java.lang.String elanInstanceName, long macTimeout, java.lang.String description)voidcreateExternalElanNetwork(ElanInstance elanInstance)protected voidcreateExternalElanNetwork(ElanInstance elanInstance, org.opendaylight.yangtools.yang.common.Uint64 dpId)voidcreateExternalElanNetworks(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node node)booleandeleteElanInstance(java.lang.String elanInstanceName)voiddeleteElanInterface(java.lang.String interfaceName)booleandeleteEtreeInstance(java.lang.String etreeInstanceName)voiddeleteEtreeInterface(java.lang.String interfaceName)voiddeleteExternalElanNetwork(ElanInstance elanInstance)protected voiddeleteExternalElanNetwork(ElanInstance elanInstance, org.opendaylight.yangtools.yang.common.Uint64 dpnId)voiddeleteExternalElanNetworks(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node node)voiddeleteStaticMacAddress(java.lang.String interfaceName, java.lang.String macAddress)voidflushMACTable(java.lang.String elanInstanceName)org.opendaylight.yangtools.yang.binding.InstanceIdentifier<DpnInterfaces>getElanDpnInterfaceOperationalDataPath(java.lang.String elanInstanceName, org.opendaylight.yangtools.yang.common.Uint64 dpnId)@Nullable ElanInstancegetElanInstance(java.lang.String elanName)java.util.List<ElanInstance>getElanInstances()@Nullable ElanInterfacegetElanInterfaceByElanInterfaceName(java.lang.String interfaceName)DpnInterfacesgetElanInterfaceInfoByElanDpn(java.lang.String elanInstanceName, org.opendaylight.yangtools.yang.common.Uint64 dpId)@NonNull java.util.List<java.lang.String>getElanInterfaces(java.lang.String elanInstanceName)java.util.Collection<MacEntry>getElanMacTable(java.lang.String elanInstanceName)@Nullable EtreeInterfacegetEtreeInterfaceByElanInterfaceName(java.lang.String elanInterface)java.lang.StringgetExternalElanInterface(java.lang.String elanInstanceName, org.opendaylight.yangtools.yang.common.Uint64 dpnId)java.util.Collection<java.lang.String>getExternalElanInterfaces(java.lang.String elanInstanceName)voidhandleKnownL3DmacAddress(java.lang.String macAddress, java.lang.String elanInstanceName, int addOrRemove)booleanisExternalInterface(java.lang.String interfaceName)java.lang.BooleanisOpenStackVniSemanticsEnforced()voidremoveArpResponderFlow(ArpResponderInput arpResponderInput)Remove ARP Responder flow from the given dpn for the ingress interface.voidremoveKnownL3DmacAddress(java.lang.String macAddress, java.lang.String elanInstanceName)org.opendaylight.yangtools.yang.common.Uint32retrieveNewElanTag(java.lang.String idKey)Uses the IdManager to retrieve a brand new ElanTag.protected voidstart()protected voidstop()voidupdateElanInstance(java.lang.String elanInstanceName, long newMacTimout, java.lang.String newDescription)voidupdateElanInterface(java.lang.String elanInstanceName, java.lang.String interfaceName, java.util.List<java.lang.String> updatedStaticMacAddresses, java.lang.String newDescription)voidupdateExternalElanNetwork(ElanInstance elanInstance)voidupdateExternalElanNetworks(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node origNode, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node updatedNode)
-
-
-
Constructor Detail
-
ElanServiceProvider
@Inject public ElanServiceProvider(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager, ElanBridgeManager bridgeMgr, org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, ElanUtils elanUtils, org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService entityOwnershipService, org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils southboundUtils, ElanInstanceCache elanInstanceCache, ElanInterfaceCache elanInterfaceCache, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager)
-
-
Method Detail
-
start
protected void start() throws java.lang.Exception- Specified by:
startin classorg.opendaylight.infrautils.inject.AbstractLifecycle- Throws:
java.lang.Exception
-
stop
protected void stop()
- Specified by:
stopin classorg.opendaylight.infrautils.inject.AbstractLifecycle
-
isOpenStackVniSemanticsEnforced
public java.lang.Boolean isOpenStackVniSemanticsEnforced()
- Specified by:
isOpenStackVniSemanticsEnforcedin interfaceIElanService
-
createElanInstance
public boolean createElanInstance(java.lang.String elanInstanceName, long macTimeout, java.lang.String description)- Specified by:
createElanInstancein interfaceIElanService
-
createEtreeInstance
public boolean createEtreeInstance(java.lang.String elanInstanceName, long macTimeout, java.lang.String description)- Specified by:
createEtreeInstancein interfaceIEtreeService
-
getEtreeInterfaceByElanInterfaceName
public @Nullable EtreeInterface getEtreeInterfaceByElanInterfaceName(java.lang.String elanInterface)
- Specified by:
getEtreeInterfaceByElanInterfaceNamein interfaceIEtreeService
-
compareWithExistingElanInstance
public static boolean compareWithExistingElanInstance(ElanInstance existingElanInstance, long macTimeOut, java.lang.String description)
-
updateElanInstance
public void updateElanInstance(java.lang.String elanInstanceName, long newMacTimout, java.lang.String newDescription)- Specified by:
updateElanInstancein interfaceIElanService
-
deleteEtreeInstance
public boolean deleteEtreeInstance(java.lang.String etreeInstanceName)
- Specified by:
deleteEtreeInstancein interfaceIEtreeService
-
deleteElanInstance
public boolean deleteElanInstance(java.lang.String elanInstanceName)
- Specified by:
deleteElanInstancein interfaceIElanService
-
addEtreeInterface
public void addEtreeInterface(java.lang.String etreeInstanceName, java.lang.String interfaceName, EtreeInterface.EtreeInterfaceType interfaceType, java.util.List<java.lang.String> staticMacAddresses, java.lang.String description)- Specified by:
addEtreeInterfacein interfaceIEtreeService
-
addElanInterface
public void addElanInterface(java.lang.String elanInstanceName, java.lang.String interfaceName, @Nullable java.util.List<java.lang.String> staticMacAddresses, @Nullable java.lang.String description)- Specified by:
addElanInterfacein interfaceIElanService
-
updateElanInterface
public void updateElanInterface(java.lang.String elanInstanceName, java.lang.String interfaceName, java.util.List<java.lang.String> updatedStaticMacAddresses, java.lang.String newDescription)- Specified by:
updateElanInterfacein interfaceIElanService
-
deleteEtreeInterface
public void deleteEtreeInterface(java.lang.String interfaceName)
- Specified by:
deleteEtreeInterfacein interfaceIEtreeService
-
deleteElanInterface
public void deleteElanInterface(java.lang.String interfaceName)
- Specified by:
deleteElanInterfacein interfaceIElanService
-
addStaticMacAddress
public void addStaticMacAddress(java.lang.String interfaceName, java.lang.String macAddress)- Specified by:
addStaticMacAddressin interfaceIElanService
-
deleteStaticMacAddress
public void deleteStaticMacAddress(java.lang.String interfaceName, java.lang.String macAddress)- Specified by:
deleteStaticMacAddressin interfaceIElanService
-
getElanMacTable
public java.util.Collection<MacEntry> getElanMacTable(java.lang.String elanInstanceName)
- Specified by:
getElanMacTablein interfaceIElanService
-
flushMACTable
public void flushMACTable(java.lang.String elanInstanceName)
- Specified by:
flushMACTablein interfaceIElanService
-
getElanInstance
public @Nullable ElanInstance getElanInstance(java.lang.String elanName)
- Specified by:
getElanInstancein interfaceIElanService
-
getElanInstances
public java.util.List<ElanInstance> getElanInstances()
- Specified by:
getElanInstancesin interfaceIElanService
-
getElanInterfaces
public @NonNull java.util.List<java.lang.String> getElanInterfaces(java.lang.String elanInstanceName)
- Specified by:
getElanInterfacesin interfaceIElanService
-
createExternalElanNetworks
public void createExternalElanNetworks(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node node)
- Specified by:
createExternalElanNetworksin interfaceIElanService
-
createExternalElanNetwork
public void createExternalElanNetwork(ElanInstance elanInstance)
- Specified by:
createExternalElanNetworkin interfaceIElanService
-
createExternalElanNetwork
protected void createExternalElanNetwork(ElanInstance elanInstance, org.opendaylight.yangtools.yang.common.Uint64 dpId)
-
updateExternalElanNetwork
public void updateExternalElanNetwork(ElanInstance elanInstance)
- Specified by:
updateExternalElanNetworkin interfaceIElanService
-
deleteExternalElanNetworks
public void deleteExternalElanNetworks(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node node)
- Specified by:
deleteExternalElanNetworksin interfaceIElanService
-
deleteExternalElanNetwork
public void deleteExternalElanNetwork(ElanInstance elanInstance)
- Specified by:
deleteExternalElanNetworkin interfaceIElanService
-
deleteExternalElanNetwork
protected void deleteExternalElanNetwork(ElanInstance elanInstance, org.opendaylight.yangtools.yang.common.Uint64 dpnId)
-
updateExternalElanNetworks
public void updateExternalElanNetworks(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node origNode, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node updatedNode)- Specified by:
updateExternalElanNetworksin interfaceIElanService
-
getExternalElanInterfaces
public java.util.Collection<java.lang.String> getExternalElanInterfaces(java.lang.String elanInstanceName)
- Specified by:
getExternalElanInterfacesin interfaceIElanService
-
getExternalElanInterface
public java.lang.String getExternalElanInterface(java.lang.String elanInstanceName, org.opendaylight.yangtools.yang.common.Uint64 dpnId)- Specified by:
getExternalElanInterfacein interfaceIElanService
-
isExternalInterface
public boolean isExternalInterface(java.lang.String interfaceName)
- Specified by:
isExternalInterfacein interfaceIElanService
-
getElanInterfaceByElanInterfaceName
public @Nullable ElanInterface getElanInterfaceByElanInterfaceName(java.lang.String interfaceName)
- Specified by:
getElanInterfaceByElanInterfaceNamein interfaceIElanService
-
handleKnownL3DmacAddress
public void handleKnownL3DmacAddress(java.lang.String macAddress, java.lang.String elanInstanceName, int addOrRemove)- Specified by:
handleKnownL3DmacAddressin interfaceIElanService
-
addKnownL3DmacAddress
public void addKnownL3DmacAddress(java.lang.String macAddress, java.lang.String elanInstanceName)- Specified by:
addKnownL3DmacAddressin interfaceIElanService
-
removeKnownL3DmacAddress
public void removeKnownL3DmacAddress(java.lang.String macAddress, java.lang.String elanInstanceName)- Specified by:
removeKnownL3DmacAddressin interfaceIElanService
-
addArpResponderFlow
public void addArpResponderFlow(ArpResponderInput arpResponderInput)
Description copied from interface:IElanServiceAdd ARP Responder Flow on the given dpn for the ingress interface.- Specified by:
addArpResponderFlowin interfaceIElanService- Parameters:
arpResponderInput- ArpResponder Input parameters- See Also:
ArpResponderInput
-
addExternalTunnelArpResponderFlow
public void addExternalTunnelArpResponderFlow(ArpResponderInput arpResponderInput, java.lang.String elanInstanceName)
Description copied from interface:IElanServiceAdd ARP Responder Flow on the given dpn for the SR-IOV VMs ingress interface.- Specified by:
addExternalTunnelArpResponderFlowin interfaceIElanService- Parameters:
arpResponderInput- ArpResponder Input parameterselanInstanceName- The elanInstance corresponding to the interface- See Also:
ArpResponderInput
-
removeArpResponderFlow
public void removeArpResponderFlow(ArpResponderInput arpResponderInput)
Description copied from interface:IElanServiceRemove ARP Responder flow from the given dpn for the ingress interface.- Specified by:
removeArpResponderFlowin interfaceIElanService- Parameters:
arpResponderInput- ArpResponder Input parameters- See Also:
ArpResponderInput
-
retrieveNewElanTag
public org.opendaylight.yangtools.yang.common.Uint32 retrieveNewElanTag(java.lang.String idKey)
Uses the IdManager to retrieve a brand new ElanTag.- Specified by:
retrieveNewElanTagin interfaceIElanService- Parameters:
idKey- the id key- Returns:
- the integer
-
getElanDpnInterfaceOperationalDataPath
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<DpnInterfaces> getElanDpnInterfaceOperationalDataPath(java.lang.String elanInstanceName, org.opendaylight.yangtools.yang.common.Uint64 dpnId)
- Specified by:
getElanDpnInterfaceOperationalDataPathin interfaceIElanService
-
getElanInterfaceInfoByElanDpn
public DpnInterfaces getElanInterfaceInfoByElanDpn(java.lang.String elanInstanceName, org.opendaylight.yangtools.yang.common.Uint64 dpId)
- Specified by:
getElanInterfaceInfoByElanDpnin interfaceIElanService
-
-