@Singleton public class CloudServiceChainProvider extends Object implements ICloudServiceChain
Constructor and Description |
---|
CloudServiceChainProvider(VPNServiceChainHandler vpnServiceChainHandler,
ElanServiceChainHandler elanServiceChainHandler) |
Modifier and Type | Method and Description |
---|---|
void |
programElanScfPipeline(String elanName,
short tableId,
int scfTag,
int elanLportTag,
int addOrRemove) |
void |
programElanScfPipeline(String elanName,
short tableId,
long scfTag,
int elanLportTag,
boolean isLastServiceChain,
int addOrRemove)
Programs the needed flows for sending traffic to the SCF pipeline when
it is coming from an L2-GW (ELAN) and also for handing over that
traffic from SCF to ELAN when the packets does not match any Service
Chain.
|
void |
programScfToVpnPipeline(String vpnId,
long scfTag,
int scsTag,
long dpnId,
int lportTag,
boolean isLastServiceChain,
int addOrRemove)
Creates/removes the flows that handover packets from SCF pipeline to a
specific VPN.
|
void |
programVpnToScfPipeline(String vpnId,
short tableId,
long scfTag,
int lportTag,
int addOrRemove)
Creates/removes the flows that send the packets from a VPN to the SCF
domain.
|
void |
removeElanPseudoPortFlows(String elanName,
int elanPseudoLportTag)
Removes all Flow entries (ExtTunnelTable + LPortDispatcher) that are
related to a given ElanPseudoLport.
|
void |
removeVpnPseudoPortFlows(String vpnInstanceName,
int vpnPseudoLportTag)
Removes all Flow entries (LFIB + LPortDispatcher) that are related to a
given VpnPseudoLport.
|
@Inject public CloudServiceChainProvider(VPNServiceChainHandler vpnServiceChainHandler, ElanServiceChainHandler elanServiceChainHandler)
public void programVpnToScfPipeline(String vpnId, short tableId, long scfTag, int lportTag, int addOrRemove)
ICloudServiceChain
programVpnToScfPipeline
in interface ICloudServiceChain
vpnId
- Vpn instance name, typically the UUIDtableId
- Id of the SCF pipeline to where LPortDispatcher must send
the packet. Typically it should by Uplink or Downlink Dynamic
Subs FilterscfTag
- ServiceChainForwarding TaglportTag
- LportTag of the VPN Pseudo Logical PortaddOrRemove
- states if pipeline must be created or removedpublic void programScfToVpnPipeline(String vpnId, long scfTag, int scsTag, long dpnId, int lportTag, boolean isLastServiceChain, int addOrRemove)
ICloudServiceChain
programScfToVpnPipeline
in interface ICloudServiceChain
vpnId
- Vpn instance name, typically the UUIDscfTag
- ServiceChainForwarding TagscsTag
- Service Chain TagdpnId
- DPN where the ingress Port of the ScHop is locatedlportTag
- Lport tag of the VpnPseudoPortisLastServiceChain
- Only considered in removal operations. States
if there are no more ServiceChains using the VPNPseudoPort as
egress port.addOrRemove
- States if the flows must be added or removedpublic void removeVpnPseudoPortFlows(String vpnInstanceName, int vpnPseudoLportTag)
ICloudServiceChain
removeVpnPseudoPortFlows
in interface ICloudServiceChain
vpnInstanceName
- Name of the VPN, typically its UUIDvpnPseudoLportTag
- Lport tag of the VpnPseudoPortpublic void programElanScfPipeline(String elanName, short tableId, long scfTag, int elanLportTag, boolean isLastServiceChain, int addOrRemove)
ICloudServiceChain
programElanScfPipeline
in interface ICloudServiceChain
elanName
- Elan instance name, typically the UUID. Needed to
retrieve the VNI and the elanTag.scfTag
- ServiceChainForwarding TagelanLportTag
- LPortTag of the Elan Pseudo PortisLastServiceChain
- Only considered in removal operations. States
if there are no more ServiceChains using the ElanPseudoPort as
ingress port.addOrRemove
- States if the flows must be added or removedpublic void programElanScfPipeline(String elanName, short tableId, int scfTag, int elanLportTag, int addOrRemove)
programElanScfPipeline
in interface ICloudServiceChain
public void removeElanPseudoPortFlows(String elanName, int elanPseudoLportTag)
ICloudServiceChain
removeElanPseudoPortFlows
in interface ICloudServiceChain
elanName
- Name of the Elan InstanceelanPseudoLportTag
- Lport tag of the ElanPseudoPortCopyright © 2018 OpenDaylight. All rights reserved.