Class VpnInterfaceManager

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.util.EventListener, org.opendaylight.mdsal.binding.api.DataTreeChangeListener<VpnInterface>, org.opendaylight.serviceutils.tools.listener.ChainableDataTreeChangeListener<VpnInterface>

    @Singleton
    public class VpnInterfaceManager
    extends org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener<VpnInterface>
    • Constructor Summary

      Constructors 
      Constructor Description
      VpnInterfaceManager​(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, IBgpManager bgpManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, IFibManager fibManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService ifaceMgrRpcService, VpnFootprintService vpnFootprintService, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager, IVpnManager vpnManager, ArpResponderHandler arpResponderHandler, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator, org.opendaylight.infrautils.caches.CacheProvider cacheProvider, VpnUtil vpnUtil)  
    • 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<VpnInterface> identifier, VpnInterface vpnInterface)  
      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)  
      protected void addNewAdjToVpnInterface​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterfaceOpDataEntry> identifier, java.lang.String primaryRd, Adjacency adj, org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn, java.util.Set<java.lang.String> prefixListForRefreshFib)  
      void close()  
      protected void createFibEntryForRouterInterface​(java.lang.String primaryRd, VpnInterface vpnInterface, java.lang.String interfaceName, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, java.lang.String vpnName)  
      protected void delAdjFromVpnInterface​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterfaceOpDataEntry> identifier, Adjacency adj, org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn)  
      protected void deleteFibEntryForRouterInterface​(VpnInterface vpnInterface, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, java.lang.String vpnName)  
      protected org.opendaylight.mdsal.binding.api.DataBroker getDataBroker()  
      protected org.opendaylight.serviceutils.tools.listener.DataStoreMetrics getDataStoreMetrics()  
      void importSubnetRouteForNewVpn​(java.lang.String rd, java.lang.String prefix, java.lang.String nextHop, org.opendaylight.yangtools.yang.common.Uint32 label, SubnetRoute route, java.lang.String parentVpnRd, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn)  
      java.lang.Runnable isNotifyTaskQueued​(java.lang.String intfName)  
      boolean isVpnInstanceReady​(java.lang.String vpnInstanceName)  
      default void onDataTreeChanged​(java.util.Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> arg0, org.opendaylight.serviceutils.tools.listener.DataStoreMetrics arg1)  
      void processSavedInterfaces​(java.lang.String vpnInstanceName, boolean hasVpnInstanceCreatedSuccessfully)  
      protected void processVpnInterfaceAdjacencies​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, int lportTag, java.lang.String vpnName, java.lang.String primaryRd, java.lang.String interfaceName, org.opendaylight.yangtools.yang.common.Uint32 vpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState, java.util.Set<java.lang.String> prefixListForRefreshFib)  
      protected void processVpnInterfaceDown​(org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.String interfaceName, int lportTag, java.lang.String gwMac, VpnInterfaceOpDataEntry vpnOpInterface, boolean isInterfaceStateDown, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn)  
      protected void processVpnInterfaceUp​(org.opendaylight.yangtools.yang.common.Uint64 dpId, VpnInterface vpnInterface, java.lang.String primaryRd, int lportTag, boolean isInterfaceUp, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState, java.lang.String vpnName, java.util.Set<java.lang.String> prefixListForRefreshFib)  
      void register()  
      void remove​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterface> identifier, VpnInterface vpnInterface)  
      void remove​(T arg0)
      Deprecated.
      void start()  
      void update​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterface> identifier, VpnInterface original, VpnInterface update)  
      void update​(T arg0, T arg1)
      Deprecated.
      void updateVpnInterfaceOnTepAdd​(VpnInterfaceOpDataEntry vpnInterface, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList stateTunnelList, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn)  
      void updateVpnInterfaceOnTepDelete​(VpnInterfaceOpDataEntry vpnInterface, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList stateTunnelList, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn)  
      void updateVpnInterfacesForUnProcessAdjancencies​(java.lang.String vpnName)  
      void vpnInstanceFailed​(java.lang.String vpnInstanceName)  
      void vpnInstanceIsReady​(java.lang.String vpnInstanceName)  
      • 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
    • Constructor Detail

      • VpnInterfaceManager

        @Inject
        public VpnInterfaceManager​(org.opendaylight.mdsal.binding.api.DataBroker dataBroker,
                                   IBgpManager bgpManager,
                                   org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager,
                                   org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
                                   IFibManager fibManager,
                                   org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService ifaceMgrRpcService,
                                   VpnFootprintService vpnFootprintService,
                                   org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager,
                                   IVpnManager vpnManager,
                                   ArpResponderHandler arpResponderHandler,
                                   org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator,
                                   org.opendaylight.infrautils.caches.CacheProvider cacheProvider,
                                   VpnUtil vpnUtil)
    • Method Detail

      • isNotifyTaskQueued

        public java.lang.Runnable isNotifyTaskQueued​(java.lang.String intfName)
      • start

        public void start()
      • close

        @PreDestroy
        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
      • add

        public void add​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterface> identifier,
                        VpnInterface vpnInterface)
      • processVpnInterfaceUp

        protected void processVpnInterfaceUp​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                             VpnInterface vpnInterface,
                                             java.lang.String primaryRd,
                                             int lportTag,
                                             boolean isInterfaceUp,
                                             org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                             org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn,
                                             org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn,
                                             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState,
                                             java.lang.String vpnName,
                                             java.util.Set<java.lang.String> prefixListForRefreshFib)
                                      throws java.util.concurrent.ExecutionException,
                                             java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • processVpnInterfaceAdjacencies

        protected void processVpnInterfaceAdjacencies​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                      int lportTag,
                                                      java.lang.String vpnName,
                                                      java.lang.String primaryRd,
                                                      java.lang.String interfaceName,
                                                      org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                                      org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                                      org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn,
                                                      org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn,
                                                      org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface interfaceState,
                                                      java.util.Set<java.lang.String> prefixListForRefreshFib)
                                               throws java.util.concurrent.ExecutionException,
                                                      java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • updateVpnInterfaceOnTepAdd

        public void updateVpnInterfaceOnTepAdd​(VpnInterfaceOpDataEntry vpnInterface,
                                               org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList stateTunnelList,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn)
      • updateVpnInterfaceOnTepDelete

        public void updateVpnInterfaceOnTepDelete​(VpnInterfaceOpDataEntry vpnInterface,
                                                  org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList stateTunnelList,
                                                  org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                                  org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn)
      • remove

        public void remove​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterface> identifier,
                           VpnInterface vpnInterface)
      • processVpnInterfaceDown

        protected void processVpnInterfaceDown​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                               java.lang.String interfaceName,
                                               int lportTag,
                                               java.lang.String gwMac,
                                               VpnInterfaceOpDataEntry vpnOpInterface,
                                               boolean isInterfaceStateDown,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn,
                                               org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn)
                                        throws java.util.concurrent.ExecutionException,
                                               java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • importSubnetRouteForNewVpn

        public void importSubnetRouteForNewVpn​(java.lang.String rd,
                                               java.lang.String prefix,
                                               java.lang.String nextHop,
                                               org.opendaylight.yangtools.yang.common.Uint32 label,
                                               SubnetRoute route,
                                               java.lang.String parentVpnRd,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn)
      • addNewAdjToVpnInterface

        protected void addNewAdjToVpnInterface​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterfaceOpDataEntry> identifier,
                                               java.lang.String primaryRd,
                                               Adjacency adj,
                                               org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                               org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeInvTxn,
                                               java.util.Set<java.lang.String> prefixListForRefreshFib)
                                        throws java.util.concurrent.ExecutionException,
                                               java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • delAdjFromVpnInterface

        protected void delAdjFromVpnInterface​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VpnInterfaceOpDataEntry> identifier,
                                              Adjacency adj,
                                              org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                              org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Operational> writeOperTxn,
                                              org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn)
      • createFibEntryForRouterInterface

        protected void createFibEntryForRouterInterface​(java.lang.String primaryRd,
                                                        VpnInterface vpnInterface,
                                                        java.lang.String interfaceName,
                                                        org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                                        java.lang.String vpnName)
      • deleteFibEntryForRouterInterface

        protected void deleteFibEntryForRouterInterface​(VpnInterface vpnInterface,
                                                        org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeConfigTxn,
                                                        java.lang.String vpnName)
      • isVpnInstanceReady

        public boolean isVpnInstanceReady​(java.lang.String vpnInstanceName)
      • processSavedInterfaces

        public void processSavedInterfaces​(java.lang.String vpnInstanceName,
                                           boolean hasVpnInstanceCreatedSuccessfully)
      • vpnInstanceIsReady

        public void vpnInstanceIsReady​(java.lang.String vpnInstanceName)
      • vpnInstanceFailed

        public void vpnInstanceFailed​(java.lang.String vpnInstanceName)
      • updateVpnInterfacesForUnProcessAdjancencies

        public void updateVpnInterfacesForUnProcessAdjancencies​(java.lang.String vpnName)
      • 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)