Class 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
    • 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<java.lang.Void>> 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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> deleteFlowGroupTx)  
      java.util.List<com.google.common.util.concurrent.ListenableFuture<java.lang.Void>> 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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowGroupTx)  
      void setupTerminateServiceTable​(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowGroupTx)  
      void setupTerminateServiceTable​(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yangtools.yang.common.Uint32 elanTag, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowGroupTx)  
      void setupUnknownDMacTable​(ElanInstance elanInfo, org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowGroupTx)  
      protected void unbindService​(java.lang.String interfaceName, org.opendaylight.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.opendaylight.mdsal.binding.api.DataTreeChangeListener

        onInitialData
    • Field Detail

      • WAIT_TIME_FOR_SYNC_INSTALL

        public static final long WAIT_TIME_FOR_SYNC_INSTALL
    • Constructor Detail

    • Method Detail

      • init

        public void init()
      • registerListener

        public void registerListener()
        Specified by:
        registerListener in interface org.opendaylight.serviceutils.srm.RecoverableListener
      • deregisterListener

        public void deregisterListener()
        Specified by:
        deregisterListener in interface org.opendaylight.serviceutils.srm.RecoverableListener
      • close

        @PreDestroy
        public void close()
        Specified by:
        close in interface java.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<java.lang.Void>> removeElanInterface​(ElanInstance elanInfo,
                                                                                                                      java.lang.String interfaceName,
                                                                                                                      org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo)
      • 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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowGroupTx)
      • removeFilterEqualsTable

        public void removeFilterEqualsTable​(ElanInstance elanInfo,
                                            org.opendaylight.genius.interfacemanager.globals.InterfaceInfo interfaceInfo,
                                            org.opendaylight.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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<java.lang.Void>> 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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowGroupTx)
      • setupUnknownDMacTable

        public void setupUnknownDMacTable​(ElanInstance elanInfo,
                                          org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                          org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowGroupTx)
      • unbindService

        protected void unbindService​(java.lang.String interfaceName,
                                     org.opendaylight.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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 interface org.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 interface org.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)