Class NexthopManager
- java.lang.Object
 - 
- org.opendaylight.netvirt.fibmanager.NexthopManager
 
 
- 
- All Implemented Interfaces:
 java.lang.AutoCloseable
@Singleton public class NexthopManager extends java.lang.Object implements java.lang.AutoCloseable 
- 
- 
Constructor Summary
Constructors Constructor Description NexthopManager(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalApiManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService odlInterfaceRpcService, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService itmManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService lockManager, IElanService elanService, org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService salGroupService, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator, FibUtil fibUtil, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager)Provides nexthop functions. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddVpnNexthopToDS(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String primaryIpAddr, java.lang.String currIpAddr, long egressPointer)voidclose()voidcreateDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType)longcreateLocalNextHop(org.opendaylight.yangtools.yang.common.Uint32 vpnId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String ifName, java.lang.String primaryIpAddress, java.lang.String currDestIpPrefix, java.lang.String gwMacAddress, org.opendaylight.yangtools.yang.common.Uint32 parentVpnId)protected longcreateNextHopPointer(java.lang.String nexthopKey)protected voiddeleteLoadBalancingNextHop(org.opendaylight.yangtools.yang.common.Uint32 parentVpnId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destPrefix)L3VPNTransportTypesgetConfiguredTransportTypeL3VPN()org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ConfTransportTypeL3vpn>getConfTransportTypeIdentifier()protected java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo>getEgressActionsForInterface(java.lang.String ifName, int actionKey, boolean isTunnelInterface, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String destIpPrefix)org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcServicegetItmManager()longgetLocalNextHopGroup(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String ipNextHopAddress)longgetLocalSelectGroup(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String ipNextHopAddress)@Nullable org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResultgetRemoteNextHopPointer(org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String prefixIp, @Nullable java.lang.String nextHopIp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType)java.lang.StringgetReqTransType()java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase>getReqTunType(java.lang.String transportType)java.lang.StringgetTransportTypeStr(java.lang.String tunType)protected @Nullable java.lang.StringgetTunnelInterfaceName(org.opendaylight.yangtools.yang.common.Uint64 srcDpId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress dstIp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType)protected @Nullable java.lang.StringgetTunnelInterfaceName(org.opendaylight.yangtools.yang.common.Uint64 srcDpId, org.opendaylight.yangtools.yang.common.Uint64 dstDpId)protected @Nullable VpnNexthopgetVpnNexthop(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String ipAddress)protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IpAdjacencies>getVpnNextHopIpPrefixIdentifier(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String primaryIpAddress, java.lang.String ipPrefix)voidprogramDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp, int addRemoveOrUpdate, boolean isTunnelUp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType)voidremoveDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp)This method is invoked when the neighbor is removed from DS.voidremoveLocalNextHop(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String primaryIpAddress, java.lang.String currDestIpPrefix)protected voidremoveNextHopPointer(java.lang.String nexthopKey)voidsetConfTransType(java.lang.String service, java.lang.String transportType)protected longsetupLoadBalancingNextHop(org.opendaylight.yangtools.yang.common.Uint32 parentVpnId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destPrefix, java.util.List<org.opendaylight.genius.mdsalutil.BucketInfo> localBucketInfo, java.util.List<org.opendaylight.genius.mdsalutil.BucketInfo> remoteBucketInfo)voidupdateDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp, boolean isTunnelUp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType)This method is invoked when the tunnel status is deleted.voidwriteConfTransTypeConfigDS() 
 - 
 
- 
- 
Constructor Detail
- 
NexthopManager
@Inject public NexthopManager(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalApiManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService odlInterfaceRpcService, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService itmManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService lockManager, IElanService elanService, org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService salGroupService, org.opendaylight.infrautils.jobcoordinator.JobCoordinator jobCoordinator, FibUtil fibUtil, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager)Provides nexthop functions. Creates group ID pool- Parameters:
 dataBroker- - dataBroker referencemdsalApiManager- - mdsalApiManager referenceidManager- - idManager referenceodlInterfaceRpcService- - odlInterfaceRpcService referenceitmManager- - itmManager reference
 
 - 
 
- 
Method Detail
- 
getItmManager
public org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService getItmManager()
 
- 
createNextHopPointer
protected long createNextHopPointer(java.lang.String nexthopKey)
 
- 
removeNextHopPointer
protected void removeNextHopPointer(java.lang.String nexthopKey)
 
- 
getEgressActionsForInterface
protected java.util.List<org.opendaylight.genius.mdsalutil.ActionInfo> getEgressActionsForInterface(java.lang.String ifName, int actionKey, boolean isTunnelInterface, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String destIpPrefix) 
- 
getTunnelInterfaceName
protected @Nullable java.lang.String getTunnelInterfaceName(org.opendaylight.yangtools.yang.common.Uint64 srcDpId, org.opendaylight.yangtools.yang.common.Uint64 dstDpId) 
- 
getTunnelInterfaceName
protected @Nullable java.lang.String getTunnelInterfaceName(org.opendaylight.yangtools.yang.common.Uint64 srcDpId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress dstIp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType) 
- 
getLocalNextHopGroup
public long getLocalNextHopGroup(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String ipNextHopAddress) 
- 
getLocalSelectGroup
public long getLocalSelectGroup(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String ipNextHopAddress) 
- 
createLocalNextHop
public long createLocalNextHop(org.opendaylight.yangtools.yang.common.Uint32 vpnId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String ifName, java.lang.String primaryIpAddress, java.lang.String currDestIpPrefix, java.lang.String gwMacAddress, org.opendaylight.yangtools.yang.common.Uint32 parentVpnId) 
- 
addVpnNexthopToDS
protected void addVpnNexthopToDS(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String primaryIpAddr, java.lang.String currIpAddr, long egressPointer) 
- 
getVpnNextHopIpPrefixIdentifier
protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<IpAdjacencies> getVpnNextHopIpPrefixIdentifier(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String primaryIpAddress, java.lang.String ipPrefix)
 
- 
getVpnNexthop
protected @Nullable VpnNexthop getVpnNexthop(org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String ipAddress)
 
- 
getRemoteNextHopPointer
public @Nullable org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResult getRemoteNextHopPointer(org.opendaylight.yangtools.yang.common.Uint64 remoteDpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String prefixIp, @Nullable java.lang.String nextHopIp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType) 
- 
removeLocalNextHop
public void removeLocalNextHop(org.opendaylight.yangtools.yang.common.Uint64 dpnId, org.opendaylight.yangtools.yang.common.Uint32 vpnId, java.lang.String primaryIpAddress, java.lang.String currDestIpPrefix) 
- 
setConfTransType
public void setConfTransType(java.lang.String service, java.lang.String transportType) 
- 
writeConfTransTypeConfigDS
public void writeConfTransTypeConfigDS()
 
- 
getConfiguredTransportTypeL3VPN
public L3VPNTransportTypes getConfiguredTransportTypeL3VPN()
 
- 
getReqTransType
public java.lang.String getReqTransType()
 
- 
getConfTransportTypeIdentifier
public org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ConfTransportTypeL3vpn> getConfTransportTypeIdentifier()
 
- 
getReqTunType
public java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> getReqTunType(java.lang.String transportType)
 
- 
getTransportTypeStr
public java.lang.String getTransportTypeStr(java.lang.String tunType)
 
- 
close
@PreDestroy public void close()
- Specified by:
 closein interfacejava.lang.AutoCloseable
 
- 
setupLoadBalancingNextHop
protected long setupLoadBalancingNextHop(org.opendaylight.yangtools.yang.common.Uint32 parentVpnId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destPrefix, java.util.List<org.opendaylight.genius.mdsalutil.BucketInfo> localBucketInfo, java.util.List<org.opendaylight.genius.mdsalutil.BucketInfo> remoteBucketInfo) 
- 
deleteLoadBalancingNextHop
protected void deleteLoadBalancingNextHop(org.opendaylight.yangtools.yang.common.Uint32 parentVpnId, org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destPrefix) 
- 
createDcGwLoadBalancingGroup
public void createDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType) 
- 
removeDcGwLoadBalancingGroup
public void removeDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp)This method is invoked when the neighbor is removed from DS. All the LB groups which point to the given destination will be deleted. 
- 
updateDcGwLoadBalancingGroup
public void updateDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp, boolean isTunnelUp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType)This method is invoked when the tunnel status is deleted. All the buckets which point to given destination will be marked down. 
- 
programDcGwLoadBalancingGroup
public void programDcGwLoadBalancingGroup(org.opendaylight.yangtools.yang.common.Uint64 dpnId, java.lang.String destinationIp, int addRemoveOrUpdate, boolean isTunnelUp, java.lang.Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase> tunnelType) 
 - 
 
 -