Class ExternalRoutersListener

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

    @Singleton
    public class ExternalRoutersListener
    extends org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<Routers,​ExternalRoutersListener>
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase

        org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase.DataTreeChangeHandler
    • Field Summary

      • Fields inherited from class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase

        clazz
    • Constructor Summary

      Constructors 
      Constructor Description
      ExternalRoutersListener​(org.opendaylight.controller.md.sal.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 Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void add​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier, Routers routers)  
      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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowInvTx)  
      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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> removeFlowInvTx)  
      void createOutboundTblEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 routerId, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> removeFlowInvTx)  
      org.opendaylight.yangtools.yang.common.Uint64 getCookieOutboundFlow​(org.opendaylight.yangtools.yang.common.Uint32 routerId)  
      protected ExternalRoutersListener getDataTreeChangeListener()  
      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)  
      protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> getWildCardPath()  
      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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> confTx)  
      void handleSnatReverseTraffic​(org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> confTx, ProviderTypes extNwProvType)  
      protected void installNaptPfibEntriesForExternalSubnets​(java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint64 dpnId, @Nullable org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowInvTx)  
      void installNaptPfibEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 segmentId, @Nullable org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> confTx, ProviderTypes extNwProvType)  
      protected void remove​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier, Routers router)  
      void removeFlowsFromNonActiveSwitches​(org.opendaylight.yangtools.yang.common.Uint32 routerId, java.lang.String routerName, org.opendaylight.yangtools.yang.common.Uint64 naptSwitchDpnId, org.opendaylight.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowInvTx)  
      protected void removeNaptSwitch​(java.lang.String routerName)  
      protected void subnetRegisterMapping​(Routers routerEntry, org.opendaylight.yangtools.yang.common.Uint32 segmentId)  
      protected void update​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier, Routers original, Routers update)  
      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.genius.datastoreutils.AsyncDataTreeChangeListenerBase

        addAfterListener, addBeforeListener, close, deregisterListener, onDataTreeChanged, registerListener
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExternalRoutersListener

        @Inject
        public ExternalRoutersListener​(org.opendaylight.controller.md.sal.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

        @PostConstruct
        public void init()
        Overrides:
        init in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<Routers,​ExternalRoutersListener>
      • getWildCardPath

        protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> getWildCardPath()
        Specified by:
        getWildCardPath in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<Routers,​ExternalRoutersListener>
      • add

        protected void add​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier,
                           Routers routers)
        Specified by:
        add in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<Routers,​ExternalRoutersListener>
      • 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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> confTx)
      • installNaptPfibEntry

        public void installNaptPfibEntry​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                         org.opendaylight.yangtools.yang.common.Uint32 segmentId,
                                         @Nullable org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> confTx)
      • getRoutersIdentifier

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

        protected void update​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier,
                              Routers original,
                              Routers update)
        Specified by:
        update in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<Routers,​ExternalRoutersListener>
      • checkExternalIpLabel

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

        protected void remove​(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Routers> identifier,
                              Routers router)
        Specified by:
        remove in class org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase<Routers,​ExternalRoutersListener>
      • 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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeFlowInvTx)