@Singleton public class FibUtil extends Object
Constructor and Description |
---|
FibUtil(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker,
IElanService elanManager,
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager,
org.opendaylight.genius.itm.api.IITMProvider iitmProvider) |
Modifier and Type | Method and Description |
---|---|
void |
addFibEntryForRouterInterface(String rd,
String prefix,
RouterInterface routerInterface,
long label,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
void |
addOrUpdateFibEntry(String rd,
String macAddress,
String prefix,
List<String> nextHopList,
VrfEntryBase.EncapType encapType,
long label,
long l3vni,
String gwMacAddress,
String parentVpnRd,
RouteOrigin origin,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
void |
addVrfTable(String rd,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> |
buildStateInterfaceId(String interfaceName) |
static String |
getBroadcastAddressFromCidr(String cidr) |
static String |
getCreateLocalNextHopJobKey(Long vpnId,
BigInteger dpnId,
String prefix) |
static String |
getCreateRemoteNextHopJobKey(Long vpnId,
BigInteger dpnId,
String prefix) |
com.google.common.base.Optional<DpnLbNexthops> |
getDpnLbNexthops(BigInteger dpnId,
String destinationIp) |
static Optional<String> |
getFirstNextHopAddress(VrfEntry vrfEntry) |
static String |
getGreLbGroupKey(List<String> availableDcGws) |
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface |
getInterfaceStateFromOperDS(String interfaceName) |
static String |
getIpPrefix(String prefix) |
static String |
getJobKeyForRdPrefix(String rd,
String prefix) |
static String |
getJobKeyForVpnIdDpnId(Long vpnId,
BigInteger dpnId) |
static Optional<Long> |
getLabelForNextHop(VrfEntry vrfEntry,
String nextHopIp) |
static Optional<Long> |
getLabelFromRoutePaths(VrfEntry vrfEntry) |
List<String> |
getNextHopAddresses(String rd,
String prefix) |
static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VrfEntry> |
getNextHopIdentifier(String rd,
String prefix) |
com.google.common.base.Optional<Nexthops> |
getNexthops(String nextHopKey) |
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList |
getTunnelState(String interfaceName) |
long |
getVpnId(String vpnName) |
String |
getVpnNameFromId(long vpnId) |
com.google.common.base.Optional<String> |
getVpnNameFromRd(String rd)
Retrieves the VpnInstance name (typically the VPN Uuid) out from the route-distinguisher.
|
boolean |
isInterfacePresentInDpn(String vpnName,
BigInteger dpnId) |
static boolean |
isTunnelInterface(org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResult adjacencyResult) |
static boolean |
lockCluster(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService lockManager,
String lockName,
long tryLockPeriod) |
static void |
removeDpnIdToNextHopInfo(String destinationIp,
BigInteger dpnId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx) |
void |
removeFibEntry(String rd,
String prefix,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
void |
removeOrUpdateFibEntry(String rd,
String prefix,
String nextHopToRemove,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
Removes a specific Nexthop from a VrfEntry.
|
static void |
removeOrUpdateNextHopInfo(BigInteger dpnId,
String nextHopKey,
String groupId,
Nexthops nexthops,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx) |
void |
removeVrfTable(String rd,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
static void |
unlockCluster(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService lockManager,
String lockName) |
static void |
updateLbGroupInfo(BigInteger dpnId,
String destinationIp,
String groupIdKey,
String groupId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx) |
void |
updateRoutePathForFibEntry(String rd,
String prefix,
String nextHop,
long label,
boolean nextHopAdd,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
Adds or removes nextHop from routePath based on the flag nextHopAdd.
|
void |
updateUsedRdAndVpnToExtraRoute(org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeOperTxn,
String tunnelIpRemoved,
String primaryRd,
String prefix) |
void |
writeFibEntryToDs(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VrfEntry> vrfEntryId,
String prefix,
List<String> nextHopList,
long label,
Long l3vni,
VrfEntryBase.EncapType encapType,
RouteOrigin origin,
String macAddress,
String gatewayMacAddress,
String parentVpnRd,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
@Inject public FibUtil(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, IElanService elanManager, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManager, org.opendaylight.genius.itm.api.IITMProvider iitmProvider)
public long getVpnId(String vpnName)
public com.google.common.base.Optional<String> getVpnNameFromRd(String rd)
rd
- The route-distinguisherpublic String getVpnNameFromId(long vpnId)
public void addOrUpdateFibEntry(String rd, String macAddress, String prefix, List<String> nextHopList, VrfEntryBase.EncapType encapType, long label, long l3vni, String gwMacAddress, String parentVpnRd, RouteOrigin origin, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
public void writeFibEntryToDs(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VrfEntry> vrfEntryId, String prefix, List<String> nextHopList, long label, Long l3vni, VrfEntryBase.EncapType encapType, RouteOrigin origin, String macAddress, String gatewayMacAddress, String parentVpnRd, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
public void addFibEntryForRouterInterface(String rd, String prefix, RouterInterface routerInterface, long label, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
public void removeFibEntry(String rd, String prefix, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
public void removeOrUpdateFibEntry(String rd, String prefix, String nextHopToRemove, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
rd
- Route-Distinguisher to which the VrfEntry belongs toprefix
- Destination of the routenextHopToRemove
- Specific nexthop within the Route to be removed.
If null or empty, then the whole VrfEntry is removedpublic void updateRoutePathForFibEntry(String rd, String prefix, String nextHop, long label, boolean nextHopAdd, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
public void addVrfTable(String rd, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
public void removeVrfTable(String rd, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
public static Optional<Long> getLabelForNextHop(VrfEntry vrfEntry, String nextHopIp)
public org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList getTunnelState(String interfaceName) throws org.opendaylight.controller.md.sal.common.api.data.ReadFailedException
org.opendaylight.controller.md.sal.common.api.data.ReadFailedException
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> buildStateInterfaceId(String interfaceName)
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface getInterfaceStateFromOperDS(String interfaceName)
public static String getCreateLocalNextHopJobKey(Long vpnId, BigInteger dpnId, String prefix)
public static String getCreateRemoteNextHopJobKey(Long vpnId, BigInteger dpnId, String prefix)
public static String getJobKeyForVpnIdDpnId(Long vpnId, BigInteger dpnId)
public void updateUsedRdAndVpnToExtraRoute(org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeOperTxn, String tunnelIpRemoved, String primaryRd, String prefix)
public static boolean isTunnelInterface(org.opendaylight.netvirt.fibmanager.NexthopManager.AdjacencyResult adjacencyResult)
public static org.opendaylight.yangtools.yang.binding.InstanceIdentifier<VrfEntry> getNextHopIdentifier(String rd, String prefix)
public static void updateLbGroupInfo(BigInteger dpnId, String destinationIp, String groupIdKey, String groupId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx)
public static void removeDpnIdToNextHopInfo(String destinationIp, BigInteger dpnId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx)
public static void removeOrUpdateNextHopInfo(BigInteger dpnId, String nextHopKey, String groupId, Nexthops nexthops, org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx)
public com.google.common.base.Optional<DpnLbNexthops> getDpnLbNexthops(BigInteger dpnId, String destinationIp)
public static boolean lockCluster(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService lockManager, String lockName, long tryLockPeriod)
public static void unlockCluster(org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService lockManager, String lockName)
public boolean isInterfacePresentInDpn(String vpnName, BigInteger dpnId)
Copyright © 2019 OpenDaylight. All rights reserved.