Class ElanInterfaceManager
- java.lang.Object
-
- org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener<ElanInterface>
-
- org.opendaylight.netvirt.elan.internal.ElanInterfaceManager
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.util.EventListener
,org.opendaylight.mdsal.binding.api.DataTreeChangeListener<ElanInterface>
,org.opendaylight.serviceutils.srm.RecoverableListener
,org.opendaylight.serviceutils.tools.listener.ChainableDataTreeChangeListener<ElanInterface>
@Singleton public class ElanInterfaceManager extends org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener<ElanInterface> implements org.opendaylight.serviceutils.srm.RecoverableListener
Class in charge of handling creations, modifications and removals of ElanInterfaces.- See Also:
ElanInterface
-
-
Field Summary
Fields Modifier and Type Field Description static long
WAIT_TIME_FOR_SYNC_INSTALL
-
Constructor Summary
Constructors Constructor Description ElanInterfaceManager(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService managerService, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalApiManager, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager, ElanForwardingEntriesHandler elanForwardingEntriesHandler, INeutronVpnManager neutronVpnManager, ElanItmUtils elanItmUtils, ElanEtreeUtils elanEtreeUtils, ElanL2GatewayUtils elanL2GatewayUtils, ElanUtils elanUtils, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator, ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils, ElanInstanceCache elanInstanceCache, ElanInterfaceCache elanInterfaceCache, ElanServiceRecoveryHandler elanServiceRecoveryHandler, ElanGroupCache elanGroupCache, org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry serviceRecoveryRegistry)
-
Method Summary
All Methods Instance Methods Concrete Methods Default Methods Deprecated Methods Modifier and Type Method Description void
add(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface elanInterfaceAdded)
void
add(T arg0)
Deprecated.void
addAfterListener(org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T> arg0)
void
addBeforeListener(org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T> arg0)
void
close()
void
deregisterListener()
protected org.opendaylight.mdsal.binding.api.DataBroker
getDataBroker()
protected org.opendaylight.serviceutils.tools.listener.DataStoreMetrics
getDataStoreMetrics()
org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group>
getGroupIid(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpnId)
void
handleExternalInterfaceEvent(ElanInstance elanInstance, DpnInterfaces dpnInterfaces, org.opendaylight.yangtools.yang.common.Uint64 dpId)
void
handleInternalTunnelStateEvent(org.opendaylight.yangtools.yang.common.Uint64 srcDpId, org.opendaylight.yangtools.yang.common.Uint64 dstDpId)
void
init()
java.util.List<com.google.common.util.concurrent.ListenableFuture<?>>
installDMacAddressTables(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.yangtools.yang.common.Uint64 dstDpId)
default void
onDataTreeChanged(java.util.Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> arg0, org.opendaylight.serviceutils.tools.listener.DataStoreMetrics arg1)
void
register()
void
registerListener()
void
remove(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface del)
void
remove(T arg0)
Deprecated.void
removeElanBroadcastGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> deleteFlowGroupTx)
java.util.List<com.google.common.util.concurrent.ListenableFuture<?>>
removeElanInterface(ElanInstance elanInfo, java.lang.String interfaceName, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo)
void
removeFilterEqualsTable(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> flowTx)
protected void
removeInterfaceStaticMacEntries(java.lang.String elanInstanceName, java.lang.String interfaceName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress physAddress)
void
removeLocalBroadcastGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> deleteFlowGroupTx)
void
scheduleElanInterfaceWorkerAfterRemoteBcGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, DpnInterfaces dpnInterfaces, boolean isFirstInterfaceInDpn, ElanInterface elanInterface)
void
setupFilterEqualsTable(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
void
setupTerminateServiceTable(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
void
setupTerminateServiceTable(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yangtools.yang.common.Uint32 elanTag, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
void
setupUnknownDMacTable(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
protected void
unbindService(java.lang.String interfaceName, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> tx)
void
update(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface original, ElanInterface update)
void
update(T arg0, T arg1)
Deprecated.-
Methods inherited from class org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener
getExecutorService, onDataTreeChanged
-
-
-
-
Constructor Detail
-
ElanInterfaceManager
@Inject public ElanInterfaceManager(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService managerService, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalApiManager, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager, ElanForwardingEntriesHandler elanForwardingEntriesHandler, INeutronVpnManager neutronVpnManager, ElanItmUtils elanItmUtils, ElanEtreeUtils elanEtreeUtils, ElanL2GatewayUtils elanL2GatewayUtils, ElanUtils elanUtils, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator, ElanL2GatewayMulticastUtils elanL2GatewayMulticastUtils, ElanInstanceCache elanInstanceCache, ElanInterfaceCache elanInterfaceCache, ElanServiceRecoveryHandler elanServiceRecoveryHandler, ElanGroupCache elanGroupCache, org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry serviceRecoveryRegistry)
-
-
Method Detail
-
init
public void init()
-
registerListener
public void registerListener()
- Specified by:
registerListener
in interfaceorg.opendaylight.serviceutils.srm.RecoverableListener
-
deregisterListener
public void deregisterListener()
- Specified by:
deregisterListener
in interfaceorg.opendaylight.serviceutils.srm.RecoverableListener
-
close
@PreDestroy public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
-
remove
public void remove(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface del)
-
removeElanInterface
public java.util.List<com.google.common.util.concurrent.ListenableFuture<?>> removeElanInterface(ElanInstance elanInfo, java.lang.String interfaceName, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo)
-
update
public void update(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface original, ElanInterface update)
-
add
public void add(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface elanInterfaceAdded)
-
removeInterfaceStaticMacEntries
protected void removeInterfaceStaticMacEntries(java.lang.String elanInstanceName, java.lang.String interfaceName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress physAddress)
-
getGroupIid
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group> getGroupIid(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpnId)
-
scheduleElanInterfaceWorkerAfterRemoteBcGroup
public void scheduleElanInterfaceWorkerAfterRemoteBcGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, DpnInterfaces dpnInterfaces, boolean isFirstInterfaceInDpn, ElanInterface elanInterface)
-
setupFilterEqualsTable
public void setupFilterEqualsTable(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
-
removeFilterEqualsTable
public void removeFilterEqualsTable(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> flowTx) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionException
java.lang.InterruptedException
-
installDMacAddressTables
public java.util.List<com.google.common.util.concurrent.ListenableFuture<?>> installDMacAddressTables(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.yangtools.yang.common.Uint64 dstDpId)
-
removeLocalBroadcastGroup
public void removeLocalBroadcastGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> deleteFlowGroupTx) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionException
java.lang.InterruptedException
-
removeElanBroadcastGroup
public void removeElanBroadcastGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> deleteFlowGroupTx) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionException
java.lang.InterruptedException
-
setupTerminateServiceTable
public void setupTerminateServiceTable(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
-
setupTerminateServiceTable
public void setupTerminateServiceTable(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yangtools.yang.common.Uint32 elanTag, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
-
setupUnknownDMacTable
public void setupUnknownDMacTable(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowGroupTx)
-
unbindService
protected void unbindService(java.lang.String interfaceName, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> tx) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionException
java.lang.InterruptedException
-
handleInternalTunnelStateEvent
public void handleInternalTunnelStateEvent(org.opendaylight.yangtools.yang.common.Uint64 srcDpId, org.opendaylight.yangtools.yang.common.Uint64 dstDpId)
-
handleExternalInterfaceEvent
public void handleExternalInterfaceEvent(ElanInstance elanInstance, DpnInterfaces dpnInterfaces, org.opendaylight.yangtools.yang.common.Uint64 dpId)
-
addBeforeListener
public void addBeforeListener(org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T> arg0)
- Specified by:
addBeforeListener
in interfaceorg.opendaylight.serviceutils.tools.listener.ChainableDataTreeChangeListener<T extends org.opendaylight.yangtools.yang.binding.DataObject>
-
addAfterListener
public void addAfterListener(org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T> arg0)
- Specified by:
addAfterListener
in interfaceorg.opendaylight.serviceutils.tools.listener.ChainableDataTreeChangeListener<T extends org.opendaylight.yangtools.yang.binding.DataObject>
-
register
@PostConstruct public void register()
-
getDataBroker
protected org.opendaylight.mdsal.binding.api.DataBroker getDataBroker()
-
getDataStoreMetrics
protected org.opendaylight.serviceutils.tools.listener.DataStoreMetrics getDataStoreMetrics()
-
add
@Deprecated public void add(T arg0)
Deprecated.
-
remove
@Deprecated public void remove(T arg0)
Deprecated.
-
update
@Deprecated public void update(T arg0, T arg1)
Deprecated.
-
onDataTreeChanged
public default void onDataTreeChanged(java.util.Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> arg0, org.opendaylight.serviceutils.tools.listener.DataStoreMetrics arg1)
-
-