Class IVpnLinkServiceImpl

  • All Implemented Interfaces:
    java.lang.AutoCloseable, IVpnLinkService

    @Singleton
    public class IVpnLinkServiceImpl
    extends java.lang.Object
    implements IVpnLinkService, java.lang.AutoCloseable
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void exchangeRoutes​(InterVpnLinkDataComposite ivpnLink)
      Checks both L3VPNs linked by the InterVpnLink and performs all the corresponding route leaking between them.
      void handleStaticRoutes​(InterVpnLinkDataComposite ivpnLink)
      Requests IVpnLinkService to take care of those static routes that point to the specified InterVpnLink and that may be configured in any Neutron Router.
      void leakRoute​(java.lang.String vpnName, java.lang.String prefix, java.util.List<java.lang.String> nextHopList, org.opendaylight.yangtools.yang.common.Uint32 label, int addOrRemove)
      Similar to leakRouteIfNeeded but the only requisite to be met is that there exists an InterVpnLink linking both VPNs.
      void leakRoute​(InterVpnLinkDataComposite interVpnLink, java.lang.String srcVpnUuid, java.lang.String dstVpnUuid, java.lang.String prefix, org.opendaylight.yangtools.yang.common.Uint32 label, @Nullable RouteOrigin forcedOrigin)
      Leaks a route from one VPN to another.
      void leakRouteIfNeeded​(java.lang.String vpnName, java.lang.String prefix, java.util.List<java.lang.String> nextHopList, org.opendaylight.yangtools.yang.common.Uint32 label, RouteOrigin origin, int addOrRemove)
      Leaks a route belonging to a L3VPN to other L3VPN if the necessary circumstances are met, like there is an InterVpnLink linking both L3VPNs and the corresponding leaking flag is active (bgp/static/connected).
      void start()  
      • Methods inherited from class java.lang.Object

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

      • IVpnLinkServiceImpl

        @Inject
        public IVpnLinkServiceImpl​(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker,
                                   org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idMgr,
                                   IBgpManager bgpMgr,
                                   IFibManager fibMgr,
                                   InterVpnLinkCache interVpnLinkCache,
                                   VpnUtil vpnUtil,
                                   InterVpnLinkUtil interVpnLinkUtil)
    • Method Detail

      • start

        @PostConstruct
        public void start()
      • close

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

        public void leakRoute​(java.lang.String vpnName,
                              java.lang.String prefix,
                              java.util.List<java.lang.String> nextHopList,
                              org.opendaylight.yangtools.yang.common.Uint32 label,
                              int addOrRemove)
        Description copied from interface: IVpnLinkService
        Similar to leakRouteIfNeeded but the only requisite to be met is that there exists an InterVpnLink linking both VPNs.
        Specified by:
        leakRoute in interface IVpnLinkService
        Parameters:
        vpnName - Vpn name of the L3VPN that holds the original route
        prefix - Prefix/destination of the route
        nextHopList - List of nexthops (ECMP) of the route
        label - Label of the route to be leaked
        addOrRemove - states if the routes must be leaked or withdrawn
      • leakRoute

        public void leakRoute​(InterVpnLinkDataComposite interVpnLink,
                              java.lang.String srcVpnUuid,
                              java.lang.String dstVpnUuid,
                              java.lang.String prefix,
                              org.opendaylight.yangtools.yang.common.Uint32 label,
                              @Nullable RouteOrigin forcedOrigin)
        Description copied from interface: IVpnLinkService
        Leaks a route from one VPN to another.
        Specified by:
        leakRoute in interface IVpnLinkService
        Parameters:
        interVpnLink - Reference to the object that holds the info about the link between the 2 VPNs
        srcVpnUuid - UUID of the VPN that has the route that is going to be leaked to the other VPN
        dstVpnUuid - UUID of the VPN that is going to receive the route
        prefix - Prefix of the route
        label - Label of the route in the original VPN
        forcedOrigin - By default, origin for leaked routes is INTERVPN, however it is possible to provide a different origin if desired.
      • leakRouteIfNeeded

        public void leakRouteIfNeeded​(java.lang.String vpnName,
                                      java.lang.String prefix,
                                      java.util.List<java.lang.String> nextHopList,
                                      org.opendaylight.yangtools.yang.common.Uint32 label,
                                      RouteOrigin origin,
                                      int addOrRemove)
        Description copied from interface: IVpnLinkService
        Leaks a route belonging to a L3VPN to other L3VPN if the necessary circumstances are met, like there is an InterVpnLink linking both L3VPNs and the corresponding leaking flag is active (bgp/static/connected).
        Specified by:
        leakRouteIfNeeded in interface IVpnLinkService
        Parameters:
        vpnName - Vpn name of the L3VPN that holds the original route
        prefix - Prefix/destination of the route
        nextHopList - List of nexthops (ECMP) of the route
        label - Label of the route to be leaked
        origin - Origin of the route (BGP|STATIC|CONNECTED)
        addOrRemove - states if the routes must be leaked or withdrawn
      • exchangeRoutes

        public void exchangeRoutes​(InterVpnLinkDataComposite ivpnLink)
        Description copied from interface: IVpnLinkService
        Checks both L3VPNs linked by the InterVpnLink and performs all the corresponding route leaking between them.
        Specified by:
        exchangeRoutes in interface IVpnLinkService
        Parameters:
        ivpnLink - InterVpnLink to be considered
      • handleStaticRoutes

        public void handleStaticRoutes​(InterVpnLinkDataComposite ivpnLink)
        Description copied from interface: IVpnLinkService
        Requests IVpnLinkService to take care of those static routes that point to the specified InterVpnLink and that may be configured in any Neutron Router.
        Specified by:
        handleStaticRoutes in interface IVpnLinkService
        Parameters:
        ivpnLink - InterVpnLink to be considered.