@Singleton public class ElanInterfaceManager extends org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<ElanInterface,ElanInterfaceManager> implements org.opendaylight.serviceutils.srm.RecoverableListener
ElanInterface
Constructor and Description |
---|
ElanInterfaceManager(org.opendaylight.controller.md.sal.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,
org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry serviceRecoveryRegistry) |
Modifier and Type | Method and Description |
---|---|
protected void |
add(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier,
ElanInterface elanInterfaceAdded) |
protected ElanInterfaceManager |
getDataTreeChangeListener() |
protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> |
getWildCardPath() |
void |
handleExternalInterfaceEvent(ElanInstance elanInstance,
DpnInterfaces dpnInterfaces,
BigInteger dpId) |
void |
handleExternalTunnelStateEvent(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.external.tunnel.list.ExternalTunnel externalTunnel,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface intrf)
Handle external tunnel state event.
|
void |
handleInternalTunnelStateEvent(BigInteger srcDpId,
BigInteger dstDpId) |
void |
init() |
List<com.google.common.util.concurrent.ListenableFuture<Void>> |
installDMacAddressTables(ElanInstance elanInfo,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo,
BigInteger dstDpId) |
void |
installEntriesForFirstInterfaceonDpn(ElanInstance elanInfo,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo,
DpnInterfaces dpnInterfaces,
boolean isFirstInterfaceInDpn) |
void |
registerListener() |
protected void |
remove(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier,
ElanInterface del) |
void |
removeElanBroadcastGroup(ElanInstance elanInfo,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction deleteFlowGroupTx) |
List<com.google.common.util.concurrent.ListenableFuture<Void>> |
removeElanInterface(ElanInstance elanInfo,
String interfaceName,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo) |
void |
removeFilterEqualsTable(ElanInstance elanInfo,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction deleteFlowGroupTx) |
protected void |
removeInterfaceStaticMacEntries(String elanInstanceName,
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.controller.md.sal.binding.api.WriteTransaction deleteFlowGroupTx) |
void |
setExternalTunnelTable(BigInteger dpnId,
ElanInstance elanInfo)
Installs a flow in the External Tunnel table consisting in translating
the VNI retrieved from the packet that came over a tunnel with a TOR into
elanTag that will be used later in the ELANs pipeline.
|
void |
setupFilterEqualsTable(ElanInstance elanInfo,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx) |
void |
setupLocalBroadcastGroups(ElanInstance elanInfo,
DpnInterfaces newDpnInterface,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo) |
void |
setupStandardLocalBroadcastGroups(ElanInstance elanInfo,
DpnInterfaces newDpnInterface,
org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo) |
void |
setupTerminateServiceTable(ElanInstance elanInfo,
BigInteger dpId,
long elanTag,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx) |
void |
setupTerminateServiceTable(ElanInstance elanInfo,
BigInteger dpId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx) |
void |
setupUnknownDMacTable(ElanInstance elanInfo,
BigInteger dpId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx) |
protected void |
unbindService(String interfaceName,
org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction tx) |
void |
unsetExternalTunnelTable(BigInteger dpnId,
ElanInstance elanInfo)
Removes, from External Tunnel table, the flow that translates from VNI to
elanTag.
|
protected void |
update(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier,
ElanInterface original,
ElanInterface update) |
addAfterListener, addBeforeListener, close, deregisterListener, onDataTreeChanged, registerListener
@Inject public ElanInterfaceManager(org.opendaylight.controller.md.sal.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, org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry serviceRecoveryRegistry)
@PostConstruct public void init()
init
in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<ElanInterface,ElanInterfaceManager>
public void registerListener()
registerListener
in interface org.opendaylight.serviceutils.srm.RecoverableListener
protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> getWildCardPath()
getWildCardPath
in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<ElanInterface,ElanInterfaceManager>
protected void remove(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface del)
remove
in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<ElanInterface,ElanInterfaceManager>
public List<com.google.common.util.concurrent.ListenableFuture<Void>> removeElanInterface(ElanInstance elanInfo, String interfaceName, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo)
protected void update(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface original, ElanInterface update)
update
in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<ElanInterface,ElanInterfaceManager>
protected void add(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ElanInterface> identifier, ElanInterface elanInterfaceAdded)
add
in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<ElanInterface,ElanInterfaceManager>
protected void removeInterfaceStaticMacEntries(String elanInstanceName, String interfaceName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress physAddress)
public void installEntriesForFirstInterfaceonDpn(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, DpnInterfaces dpnInterfaces, boolean isFirstInterfaceInDpn)
public void setupFilterEqualsTable(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx)
public void removeFilterEqualsTable(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.controller.md.sal.binding.api.WriteTransaction deleteFlowGroupTx)
public List<com.google.common.util.concurrent.ListenableFuture<Void>> installDMacAddressTables(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, BigInteger dstDpId) throws ElanException
ElanException
public void setupLocalBroadcastGroups(ElanInstance elanInfo, DpnInterfaces newDpnInterface, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo)
public void setupStandardLocalBroadcastGroups(ElanInstance elanInfo, DpnInterfaces newDpnInterface, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo)
public void removeLocalBroadcastGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.controller.md.sal.binding.api.WriteTransaction deleteFlowGroupTx)
public void removeElanBroadcastGroup(ElanInstance elanInfo, org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo, org.opendaylight.controller.md.sal.binding.api.WriteTransaction deleteFlowGroupTx)
public void setExternalTunnelTable(BigInteger dpnId, ElanInstance elanInfo)
dpnId
- the dpn idelanInfo
- the elan infopublic void unsetExternalTunnelTable(BigInteger dpnId, ElanInstance elanInfo)
dpnId
- DPN whose Ext Tunnel table is going to be modifiedelanInfo
- holds the elanTag needed for selecting the flow to be removedpublic void setupTerminateServiceTable(ElanInstance elanInfo, BigInteger dpId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx)
public void setupTerminateServiceTable(ElanInstance elanInfo, BigInteger dpId, long elanTag, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx)
public void setupUnknownDMacTable(ElanInstance elanInfo, BigInteger dpId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeFlowGroupTx)
protected void unbindService(String interfaceName, org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction tx) throws org.opendaylight.controller.md.sal.common.api.data.ReadFailedException
org.opendaylight.controller.md.sal.common.api.data.ReadFailedException
public void handleInternalTunnelStateEvent(BigInteger srcDpId, BigInteger dstDpId)
public void handleExternalTunnelStateEvent(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.external.tunnel.list.ExternalTunnel externalTunnel, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface intrf) throws ElanException
externalTunnel
- the external tunnelintrf
- the interfaceElanException
- in case of issues creating the flow objectsprotected ElanInterfaceManager getDataTreeChangeListener()
getDataTreeChangeListener
in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<ElanInterface,ElanInterfaceManager>
public void handleExternalInterfaceEvent(ElanInstance elanInstance, DpnInterfaces dpnInterfaces, BigInteger dpId)
Copyright © 2019 OpenDaylight. All rights reserved.