@Singleton public class VPNServiceChainHandler extends Object implements AutoCloseable
Constructor and Description |
---|
VPNServiceChainHandler(org.opendaylight.controller.md.sal.binding.api.DataBroker db,
org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager,
IVpnFootprintService vpnFootprintService,
org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager ifaceMgr) |
Modifier and Type | Method and Description |
---|---|
void |
bindScfOnVpnInterface(String ifName,
int scfTag) |
void |
close() |
com.google.common.base.Optional<VpnToPseudoPortData> |
getScfInfoForVpn(String vpnName) |
protected VpnInstanceOpDataEntry |
getVpnInstance(String rd)
Getting the VpnInstance from RouteDistinguisher.
|
void |
init() |
void |
programScfToVpnPipeline(String vpnName,
long scfTag,
int servChainTag,
long dpnId,
int vpnPseudoLportTag,
boolean isLastServiceChain,
int addOrRemove)
L3VPN Service chaining: It moves traffic from a ServiceChain to a L3VPN.
|
void |
programVpnToScfPipeline(String vpnName,
short tableId,
long scfTag,
int lportTag,
int addOrRemove)
Programs the necessary flows in LFIB and LPortDispatcher table so that
the packets coming from a given VPN are delivered to a given
ServiceChain Pipeline.
|
void |
programVpnToScfPipelineOnDpn(BigInteger dpnId,
List<VrfEntry> vpnVrfEntries,
short tableIdToGoTo,
int scfTag,
int lportTag,
int addOrRemove) |
void |
removeVpnPseudoPortFlows(String vpnInstanceName,
int vpnPseudoLportTag)
Removes all Flows in LFIB and LPortDispatcher that are related to this VpnPseudoLPort.
|
void |
unbindScfOnVpnInterface(String ifName) |
@Inject public VPNServiceChainHandler(org.opendaylight.controller.md.sal.binding.api.DataBroker db, org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager mdsalManager, IVpnFootprintService vpnFootprintService, org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager ifaceMgr)
@PostConstruct public void init()
@PreDestroy public void close() throws Exception
close
in interface AutoCloseable
Exception
protected VpnInstanceOpDataEntry getVpnInstance(String rd)
rd
- the Route-Distinguisherpublic void programVpnToScfPipeline(String vpnName, short tableId, long scfTag, int lportTag, int addOrRemove)
vpnName
- Name of the VPN. Typically the UUIDtableId
- Table to which the LPortDispatcher table sends the packet
to (Uplink or Downlink Subsc table)scfTag
- Scf tag to the SCF to which the Vpn is linked to.lportTag
- VpnPseudo Port lportTagaddOrRemove
- States if the VPN2SCF Pipeline must be installed or
removedpublic void programVpnToScfPipelineOnDpn(BigInteger dpnId, List<VrfEntry> vpnVrfEntries, short tableIdToGoTo, int scfTag, int lportTag, int addOrRemove)
public void programScfToVpnPipeline(String vpnName, long scfTag, int servChainTag, long dpnId, int vpnPseudoLportTag, boolean isLastServiceChain, int addOrRemove)
vpnName
- Vpn Instance Name. Typicall the UUIDscfTag
- ServiceChainForwarding TagservChainTag
- ServiceChain TagdpnId
- DpnId in which the egress pseudo logical port belongsvpnPseudoLportTag
- VpnPseudo Logical port tagisLastServiceChain
- Flag stating if there is no other ServiceChain
using this VpnPseudoPortaddOrRemove
- States if pipeline must be installed or removedpublic void removeVpnPseudoPortFlows(String vpnInstanceName, int vpnPseudoLportTag)
vpnInstanceName
- vpn Instance namevpnPseudoLportTag
- vpnPseudoLPort tagpublic void bindScfOnVpnInterface(String ifName, int scfTag)
public void unbindScfOnVpnInterface(String ifName)
public com.google.common.base.Optional<VpnToPseudoPortData> getScfInfoForVpn(String vpnName)
Copyright © 2018 OpenDaylight. All rights reserved.