public class SfcOfFlowProgrammerImpl extends Object implements SfcOfFlowProgrammerInterface
Constructor and Description |
---|
SfcOfFlowProgrammerImpl() |
SfcOfFlowProgrammerImpl(SfcOfFlowWriterInterface sfcOfFlowWriter) |
Modifier and Type | Method and Description |
---|---|
boolean |
compareClassificationTableCookie(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie cookie)
Check if the given cookie belongs to the Classification table.
|
void |
configureArpTransportIngressFlow(String sffNodeName,
String mac)
Create an ARP responder flow in the Transport Ingress table.
|
void |
configureClassifierTableDpdkInput(String sffNodeName,
Long inPort)
Set DPDK input flow in the Classifier table for OVS DPDK.
|
void |
configureClassifierTableDpdkOutput(String sffNodeName,
Long outPort)
Set DPDK output flow in the Classifier table for OVS DPDK.
|
void |
configureClassifierTableMatchAny(String sffNodeName)
Set the match any flow in the Classifier table to go to the Transport
Ingress table.
|
void |
configureGroup(String sffNodeName,
String openflowNodeId,
String sfgName,
long sfgId,
int groupType,
List<GroupBucketInfo> bucketInfos,
boolean isAddGroup) |
void |
configureGroupNextHopFlow(String sffNodeName,
long sfpId,
String srcMac,
long groupId,
String groupName) |
void |
configureIpv4TransportIngressFlow(String sffNodeName)
Configure IPv4 Transport Ingress flows.
|
void |
configureMacChainingNextHopFlow(String sffNodeName,
String vmac,
String dstSfMac,
String nextVMac,
boolean l2Transparent)
Configure the Next Hop by matching on the virtual MAC address containing path and hop ID
for MAC chaining encapsulation.
|
void |
configureMacChainingSfTransportEgressFlow(String sffNodeName,
String dstMac,
String port,
String vmac) |
void |
configureMacChainingTransportIngressFlow(String sffNodeName)
Configure a Transport Ingress flow.
|
void |
configureMacNextHopFlow(String sffNodeName,
long pathId,
String srcMac,
String dstMac)
Configure the MAC/VLAN Next Hop by matching on the SrcMac and on the
pathId stored in the metadata.
|
void |
configureMplsLastHopTransportEgressFlow(String sffNodeName,
String srcMac,
String dstMac,
long mplsLabel,
String port,
long pathId)
Configure the MPLS Last Hop Transport Egress flow by matching on the RSP
path ID in the metadata.
|
void |
configureMplsPathMapperFlow(String sffNodeName,
long mplsLabel,
long pathId,
boolean isSf)
Create an MPLS Path Mapper flow.
|
void |
configureMplsTransportEgressFlow(String sffNodeName,
String srcMac,
String dstMac,
long mplsLabel,
String port,
long pathId)
Configure the MPLS Transport Egress flow by matching on the RSP path ID
in the metadata.
|
void |
configureMplsTransportEgressFlow(String sffNodeName,
String srcMac,
String dstMac,
long mplsLabel,
String port,
long pathId,
String cookieStr)
Internal Util method used for above MPLS Transport Egress methods.
|
void |
configureMplsTransportIngressFlow(String sffNodeName)
Configure an MPLS Transport Ingress flow, by matching on EtherType MPLS
Ucast.
|
void |
configureNextHopTableMatchAny(String sffNodeName)
Set the match any flow in the Next Hop table to go to the Transport
Egress table.
|
void |
configureNshEthLastHopTransportEgressFlow(String sffNodeName,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress sffIpAddress,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress sfMacAddress,
long nshNsp,
short nshNsi)
Used by logical sff processor in order to write chain egress flows.
|
void |
configureNshEthNextHopFlow(String sffNodeName,
String srcMac,
String dstMac,
long nsp,
short nsi)
Configure the NshEth Next Hop by matching on the NSH pathId and index
stored in the NSH header.
|
void |
configureNshEthTransportEgressFlow(String sffOpenflowNodeName,
long nsp,
short nsi,
List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionList,
String flowName)
Configure transport egress flows, using a list of externally provided
actions.
|
void |
configureNshEthTransportEgressFlow(String sffNodeName,
long nshNsp,
short nshNsi,
String port)
Configure the NSH Ethernet Transport Egress flow by matching on the NSP
and NSI.
|
void |
configureNshNscTransportEgressFlow(String sffNodeName,
long nshNsp,
short nshNsi,
String port)
For NSH, Return the packet to INPORT if the NSH Nsc1 Register is not
present (==0) If it is present, it will be handled by the flow created in
ConfigureTransportEgressFlowThread() This flow will have a higher
priority than the flow created in ConfigureTransportEgressFlowThread().
|
void |
configureNshVxgpeAppCoexistTransportEgressFlow(String sffNodeName,
long nshNsp,
short nshNsi,
String sffIp) |
void |
configureNshVxgpeLastHopTransportEgressFlow(String sffNodeName,
long nshNsp,
short nshNsi,
String port)
Configure the VxLAN GPE NSH Transport Egress flow by matching on the NSP
and NSI.
|
void |
configureNshVxgpeNextHopFlow(String sffNodeName,
String dstIp,
String nshProxyIp,
long nshNsp,
short nshNsi)
Configure the NshVxgpe NSH Next Hop by matching on the NSH pathId and
index stored in the NSH header.
|
void |
configureNshVxgpeSfLoopbackEncapsulatedEgressFlow(String sffNodeName,
String sfIp,
short vxlanUdpPort,
long sffPort) |
void |
configureNshVxgpeSfReturnLoopbackIngressFlow(String sffNodeName,
short vxlanUdpPort,
long sffPort) |
void |
configureNshVxgpeTransportEgressFlow(String sffNodeName,
long nshNsp,
short nshNsi,
String port) |
void |
configureNshVxgpeTransportIngressFlow(String sffNodeName,
long nshNsp,
short nshNsi)
Configure a NshVxgpe Transport Ingress flow, by matching on EtherType
IPv4.
|
void |
configurePathMapperAclFlow(String sffNodeName,
String pktSrcIpStr,
String pktDstIpStr,
short pathId)
This table is populated as a result of PktIn for TCP Proxy SFs.
|
void |
configurePathMapperAclTableMatchAny(String sffNodeName)
Set the match any flow in the Path Mapper ACL table to go to the Next Hop
table.
|
void |
configurePathMapperTableMatchAny(String sffNodeName)
Set the match any flow in the Path Mapper table to go to the Path Mapper
ACL table.
|
void |
configureTransportEgressTableMatchAny(String sffNodeName)
Set the match any flow in the Transport Egress table to drop.
|
void |
configureTransportEgressTableMatchAnyResubmit(String sffNodeName,
short nextTableId)
Set the match any flow in the Transport Egress table to resubmit.
|
void |
configureTransportIngressTableMatchAny(String sffNodeName)
Set the match any flow in the Transport Ingress table to drop.
|
void |
configureTransportIngressTableMatchAnyResubmit(String sffNodeName,
short nextTableId)
Set the match any flow in the Transport Ingress table to resubmit.
|
void |
configureVlanLastHopTransportEgressFlow(String sffNodeName,
String srcMac,
String dstMac,
int dstVlan,
String port,
long pathId)
Configure the VLAN LastHop Transport Egress flow by matching on the RSP
path ID in the metadata.
|
void |
configureVlanPathMapperFlow(String sffNodeName,
int vlan,
long pathId,
boolean isSf)
Create a VLAN Path Mapper flow.
|
void |
configureVlanSfTransportEgressFlow(String sffNodeName,
String srcMac,
String dstMac,
int dstVlan,
String port,
long pathId,
boolean doPktin) |
void |
configureVlanTransportEgressFlow(String sffNodeName,
String srcMac,
String dstMac,
int dstVlan,
String port,
long pathId)
Configure the VLAN Transport Egress flow by matching on the RSP path ID
in the metadata.
|
void |
configureVlanTransportEgressFlow(String sffNodeName,
String srcMac,
String dstMac,
int dstVlan,
String port,
long pathId,
String cookieStr)
Internal Util method used for above VLAN Transport Egress methods.
|
void |
configureVlanTransportIngressFlow(String sffNodeName)
Configure a VLAN Transport Ingress flow.
|
Set<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId> |
deleteRspFlows(long rspId)
Deletes all flows created for a particular RSP and removes initialization
flows from SFFs if the last RSP was removed.
|
void |
flushFlows() |
short |
getMaxTableOffset() |
short |
getTableBase() |
short |
getTableEgress() |
void |
purgeFlows() |
void |
setFlowRspId(Long rspId) |
void |
setFlowWriter(SfcOfFlowWriterInterface sfcOfFlowWriter) |
void |
setTableBase(short tableBase) |
void |
setTableEgress(short tableEgress) |
void |
setTableIndexMapper(SfcTableIndexMapper tableIndexMapper)
Setter for the table index mapper (class which provides the tables to use
for Genius-based application coexistence).
|
void |
shutdown() |
public static final int COOKIE_BIGINT_HEX_RADIX
public static final String TRANSPORT_EGRESS_COOKIE_STR_BASE
public static final String TRANSPORT_EGRESS_NSH_VXGPE_COOKIE
public static final String TRANSPORT_EGRESS_NSH_VXGPE_NSC_COOKIE
public static final String TRANSPORT_EGRESS_NSH_VXGPE_LASTHOP_COOKIE
public static final String TRANSPORT_EGRESS_NSH_VXGPE_APPCOEXIST_COOKIE
public static final String TRANSPORT_EGRESS_NSH_ETH_COOKIE
public static final String TRANSPORT_EGRESS_NSH_ETH_LOGICAL_COOKIE
public static final String TRANSPORT_EGRESS_NSH_ETH_LASTHOP_PIPELINE_COOKIE
public static final String TRANSPORT_EGRESS_NSH_ETH_LASTHOP_TUNNEL_REMOTE_COOKIE
public static final String TRANSPORT_EGRESS_NSH_ETH_LASTHOP_TUNNEL_LOCAL_COOKIE
public static final String TRANSPORT_EGRESS_NSH_ETH_LASTHOP_NSH_REMOTE_COOKIE
public static final String TRANSPORT_EGRESS_NSH_ETH_LASTHOP_NSH_LOCAL_COOKIE
public static final String TRANSPORT_EGRESS_VLAN_COOKIE
public static final String TRANSPORT_EGRESS_VLAN_SF_COOKIE
public static final String TRANSPORT_EGRESS_VLAN_LASTHOP_COOKIE
public static final String TRANSPORT_EGRESS_MPLS_COOKIE
public static final String TRANSPORT_EGRESS_MPLS_LASTHOP_COOKIE
public static final String TRANSPORT_EGRESS_MAX_COOKIE
public static final String FLOW_NAME_DELIMITER
public static final String FLOW_NAME_MATCH_ANY
public static final String FLOW_NAME_MATCH_ANY_DROP
public static final String FLOW_NAME_MATCH_ANY_RESUBMIT
public static final String FLOW_NAME_CLASS_DPDK_OUT
public static final String FLOW_NAME_CLASS_DPDK_IN
public static final String FLOW_NAME_TRANSPORT_INGRESS
public static final String FLOW_NAME_TRANSPORT_INGRESS_ARP
public static final String FLOW_NAME_TRANSPORT_INGRESS_MAC
public static final String FLOW_NAME_TRANSPORT_INGRESS_MPLS
public static final String FLOW_NAME_TRANSPORT_INGRESS_TCP
public static final String FLOW_NAME_TRANSPORT_INGRESS_UDP
public static final String FLOW_NAME_TRANSPORT_INGRESS_VLAN
public static final String FLOW_NAME_PATH_MAPPER
public static final String FLOW_NAME_PATH_MAPPER_ACL
public static final String FLOW_NAME_NEXT_HOP
public static final String FLOW_NAME_TRANSPORT_EGRESS
public static final String FLOW_NAME_LASTHOP_TRANSPORT_EGRESS
public static final String FLOW_NAME_LASTHOP_TRANSPORT_EGRESS_PIPELINE
public static final String FLOW_NAME_LASTHOP_TRANSPORT_EGRESS_TUNNEL_REMOTE
public static final String FLOW_NAME_LASTHOP_TRANSPORT_EGRESS_TUNNEL_LOCAL
public static final String FLOW_NAME_LASTHOP_TRANSPORT_EGRESS_NSH_REMOTE
public static final String FLOW_NAME_LASTHOP_TRANSPORT_EGRESS_NSH_LOCAL
public static final String FLOW_NAME_APPCOEXIST_TRANSPORT_EGRESS
public static final String FLOW_NAME_SF_LOOPBACK_INGRESS
public static final String FLOW_NAME_SF_LOOPBACK_EGRESS
public static final String TRANSPORT_EGRESS_MAC_CHAINING_COOKIE
public static final BigInteger METADATA_MASK_SFP_MATCH
public static final short TABLE_INDEX_CLASSIFIER
public static final short TABLE_INDEX_TRANSPORT_INGRESS
public static final short TABLE_INDEX_PATH_MAPPER
public static final short TABLE_INDEX_PATH_MAPPER_ACL
public static final short TABLE_INDEX_NEXT_HOP
public static final short TABLE_INDEX_TRANSPORT_EGRESS
public static final short TABLE_INDEX_MAX_OFFSET
public static final int FLOW_PRIORITY_TRANSPORT_INGRESS
public static final int FLOW_PRIORITY_ARP_TRANSPORT_INGRESS
public static final int FLOW_PRIORITY_PATH_MAPPER
public static final int FLOW_PRIORITY_PATH_MAPPER_ACL
public static final int FLOW_PRIORITY_NEXT_HOP
public static final int FLOW_PRIORITY_TRANSPORT_EGRESS
public static final int FLOW_PRIORITY_TRANSPORT_EGRESS_TUNNEL_REMOTE
public static final int FLOW_PRIORITY_TRANSPORT_EGRESS_TUNNEL_LOCAL
public static final int FLOW_PRIORITY_TRANSPORT_EGRESS_NSH_REMOTE
public static final int FLOW_PRIORITY_TRANSPORT_EGRESS_NSH_LOCAL
public static final int FLOW_PRIORITY_TRANSPORT_EGRESS_PIPELINE
public static final int FLOW_PRIORITY_TRANSPORT_EGRESS_NSH
public static final int FLOW_PRIORITY_MATCH_ANY
public static final int FLOW_PRIORITY_CLASSIFIER
public static final short APP_COEXISTENCE_NOT_SET
public SfcOfFlowProgrammerImpl()
public SfcOfFlowProgrammerImpl(SfcOfFlowWriterInterface sfcOfFlowWriter)
public void setFlowWriter(SfcOfFlowWriterInterface sfcOfFlowWriter)
setFlowWriter
in interface SfcOfFlowProgrammerInterface
public void shutdown() throws ExecutionException, InterruptedException
shutdown
in interface SfcOfFlowProgrammerInterface
ExecutionException
InterruptedException
public short getTableBase()
getTableBase
in interface SfcOfFlowProgrammerInterface
public void setTableBase(short tableBase)
setTableBase
in interface SfcOfFlowProgrammerInterface
public short getTableEgress()
getTableEgress
in interface SfcOfFlowProgrammerInterface
public void setTableEgress(short tableEgress)
setTableEgress
in interface SfcOfFlowProgrammerInterface
public short getMaxTableOffset()
getMaxTableOffset
in interface SfcOfFlowProgrammerInterface
public void setFlowRspId(Long rspId)
setFlowRspId
in interface SfcOfFlowProgrammerInterface
public Set<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId> deleteRspFlows(long rspId)
SfcOfFlowProgrammerInterface
deleteRspFlows
in interface SfcOfFlowProgrammerInterface
rspId
- the id of the RSP to be deletedpublic void flushFlows()
flushFlows
in interface SfcOfFlowProgrammerInterface
public void purgeFlows()
purgeFlows
in interface SfcOfFlowProgrammerInterface
public boolean compareClassificationTableCookie(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie cookie)
cookie
- - the cookie to comparepublic void configureClassifierTableMatchAny(String sffNodeName)
configureClassifierTableMatchAny
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureClassifierTableDpdkOutput(String sffNodeName, Long outPort)
configureClassifierTableDpdkOutput
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureClassifierTableDpdkInput(String sffNodeName, Long inPort)
configureClassifierTableDpdkInput
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureTransportIngressTableMatchAny(String sffNodeName)
configureTransportIngressTableMatchAny
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureTransportIngressTableMatchAnyResubmit(String sffNodeName, short nextTableId)
configureTransportIngressTableMatchAnyResubmit
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tonextTableId
- - the table to resubmitpublic void configurePathMapperTableMatchAny(String sffNodeName)
configurePathMapperTableMatchAny
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configurePathMapperAclTableMatchAny(String sffNodeName)
configurePathMapperAclTableMatchAny
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureNextHopTableMatchAny(String sffNodeName)
configureNextHopTableMatchAny
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureTransportEgressTableMatchAny(String sffNodeName)
configureTransportEgressTableMatchAny
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureTransportEgressTableMatchAnyResubmit(String sffNodeName, short nextTableId)
SfcOfFlowProgrammerInterface
configureTransportEgressTableMatchAnyResubmit
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tonextTableId
- - the table to resubmitpublic void configureIpv4TransportIngressFlow(String sffNodeName)
configureIpv4TransportIngressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureVlanTransportIngressFlow(String sffNodeName)
configureVlanTransportIngressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureMacChainingTransportIngressFlow(String sffNodeName)
configureMacChainingTransportIngressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureNshVxgpeTransportIngressFlow(String sffNodeName, long nshNsp, short nshNsi)
configureNshVxgpeTransportIngressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureMplsTransportIngressFlow(String sffNodeName)
configureMplsTransportIngressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topublic void configureArpTransportIngressFlow(String sffNodeName, String mac)
configureArpTransportIngressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tomac
- - the SFF macpublic void configureNshVxgpeSfLoopbackEncapsulatedEgressFlow(String sffNodeName, String sfIp, short vxlanUdpPort, long sffPort)
configureNshVxgpeSfLoopbackEncapsulatedEgressFlow
in interface SfcOfFlowProgrammerInterface
public void configureNshVxgpeSfReturnLoopbackIngressFlow(String sffNodeName, short vxlanUdpPort, long sffPort)
configureNshVxgpeSfReturnLoopbackIngressFlow
in interface SfcOfFlowProgrammerInterface
public void configureMplsPathMapperFlow(String sffNodeName, long mplsLabel, long pathId, boolean isSf)
configureMplsPathMapperFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tomplsLabel
- - the mplsLabel to match onpathId
- - the RSP ID to write to the metadataisSf
- - if the flow is for an SF or SFFpublic void configureVlanPathMapperFlow(String sffNodeName, int vlan, long pathId, boolean isSf)
configureVlanPathMapperFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tovlan
- - the vlan tag to match onpathId
- - the RSP ID to write to the metadataisSf
- - if the flow is for an SF or SFFpublic void configurePathMapperAclFlow(String sffNodeName, String pktSrcIpStr, String pktDstIpStr, short pathId)
sffNodeName
- - the SFF to write the flow topktSrcIpStr
- - Src IP to match onpktDstIpStr
- - Src IP to match onpathId
- - the RSP ID to write to the metadatapublic void configureMacNextHopFlow(String sffNodeName, long pathId, String srcMac, String dstMac)
configureMacNextHopFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow topathId
- - the RSP ID to write to the metadatasrcMac
- - Src mac to match ondstMac
- - Dst mac to set on the packetpublic void configureMacChainingNextHopFlow(String sffNodeName, String vmac, String dstSfMac, String nextVMac, boolean l2Transparent)
configureMacChainingNextHopFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- the SFF to write the flow tovmac
- the virtual mac for this hopdstSfMac
- destination mac of next SFnextVMac
- next hop virtual macl2Transparent
- indicates if the SF do not swap MAC addresses (l2 transparent)public void configureNshVxgpeNextHopFlow(String sffNodeName, String dstIp, String nshProxyIp, long nshNsp, short nshNsi)
configureNshVxgpeNextHopFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow todstIp
- - the VxLan GPE tunnel destination IPnshNsp
- - NSH Service Path to match onnshNsi
- - NSH Index to match onpublic void configureNshEthNextHopFlow(String sffNodeName, String srcMac, String dstMac, long nsp, short nsi)
configureNshEthNextHopFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tosrcMac
- - the source MacdstMac
- - the destination Macnsp
- - NSH Service Path to match onnsi
- - NSH Index to match onpublic void configureMacChainingSfTransportEgressFlow(String sffNodeName, String dstMac, String port, String vmac)
configureMacChainingSfTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
public void configureVlanSfTransportEgressFlow(String sffNodeName, String srcMac, String dstMac, int dstVlan, String port, long pathId, boolean doPktin)
configureVlanSfTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
public void configureVlanLastHopTransportEgressFlow(String sffNodeName, String srcMac, String dstMac, int dstVlan, String port, long pathId)
configureVlanLastHopTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tosrcMac
- - the source MAC to write to the packetdstMac
- - the destination MAC to match ondstVlan
- - the VLAN tag to write to the packetport
- - the switch port to send the packet out onpathId
- - the RSP path id to match onpublic void configureVlanTransportEgressFlow(String sffNodeName, String srcMac, String dstMac, int dstVlan, String port, long pathId)
configureVlanTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tosrcMac
- - the source MAC to write to the packetdstMac
- - the destination MAC to match ondstVlan
- - the VLAN tag to write to the packetport
- - the switch port to send the packet out onpathId
- - the RSP path id to match onpublic void configureVlanTransportEgressFlow(String sffNodeName, String srcMac, String dstMac, int dstVlan, String port, long pathId, String cookieStr)
sffNodeName
- - the SFF to write the flow tosrcMac
- - the source MAC to write to the packetdstMac
- - the destination MAC to match ondstVlan
- - the VLAN tag to write to the packetport
- - the switch port to send the packet out onpathId
- - the RSP path id to match oncookieStr
- - The cookie to usepublic void configureMplsLastHopTransportEgressFlow(String sffNodeName, String srcMac, String dstMac, long mplsLabel, String port, long pathId)
configureMplsLastHopTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tosrcMac
- - the source MAC to write to the packetdstMac
- - the destination MAC to match onmplsLabel
- - the MPLS label tag to write to the packetport
- - the switch port to send the packet out onpathId
- - the RSP path id to match onpublic void configureMplsTransportEgressFlow(String sffNodeName, String srcMac, String dstMac, long mplsLabel, String port, long pathId)
configureMplsTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tosrcMac
- - the source MAC to write to the packetdstMac
- - the destination MAC to match onmplsLabel
- - the MPLS label tag to write to the packetport
- - the switch port to send the packet out onpathId
- - the RSP path id to match onpublic void configureMplsTransportEgressFlow(String sffNodeName, String srcMac, String dstMac, long mplsLabel, String port, long pathId, String cookieStr)
sffNodeName
- - the SFF to write the flow tosrcMac
- - the source MAC to write to the packetdstMac
- - the destination MAC to match onmplsLabel
- - the mpls label to write to the packetport
- - the switch port to send the packet out onpathId
- - the RSP path id to match oncookieStr
- - the cookie to set on the flowpublic void configureNshVxgpeLastHopTransportEgressFlow(String sffNodeName, long nshNsp, short nshNsi, String port)
configureNshVxgpeLastHopTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tonshNsp
- - the NSH Service Path to match onnshNsi
- - the NSH Service Index to match onport
- - the switch port to send the packet out onpublic void configureNshEthLastHopTransportEgressFlow(String sffNodeName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress sffIpAddress, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress sfMacAddress, long nshNsp, short nshNsi)
SfcOfFlowProgrammerInterface
configureNshEthLastHopTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- last openflow node in the chainsffIpAddress
- the sff ip addresssfMacAddress
- the last sf mac addressnshNsp
- nsp for the matchnshNsi
- nsi for the matchpublic void configureNshVxgpeTransportEgressFlow(String sffNodeName, long nshNsp, short nshNsi, String port)
configureNshVxgpeTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
public void configureNshNscTransportEgressFlow(String sffNodeName, long nshNsp, short nshNsi, String port)
configureNshNscTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tonshNsp
- - the NSH Service Path to match onnshNsi
- - the NSH Service Index to match onport
- - the switch port to send the packet out onpublic void configureNshVxgpeAppCoexistTransportEgressFlow(String sffNodeName, long nshNsp, short nshNsi, String sffIp)
configureNshVxgpeAppCoexistTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
public void configureNshEthTransportEgressFlow(String sffNodeName, long nshNsp, short nshNsi, String port)
configureNshEthTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffNodeName
- - the SFF to write the flow tonshNsp
- - the NSH Service Path to match onnshNsi
- - the NSH Service Index to match onport
- - the switch port to send the packet out onpublic void configureNshEthTransportEgressFlow(String sffOpenflowNodeName, long nsp, short nsi, List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionList, String flowName)
SfcOfFlowProgrammerInterface
configureNshEthTransportEgressFlow
in interface SfcOfFlowProgrammerInterface
sffOpenflowNodeName
- The openflow identifier for the node on which the flows are to
be writtennsp
- NSP to use in the match partnsi
- NSI to use in the match partactionList
- List of actions to use in the actions partflowName
- A unique flow name, also used as a flow keypublic void setTableIndexMapper(SfcTableIndexMapper tableIndexMapper)
SfcOfFlowProgrammerInterface
setTableIndexMapper
in interface SfcOfFlowProgrammerInterface
tableIndexMapper
- The table index mapperpublic void configureGroup(String sffNodeName, String openflowNodeId, String sfgName, long sfgId, int groupType, List<GroupBucketInfo> bucketInfos, boolean isAddGroup)
configureGroup
in interface SfcOfFlowProgrammerInterface
public void configureGroupNextHopFlow(String sffNodeName, long sfpId, String srcMac, long groupId, String groupName)
configureGroupNextHopFlow
in interface SfcOfFlowProgrammerInterface
Copyright © 2017 OpenDaylight. All rights reserved.