@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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> 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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> 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) |
boolean |
checkFibEntryExist(String rd,
String prefix,
String nextHopIp) |
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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> tx) |
void |
removeFibEntry(String rd,
String prefix,
org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeConfigTxn) |
void |
removeOrUpdateFibEntry(String rd,
String prefix,
String nextHopToRemove,
org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeConfigTxn)
Removes a specific Nexthop from a VrfEntry.
|
static void |
removeOrUpdateNextHopInfo(BigInteger dpnId,
String nextHopKey,
String groupId,
Nexthops nexthops,
org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> tx) |
void |
removeVrfTable(String rd,
org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> 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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> 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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> confTx,
org.opendaylight.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> operTx,
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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> 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 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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> 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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeConfigTxn)
public void addFibEntryForRouterInterface(String rd, String prefix, RouterInterface routerInterface, long label, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeConfigTxn)
public void removeFibEntry(String rd, String prefix, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeConfigTxn)
public void removeOrUpdateFibEntry(String rd, String prefix, String nextHopToRemove, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> 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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> writeConfigTxn)
public static Optional<Long> getLabelForNextHop(VrfEntry vrfEntry, String nextHopIp)
@Nullable 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)
@Nullable 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.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Configuration> confTx, org.opendaylight.genius.infra.TypedReadWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> operTx, String tunnelIpRemoved, String primaryRd, String prefix) throws ExecutionException, InterruptedException
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.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> tx)
public static void removeDpnIdToNextHopInfo(String destinationIp, BigInteger dpnId, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> tx)
public static void removeOrUpdateNextHopInfo(BigInteger dpnId, String nextHopKey, String groupId, Nexthops nexthops, org.opendaylight.genius.infra.TypedWriteTransaction<org.opendaylight.genius.infra.Datastore.Operational> 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.