Class ExternalRoutersListener

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

    @Singleton
    public class ExternalRoutersListener
    extends org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener<Routers>
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Default Methods Deprecated Methods 
      Modifier and Type Method Description
      void add​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier, Routers routers)  
      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 advToBgpAndInstallFibAndTsFlows​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, short tableId, java.lang.String vpnName, org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String routerName, java.lang.String externalIp, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId, @Nullable Routers router, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      org.opendaylight.genius.mdsalutil.FlowEntity buildNaptPfibFlowEntity​(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yangtools.yang.common.Uint32 segmentId)  
      org.opendaylight.genius.mdsalutil.FlowEntity buildNaptPfibFlowEntityWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yangtools.yang.common.Uint32 segmentId, org.opendaylight.yangtools.yang.common.Uint32 changedVpnId)  
      protected org.opendaylight.genius.mdsalutil.FlowEntity buildOutboundFlowEntity​(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yangtools.yang.common.Uint32 routerId, int protocol)  
      protected org.opendaylight.genius.mdsalutil.FlowEntity buildOutboundFlowEntityWithBgpVpn​(org.opendaylight.yangtools.yang.common.Uint64 dpId, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint32 changedVpnId, int protocol)  
      org.opendaylight.genius.mdsalutil.FlowEntity buildSnatFlowEntityWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 groupId, org.opendaylight.yangtools.yang.common.Uint32 changedVpnId)  
      org.opendaylight.genius.mdsalutil.FlowEntity buildSnatFlowEntityWithUpdatedVpnIdForPrimrySwtch​(org.opendaylight.yangtools.yang.common.Uint64 dpId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 changedVpnId)  
      void changeBgpVpnIdToLocalVpnId​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String bgpVpnName, java.lang.String extNetwork, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx, ProviderTypes extNwProvType)
      router disassociation from vpn.
      void changeLocalVpnIdToBgpVpnId​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String extNetwork, java.lang.String bgpVpnName, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx, ProviderTypes extNwProvType)
      router association to vpn.
      protected @Nullable org.opendaylight.yangtools.yang.common.Uint32 checkExternalIpLabel​(org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String externalIp)  
      protected void clearBgpRoutes​(java.lang.String externalIp, java.lang.String vpnName)  
      protected void clearFibTsAndReverseTraffic​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid, java.util.List<java.lang.String> externalIps, @Nullable java.lang.String vpnName, java.lang.String extGwMacAddress, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)  
      void close()  
      void clrRtsFromBgpAndDelFibTs​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid, @NonNull java.util.Collection<java.lang.String> externalIps, @Nullable java.lang.String vpnName, java.lang.String extGwMacAddress, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      protected void clrRtsFromBgpAndDelFibTs​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String extIp, java.lang.String vpnName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid, java.lang.String extGwMacAddress, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)  
      void createOutboundTblEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      void createOutboundTblEntryWithBgpVpn​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint32 changedVpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)  
      protected void delFibTsAndReverseTraffic​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String extIp, java.lang.String vpnName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId, org.opendaylight.yangtools.yang.common.Uint32 tempLabel, java.lang.String gwMacAddress, boolean switchOver, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)  
      org.opendaylight.yangtools.yang.common.Uint64 getCookieOutboundFlow​(org.opendaylight.yangtools.yang.common.Uint32 routerId)  
      protected org.opendaylight.mdsal.binding.api.DataBroker getDataBroker()  
      protected org.opendaylight.serviceutils.tools.listener.DataStoreMetrics getDataStoreMetrics()  
      java.lang.String getFlowRefOutbound​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, short tableId, org.opendaylight.yangtools.yang.common.Uint32 routerID, int protocol)  
      static java.lang.String getFlowRefSnat​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, short tableId, java.lang.String routerID)  
      java.lang.String getFlowRefTs​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, short tableId, org.opendaylight.yangtools.yang.common.Uint32 routerID)  
      protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<RouterIds> getRoutersIdentifier​(org.opendaylight.yangtools.yang.common.Uint32 routerId)  
      protected @Nullable java.lang.String getTunnelInterfaceName​(org.opendaylight.yangtools.yang.common.Uint64 srcDpId, org.opendaylight.yangtools.yang.common.Uint64 dstDpId)  
      void handleDisableSnat​(Routers router, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid, @NonNull java.util.Collection<java.lang.String> externalIps, boolean routerFlag, @Nullable java.lang.String vpnName, org.opendaylight.yangtools.yang.common.Uint64 naptSwitchDpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)  
      void handleDisableSnatInternetVpn​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid, @NonNull java.util.Collection<java.lang.String> externalIps, java.lang.String vpnId, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)  
      void handleEnableSnat​(Routers routers, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId, org.opendaylight.yangtools.yang.common.Uint32 bgpVpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      protected void handlePrimaryNaptSwitch​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid externalNwUuid, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      void handleSnatReverseTraffic​(org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx, org.opendaylight.yangtools.yang.common.Uint64 dpnId, Routers router, org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String routerName, java.lang.String externalIp)  
      protected void handleSwitches​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId)  
      void init()  
      void installFlowsWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 bgpVpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNwUuid, boolean isSnatCfgd, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx, ProviderTypes extNwProvType)  
      protected void installNaptPfibEntriesForExternalSubnets​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint64 dpnId, @Nullable org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)  
      void installNaptPfibEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 segmentId, @Nullable org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      void installNaptPfibEntryWithBgpVpn​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 segmentId, org.opendaylight.yangtools.yang.common.Uint32 changedVpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)  
      protected void installNaptPfibExternalOutputFlow​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      protected void installOutboundMissEntry​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      protected void installSnatMissEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.util.List<org.opendaylight.genius.mdsalutil.BucketInfo> bucketInfo, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId)  
      protected void installSnatMissEntryForPrimrySwch​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      protected void installTerminatingServiceTblEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)  
      protected void installTerminatingServiceTblEntryWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint32 changedVpnId, org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx, ProviderTypes extNwProvType)  
      default void onDataTreeChanged​(java.util.Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> arg0, org.opendaylight.serviceutils.tools.listener.DataStoreMetrics arg1)  
      void register()  
      void remove​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier, Routers router)  
      void remove​(T arg0)
      Deprecated.
      void removeFlowsFromNonActiveSwitches​(org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint64 naptSwitchDpnId, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)  
      protected void removeNaptFibExternalOutputFlows​(org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkId, @NonNull java.util.Collection<java.lang.String> externalIps, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)  
      void removeNaptFlowsFromActiveSwitch​(org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkId, java.lang.String vpnName, @NonNull java.util.Collection<java.lang.String> externalIps, java.util.Collection<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> externalSubnetList, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx, ProviderTypes extNwProvType)  
      void removeNaptFlowsFromActiveSwitchInternetVpn​(org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkId, java.lang.String vpnName, org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)  
      protected void removeNaptSwitch​(java.lang.String routerName)  
      protected void subnetRegisterMapping​(Routers routerEntry, org.opendaylight.yangtools.yang.common.Uint32 segmentId)  
      void update​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier, Routers original, Routers update)  
      void update​(T arg0, T arg1)
      Deprecated.
      void updateNaptFlowsWithVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.yangtools.yang.common.Uint32 bgpVpnId)  
      void updateNaptSwitch​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint64 naptSwitchId)  
      • 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

      • ExternalRoutersListener

        @Inject
        public ExternalRoutersListener​(org.opendaylight.mdsal.binding.api.DataBroker dataBroker,
                                       org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
                                       org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService itmManager,
                                       org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService odlInterfaceRpcService,
                                       org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager,
                                       NaptManager naptManager,
                                       NAPTSwitchSelector naptSwitchSelector,
                                       IBgpManager bgpManager,
                                       VpnRpcService vpnService,
                                       FibRpcService fibService,
                                       SNATDefaultRouteProgrammer snatDefaultRouteProgrammer,
                                       NaptEventHandler naptEventHandler,
                                       NaptPacketInHandler naptPacketInHandler,
                                       IFibManager fibManager,
                                       IVpnManager vpnManager,
                                       EvpnSnatFlowProgrammer evpnSnatFlowProgrammer,
                                       NatserviceConfig config,
                                       IElanService elanManager,
                                       org.opendaylight.infrautils.jobcoordinator.JobCoordinator coordinator,
                                       NatOverVxlanUtil natOverVxlanUtil,
                                       org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager)
    • Method Detail

      • init

        public void init()
      • close

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

        public void add​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier,
                        Routers routers)
      • handleEnableSnat

        public void handleEnableSnat​(Routers routers,
                                     org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                     org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId,
                                     org.opendaylight.yangtools.yang.common.Uint32 bgpVpnId,
                                     org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • installNaptPfibExternalOutputFlow

        protected void installNaptPfibExternalOutputFlow​(java.lang.String routerName,
                                                         org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                         org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                         org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • subnetRegisterMapping

        protected void subnetRegisterMapping​(Routers routerEntry,
                                             org.opendaylight.yangtools.yang.common.Uint32 segmentId)
      • installOutboundMissEntry

        protected void installOutboundMissEntry​(java.lang.String routerName,
                                                org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId,
                                                org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • getFlowRefOutbound

        public java.lang.String getFlowRefOutbound​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                   short tableId,
                                                   org.opendaylight.yangtools.yang.common.Uint32 routerID,
                                                   int protocol)
      • getCookieOutboundFlow

        public org.opendaylight.yangtools.yang.common.Uint64 getCookieOutboundFlow​(org.opendaylight.yangtools.yang.common.Uint32 routerId)
      • buildOutboundFlowEntity

        protected org.opendaylight.genius.mdsalutil.FlowEntity buildOutboundFlowEntity​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                                                       org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                                                       int protocol)
      • createOutboundTblEntry

        public void createOutboundTblEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                           org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                           org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • getTunnelInterfaceName

        protected @Nullable java.lang.String getTunnelInterfaceName​(org.opendaylight.yangtools.yang.common.Uint64 srcDpId,
                                                                    org.opendaylight.yangtools.yang.common.Uint64 dstDpId)
      • installSnatMissEntryForPrimrySwch

        protected void installSnatMissEntryForPrimrySwch​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                         java.lang.String routerName,
                                                         org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                         org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • installSnatMissEntry

        protected void installSnatMissEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                            java.util.List<org.opendaylight.genius.mdsalutil.BucketInfo> bucketInfo,
                                            java.lang.String routerName,
                                            org.opendaylight.yangtools.yang.common.Uint32 routerId)
      • installTerminatingServiceTblEntry

        protected void installTerminatingServiceTblEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                         java.lang.String routerName,
                                                         org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                         org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • getFlowRefTs

        public java.lang.String getFlowRefTs​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                             short tableId,
                                             org.opendaylight.yangtools.yang.common.Uint32 routerID)
      • getFlowRefSnat

        public static java.lang.String getFlowRefSnat​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                      short tableId,
                                                      java.lang.String routerID)
      • handleSwitches

        protected void handleSwitches​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                      java.lang.String routerName,
                                      org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                      org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId)
      • handlePrimaryNaptSwitch

        protected void handlePrimaryNaptSwitch​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                               java.lang.String routerName,
                                               org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                               org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid externalNwUuid,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • installNaptPfibEntry

        public void installNaptPfibEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                         org.opendaylight.yangtools.yang.common.Uint32 segmentId,
                                         @Nullable org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • buildNaptPfibFlowEntity

        public org.opendaylight.genius.mdsalutil.FlowEntity buildNaptPfibFlowEntity​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                                                    org.opendaylight.yangtools.yang.common.Uint32 segmentId)
      • handleSnatReverseTraffic

        public void handleSnatReverseTraffic​(org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx,
                                             org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                             Routers router,
                                             org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                             java.lang.String routerName,
                                             java.lang.String externalIp)
      • advToBgpAndInstallFibAndTsFlows

        public void advToBgpAndInstallFibAndTsFlows​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                    short tableId,
                                                    java.lang.String vpnName,
                                                    org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                    java.lang.String routerName,
                                                    java.lang.String externalIp,
                                                    org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId,
                                                    @Nullable Routers router,
                                                    org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
      • getRoutersIdentifier

        protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<RouterIds> getRoutersIdentifier​(org.opendaylight.yangtools.yang.common.Uint32 routerId)
      • update

        public void update​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier,
                           Routers original,
                           Routers update)
      • checkExternalIpLabel

        protected @Nullable org.opendaylight.yangtools.yang.common.Uint32 checkExternalIpLabel​(org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                                                               java.lang.String externalIp)
      • remove

        public void remove​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier,
                           Routers router)
      • handleDisableSnat

        public void handleDisableSnat​(Routers router,
                                      org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid,
                                      @NonNull java.util.Collection<java.lang.String> externalIps,
                                      boolean routerFlag,
                                      @Nullable java.lang.String vpnName,
                                      org.opendaylight.yangtools.yang.common.Uint64 naptSwitchDpnId,
                                      org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                      org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)
      • handleDisableSnatInternetVpn

        public void handleDisableSnatInternetVpn​(java.lang.String routerName,
                                                 org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid,
                                                 @NonNull java.util.Collection<java.lang.String> externalIps,
                                                 java.lang.String vpnId,
                                                 org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)
      • updateNaptSwitch

        public void updateNaptSwitch​(java.lang.String routerName,
                                     org.opendaylight.yangtools.yang.common.Uint64 naptSwitchId)
      • removeNaptSwitch

        protected void removeNaptSwitch​(java.lang.String routerName)
      • removeNaptFlowsFromActiveSwitch

        public void removeNaptFlowsFromActiveSwitch​(org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                    java.lang.String routerName,
                                                    org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                    org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkId,
                                                    java.lang.String vpnName,
                                                    @NonNull java.util.Collection<java.lang.String> externalIps,
                                                    java.util.Collection<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid> externalSubnetList,
                                                    org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx,
                                                    ProviderTypes extNwProvType)
                                             throws java.lang.InterruptedException,
                                                    java.util.concurrent.ExecutionException
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.ExecutionException
      • removeNaptFibExternalOutputFlows

        protected void removeNaptFibExternalOutputFlows​(org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                        org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkId,
                                                        @NonNull java.util.Collection<java.lang.String> externalIps,
                                                        org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)
                                                 throws java.util.concurrent.ExecutionException,
                                                        java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • removeNaptFlowsFromActiveSwitchInternetVpn

        public void removeNaptFlowsFromActiveSwitchInternetVpn​(org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                               java.lang.String routerName,
                                                               org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                               org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkId,
                                                               java.lang.String vpnName,
                                                               org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)
                                                        throws java.util.concurrent.ExecutionException,
                                                               java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • removeFlowsFromNonActiveSwitches

        public void removeFlowsFromNonActiveSwitches​(org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                     java.lang.String routerName,
                                                     org.opendaylight.yangtools.yang.common.Uint64 naptSwitchDpnId,
                                                     org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)
                                              throws java.util.concurrent.ExecutionException,
                                                     java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • clrRtsFromBgpAndDelFibTs

        public void clrRtsFromBgpAndDelFibTs​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                             org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                             @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid,
                                             @NonNull java.util.Collection<java.lang.String> externalIps,
                                             @Nullable java.lang.String vpnName,
                                             java.lang.String extGwMacAddress,
                                             org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx)
                                      throws java.util.concurrent.ExecutionException,
                                             java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • clrRtsFromBgpAndDelFibTs

        protected void clrRtsFromBgpAndDelFibTs​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                java.lang.String extIp,
                                                java.lang.String vpnName,
                                                org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid,
                                                java.lang.String extGwMacAddress,
                                                org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)
                                         throws java.util.concurrent.ExecutionException,
                                                java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • delFibTsAndReverseTraffic

        protected void delFibTsAndReverseTraffic​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                 java.lang.String routerName,
                                                 org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                 java.lang.String extIp,
                                                 java.lang.String vpnName,
                                                 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId,
                                                 org.opendaylight.yangtools.yang.common.Uint32 tempLabel,
                                                 java.lang.String gwMacAddress,
                                                 boolean switchOver,
                                                 org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> removeFlowInvTx)
                                          throws java.util.concurrent.ExecutionException,
                                                 java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • clearFibTsAndReverseTraffic

        protected void clearFibTsAndReverseTraffic​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                   org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                   org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid networkUuid,
                                                   java.util.List<java.lang.String> externalIps,
                                                   @Nullable java.lang.String vpnName,
                                                   java.lang.String extGwMacAddress,
                                                   org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)
                                            throws java.util.concurrent.ExecutionException,
                                                   java.lang.InterruptedException
        Throws:
        java.util.concurrent.ExecutionException
        java.lang.InterruptedException
      • clearBgpRoutes

        protected void clearBgpRoutes​(java.lang.String externalIp,
                                      java.lang.String vpnName)
      • changeLocalVpnIdToBgpVpnId

        public void changeLocalVpnIdToBgpVpnId​(java.lang.String routerName,
                                               org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                               java.lang.String extNetwork,
                                               java.lang.String bgpVpnName,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx,
                                               ProviderTypes extNwProvType)
        router association to vpn.
        Parameters:
        routerName - - Name of router
        routerId - - router id
        bgpVpnName - BGP VPN name
      • changeBgpVpnIdToLocalVpnId

        public void changeBgpVpnIdToLocalVpnId​(java.lang.String routerName,
                                               org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                               java.lang.String bgpVpnName,
                                               java.lang.String extNetwork,
                                               org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx,
                                               ProviderTypes extNwProvType)
        router disassociation from vpn.
        Parameters:
        routerName - - Name of router
        routerId - - router id
        bgpVpnName - BGP VPN name
      • installFlowsWithUpdatedVpnId

        public void installFlowsWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 primarySwitchId,
                                                 java.lang.String routerName,
                                                 org.opendaylight.yangtools.yang.common.Uint32 bgpVpnId,
                                                 org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNwUuid,
                                                 boolean isSnatCfgd,
                                                 org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx,
                                                 ProviderTypes extNwProvType)
      • updateNaptFlowsWithVpnId

        public void updateNaptFlowsWithVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                             java.lang.String routerName,
                                             org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                             org.opendaylight.yangtools.yang.common.Uint32 bgpVpnId)
      • buildSnatFlowEntityWithUpdatedVpnId

        public org.opendaylight.genius.mdsalutil.FlowEntity buildSnatFlowEntityWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                                                                java.lang.String routerName,
                                                                                                org.opendaylight.yangtools.yang.common.Uint32 groupId,
                                                                                                org.opendaylight.yangtools.yang.common.Uint32 changedVpnId)
      • buildSnatFlowEntityWithUpdatedVpnIdForPrimrySwtch

        public org.opendaylight.genius.mdsalutil.FlowEntity buildSnatFlowEntityWithUpdatedVpnIdForPrimrySwtch​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                                                                              java.lang.String routerName,
                                                                                                              org.opendaylight.yangtools.yang.common.Uint32 changedVpnId)
      • installTerminatingServiceTblEntryWithUpdatedVpnId

        protected void installTerminatingServiceTblEntryWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                                         java.lang.String routerName,
                                                                         org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                                         org.opendaylight.yangtools.yang.common.Uint32 changedVpnId,
                                                                         org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> confTx,
                                                                         ProviderTypes extNwProvType)
      • createOutboundTblEntryWithBgpVpn

        public void createOutboundTblEntryWithBgpVpn​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                     org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                     org.opendaylight.yangtools.yang.common.Uint32 changedVpnId,
                                                     org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)
      • buildOutboundFlowEntityWithBgpVpn

        protected org.opendaylight.genius.mdsalutil.FlowEntity buildOutboundFlowEntityWithBgpVpn​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                                                                 org.opendaylight.yangtools.yang.common.Uint32 routerId,
                                                                                                 org.opendaylight.yangtools.yang.common.Uint32 changedVpnId,
                                                                                                 int protocol)
      • installNaptPfibEntryWithBgpVpn

        public void installNaptPfibEntryWithBgpVpn​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                   org.opendaylight.yangtools.yang.common.Uint32 segmentId,
                                                   org.opendaylight.yangtools.yang.common.Uint32 changedVpnId,
                                                   org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)
      • buildNaptPfibFlowEntityWithUpdatedVpnId

        public org.opendaylight.genius.mdsalutil.FlowEntity buildNaptPfibFlowEntityWithUpdatedVpnId​(org.opendaylight.yangtools.yang.common.Uint64 dpId,
                                                                                                    org.opendaylight.yangtools.yang.common.Uint32 segmentId,
                                                                                                    org.opendaylight.yangtools.yang.common.Uint32 changedVpnId)
      • installNaptPfibEntriesForExternalSubnets

        protected void installNaptPfibEntriesForExternalSubnets​(java.lang.String routerName,
                                                                org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                                @Nullable org.opendaylight.mdsal.binding.util.TypedWriteTransaction<org.opendaylight.mdsal.binding.util.Datastore.Configuration> writeFlowInvTx)
      • 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)