@Singleton public class VpnManagerImpl extends Object implements IVpnManager
Constructor and Description |
---|
VpnManagerImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker,
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManagerService,
org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
IElanService elanService,
org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager,
VpnSubnetRouteHandler vpnSubnetRouteHandler,
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService ifaceMgrRpcService,
IVpnLinkService ivpnLinkService,
IFibManager fibManager,
IBgpManager bgpManager,
InterVpnLinkCache interVpnLinkCache,
org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar dataTreeEventCallbackRegistrar,
org.opendaylight.genius.mdsalutil.UpgradeState upgradeState,
org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService itmRpcService) |
Modifier and Type | Method and Description |
---|---|
void |
addArpResponderFlowsToExternalNetworkIps(String id,
Collection<String> fixedIps,
String macAddress,
BigInteger dpnId,
String extInterfaceName,
int lportTag,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx) |
void |
addArpResponderFlowsToExternalNetworkIps(String id,
Collection<String> fixedIps,
String macAddress,
BigInteger dpnId,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx) |
void |
addExtraRoute(String vpnName,
String destination,
String nextHop,
String rd,
String routerID,
int label,
RouteOrigin origin) |
void |
addExtraRoute(String vpnName,
String destination,
String nextHop,
String rd,
String routerID,
Long l3vni,
RouteOrigin origin,
String intfName,
Adjacency operationalAdj,
VrfEntryBase.EncapType encapType,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
void |
addRouterGwMacFlow(String routerName,
String routerGwMac,
BigInteger dpnId,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId,
String subnetVpnName,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx) |
void |
addSubnetMacIntoVpnInstance(String vpnName,
String subnetVpnName,
String srcMacAddress,
BigInteger dpnId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx) |
boolean |
checkForOverlappingSubnets(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid network,
List<Subnetmap> subnetmapList,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid vpn,
Set<VpnTarget> routeTargets,
List<String> failedNwList) |
void |
delExtraRoute(String vpnName,
String destination,
String nextHop,
String rd,
String routerID) |
void |
delExtraRoute(String vpnName,
String destination,
String nextHop,
String rd,
String routerID,
String intfName,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
boolean |
existsVpn(String vpnName)
Returns true if the specified VPN exists.
|
List<BigInteger> |
getDpnsOnVpn(String vpnInstanceName)
Retrieves the list of DPNs where the specified VPN has footprint.
|
List<org.opendaylight.genius.mdsalutil.MatchInfoBase> |
getEgressMatchesForVpn(String vpnName) |
VpnPortipToPort |
getNeutronPortFromVpnPortFixedIp(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String vpnName,
String fixedIp) |
String |
getPrimaryRdFromVpnInstance(VpnInstance vpnInstance) |
Set<VpnTarget> |
getRtListForVpn(String vpnName) |
VpnInstance |
getVpnInstance(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String vpnInstanceName) |
String |
getVpnRd(org.opendaylight.controller.md.sal.binding.api.DataBroker broker,
String vpnName) |
boolean |
isVPNConfigured() |
void |
onSubnetAddedToVpn(Subnetmap subnetmap,
boolean isBgpVpn,
Long elanTag) |
void |
onSubnetDeletedFromVpn(Subnetmap subnetmap,
boolean isBgpVpn) |
void |
removeArpResponderFlowsToExternalNetworkIps(String id,
Collection<String> fixedIps,
BigInteger dpnId,
String extInterfaceName,
int lportTag) |
void |
removeArpResponderFlowsToExternalNetworkIps(String id,
Collection<String> fixedIps,
String macAddress,
BigInteger dpnId,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId) |
void |
removePrefixFromBGP(String vpnName,
String primaryRd,
String extraRouteRd,
String vpnInterfaceName,
String prefix,
String nextHop,
String nextHopTunnelIp,
BigInteger dpnId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn) |
void |
removeRouterGwMacFlow(String routerName,
String routerGwMac,
BigInteger dpnId,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId,
String subnetVpnName,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx) |
void |
removeRouteTargetsToSubnetAssociation(Set<VpnTarget> routeTargets,
String cidr,
String vpnName) |
void |
removeSubnetMacFromVpnInstance(String vpnName,
String subnetVpnName,
String srcMacAddress,
BigInteger dpnId,
org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx) |
void |
start() |
void |
updateRouteTargetsToSubnetAssociation(Set<VpnTarget> routeTargets,
String cidr,
String vpnName) |
@Inject public VpnManagerImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService idManagerService, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, IElanService elanService, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager interfaceManager, VpnSubnetRouteHandler vpnSubnetRouteHandler, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService ifaceMgrRpcService, IVpnLinkService ivpnLinkService, IFibManager fibManager, IBgpManager bgpManager, InterVpnLinkCache interVpnLinkCache, org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar dataTreeEventCallbackRegistrar, org.opendaylight.genius.mdsalutil.UpgradeState upgradeState, org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService itmRpcService)
@PostConstruct public void start()
public void addExtraRoute(String vpnName, String destination, String nextHop, String rd, String routerID, int label, RouteOrigin origin)
addExtraRoute
in interface IVpnManager
public void addExtraRoute(String vpnName, String destination, String nextHop, String rd, String routerID, Long l3vni, RouteOrigin origin, String intfName, Adjacency operationalAdj, VrfEntryBase.EncapType encapType, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
addExtraRoute
in interface IVpnManager
public void delExtraRoute(String vpnName, String destination, String nextHop, String rd, String routerID)
delExtraRoute
in interface IVpnManager
public void delExtraRoute(String vpnName, String destination, String nextHop, String rd, String routerID, String intfName, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
delExtraRoute
in interface IVpnManager
public void removePrefixFromBGP(String vpnName, String primaryRd, String extraRouteRd, String vpnInterfaceName, String prefix, String nextHop, String nextHopTunnelIp, BigInteger dpnId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeConfigTxn)
removePrefixFromBGP
in interface IVpnManager
public boolean isVPNConfigured()
isVPNConfigured
in interface IVpnManager
public List<BigInteger> getDpnsOnVpn(String vpnInstanceName)
IVpnManager
getDpnsOnVpn
in interface IVpnManager
vpnInstanceName
- The name of the Vpn instancepublic boolean existsVpn(String vpnName)
IVpnManager
existsVpn
in interface IVpnManager
vpnName
- it must match against the vpn-instance-name attrib in one of the VpnInstancespublic void addSubnetMacIntoVpnInstance(String vpnName, String subnetVpnName, String srcMacAddress, BigInteger dpnId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx)
addSubnetMacIntoVpnInstance
in interface IVpnManager
public void removeSubnetMacFromVpnInstance(String vpnName, String subnetVpnName, String srcMacAddress, BigInteger dpnId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction tx)
removeSubnetMacFromVpnInstance
in interface IVpnManager
public void addRouterGwMacFlow(String routerName, String routerGwMac, BigInteger dpnId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId, String subnetVpnName, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx)
addRouterGwMacFlow
in interface IVpnManager
public void removeRouterGwMacFlow(String routerName, String routerGwMac, BigInteger dpnId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId, String subnetVpnName, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx)
removeRouterGwMacFlow
in interface IVpnManager
public void addArpResponderFlowsToExternalNetworkIps(String id, Collection<String> fixedIps, String macAddress, BigInteger dpnId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx)
addArpResponderFlowsToExternalNetworkIps
in interface IVpnManager
public void addArpResponderFlowsToExternalNetworkIps(String id, Collection<String> fixedIps, String macAddress, BigInteger dpnId, String extInterfaceName, int lportTag, org.opendaylight.controller.md.sal.binding.api.WriteTransaction writeTx)
addArpResponderFlowsToExternalNetworkIps
in interface IVpnManager
public void removeArpResponderFlowsToExternalNetworkIps(String id, Collection<String> fixedIps, String macAddress, BigInteger dpnId, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid extNetworkId)
removeArpResponderFlowsToExternalNetworkIps
in interface IVpnManager
public void removeArpResponderFlowsToExternalNetworkIps(String id, Collection<String> fixedIps, BigInteger dpnId, String extInterfaceName, int lportTag)
removeArpResponderFlowsToExternalNetworkIps
in interface IVpnManager
public String getPrimaryRdFromVpnInstance(VpnInstance vpnInstance)
getPrimaryRdFromVpnInstance
in interface IVpnManager
public List<org.opendaylight.genius.mdsalutil.MatchInfoBase> getEgressMatchesForVpn(String vpnName)
getEgressMatchesForVpn
in interface IVpnManager
public void onSubnetAddedToVpn(Subnetmap subnetmap, boolean isBgpVpn, Long elanTag)
onSubnetAddedToVpn
in interface IVpnManager
public void onSubnetDeletedFromVpn(Subnetmap subnetmap, boolean isBgpVpn)
onSubnetDeletedFromVpn
in interface IVpnManager
public VpnInstance getVpnInstance(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String vpnInstanceName)
getVpnInstance
in interface IVpnManager
public String getVpnRd(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String vpnName)
getVpnRd
in interface IVpnManager
public VpnPortipToPort getNeutronPortFromVpnPortFixedIp(org.opendaylight.controller.md.sal.binding.api.DataBroker broker, String vpnName, String fixedIp)
getNeutronPortFromVpnPortFixedIp
in interface IVpnManager
public Set<VpnTarget> getRtListForVpn(String vpnName)
getRtListForVpn
in interface IVpnManager
public void updateRouteTargetsToSubnetAssociation(Set<VpnTarget> routeTargets, String cidr, String vpnName)
updateRouteTargetsToSubnetAssociation
in interface IVpnManager
public void removeRouteTargetsToSubnetAssociation(Set<VpnTarget> routeTargets, String cidr, String vpnName)
removeRouteTargetsToSubnetAssociation
in interface IVpnManager
public boolean checkForOverlappingSubnets(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid network, List<Subnetmap> subnetmapList, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid vpn, Set<VpnTarget> routeTargets, List<String> failedNwList)
checkForOverlappingSubnets
in interface IVpnManager
Copyright © 2019 OpenDaylight. All rights reserved.