Class BgpRouteVrfEntryHandler

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.opendaylight.genius.utils.batching.ResourceHandler

    @Singleton
    public class BgpRouteVrfEntryHandler
    extends BaseVrfEntryHandler
    implements org.opendaylight.genius.utils.batching.ResourceHandler
    • Constructor Summary

      Constructors 
      Constructor Description
      BgpRouteVrfEntryHandler​(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, NexthopManager nexthopManager, FibUtil fibUtil, org.opendaylight.serviceutils.upgrade.UpgradeState upgradeState, org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar eventCallbacks)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addRewriteDstMacAction​(org.opendaylight.yangtools.yang.common.Uint32 vpnId, VrfEntry vrfEntry, @Nullable Prefixes prefixInfo, java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo> actionInfos)  
      protected void addTunnelInterfaceActions​(org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResult adjacencyResult, org.opendaylight.yangtools.yang.common.Uint32 vpnId, VrfEntry vrfEntry, java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo> actionInfos, java.lang.String rd)  
      void close()  
      void create​(org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx, org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier identifier, java.lang.Object vrfEntry, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      void createRemoteFibEntry​(org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String rd, VrfEntry vrfEntry, org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      void delete​(org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx, org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier identifier, java.lang.Object vrfEntry, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      void deleteRemoteRoute​(@Nullable org.opendaylight.yangtools.yang.common.Uint64 localDpnId, org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, VrfTablesKey vrfTableKey, VrfEntry vrfEntry, com.google.common.base.Optional<Routes> extraRouteOptional, @Nullable org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      int getBatchInterval()  
      int getBatchSize()  
      java.util.function.Consumer<? super VrfEntry> getConsumerForCreatingRemoteFib​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String rd, java.lang.String remoteNextHopIp, com.google.common.base.Optional<VrfTables> vrfTable, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeCfgTxn, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      java.util.function.Consumer<? super VrfEntry> getConsumerForDeletingRemoteFib​(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String remoteNextHopIp, com.google.common.base.Optional<VrfTables> vrfTable, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeCfgTxn, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType getDatastoreType()  
      org.opendaylight.controller.md.sal.binding.api.DataBroker getResourceBroker()  
      void init()  
      void programRemoteFibForBgpRoutes​(org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, VrfEntry vrfEntry, org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx, java.lang.String rd, java.util.List<org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResult> adjacencyResults, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      void update​(org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx, org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier identifier, java.lang.Object original, java.lang.Object update, java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)  
      • Methods inherited from class java.lang.Object

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

      • BgpRouteVrfEntryHandler

        @Inject
        public BgpRouteVrfEntryHandler​(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker,
                                       NexthopManager nexthopManager,
                                       FibUtil fibUtil,
                                       org.opendaylight.serviceutils.upgrade.UpgradeState upgradeState,
                                       org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar eventCallbacks)
    • Method Detail

      • init

        @PostConstruct
        public void init()
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Overrides:
        close in class BaseVrfEntryHandler
      • getResourceBroker

        public org.opendaylight.controller.md.sal.binding.api.DataBroker getResourceBroker()
        Specified by:
        getResourceBroker in interface org.opendaylight.genius.utils.batching.ResourceHandler
      • getBatchSize

        public int getBatchSize()
        Specified by:
        getBatchSize in interface org.opendaylight.genius.utils.batching.ResourceHandler
      • getBatchInterval

        public int getBatchInterval()
        Specified by:
        getBatchInterval in interface org.opendaylight.genius.utils.batching.ResourceHandler
      • getDatastoreType

        public org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType getDatastoreType()
        Specified by:
        getDatastoreType in interface org.opendaylight.genius.utils.batching.ResourceHandler
      • update

        public void update​(org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx,
                           org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType,
                           org.opendaylight.yangtools.yang.binding.InstanceIdentifier identifier,
                           java.lang.Object original,
                           java.lang.Object update,
                           java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
        Specified by:
        update in interface org.opendaylight.genius.utils.batching.ResourceHandler
      • create

        public void create​(org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx,
                           org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType,
                           org.opendaylight.yangtools.yang.binding.InstanceIdentifier identifier,
                           java.lang.Object vrfEntry,
                           java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
        Specified by:
        create in interface org.opendaylight.genius.utils.batching.ResourceHandler
      • delete

        public void delete​(org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx,
                           org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType datastoreType,
                           org.opendaylight.yangtools.yang.binding.InstanceIdentifier identifier,
                           java.lang.Object vrfEntry,
                           java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
        Specified by:
        delete in interface org.opendaylight.genius.utils.batching.ResourceHandler
      • programRemoteFibForBgpRoutes

        public void programRemoteFibForBgpRoutes​(org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId,
                                                 org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                                 VrfEntry vrfEntry,
                                                 org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx,
                                                 java.lang.String rd,
                                                 java.util.List<org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResult> adjacencyResults,
                                                 java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
      • createRemoteFibEntry

        public void createRemoteFibEntry​(org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId,
                                         org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                         java.lang.String rd,
                                         VrfEntry vrfEntry,
                                         org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx,
                                         java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
      • deleteRemoteRoute

        public void deleteRemoteRoute​(@Nullable org.opendaylight.yangtools.yang.common.Uint64 localDpnId,
                                      org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId,
                                      org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                      VrfTablesKey vrfTableKey,
                                      VrfEntry vrfEntry,
                                      com.google.common.base.Optional<Routes> extraRouteOptional,
                                      @Nullable org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx,
                                      java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
      • getConsumerForCreatingRemoteFib

        public java.util.function.Consumer<? super VrfEntry> getConsumerForCreatingRemoteFib​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                                                             org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                                                                             java.lang.String rd,
                                                                                             java.lang.String remoteNextHopIp,
                                                                                             com.google.common.base.Optional<VrfTables> vrfTable,
                                                                                             org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeCfgTxn,
                                                                                             java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
      • getConsumerForDeletingRemoteFib

        public java.util.function.Consumer<? super VrfEntry> getConsumerForDeletingRemoteFib​(org.opendaylight.yangtools.yang.common.Uint64 dpnId,
                                                                                             org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                                                                             java.lang.String remoteNextHopIp,
                                                                                             com.google.common.base.Optional<VrfTables> vrfTable,
                                                                                             org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeCfgTxn,
                                                                                             java.util.List<org.opendaylight.genius.utils.batching.SubTransaction> subTxns)
      • addTunnelInterfaceActions

        protected void addTunnelInterfaceActions​(org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResult adjacencyResult,
                                                 org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                                 VrfEntry vrfEntry,
                                                 java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo> actionInfos,
                                                 java.lang.String rd)
        Overrides:
        addTunnelInterfaceActions in class BaseVrfEntryHandler
      • addRewriteDstMacAction

        protected void addRewriteDstMacAction​(org.opendaylight.yangtools.yang.common.Uint32 vpnId,
                                              VrfEntry vrfEntry,
                                              @Nullable Prefixes prefixInfo,
                                              java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo> actionInfos)
        Overrides:
        addRewriteDstMacAction in class BaseVrfEntryHandler