neutron-sfc
Project scope:
Chain Encapsulation:
Default encapsulation is MPLS , facilitating a proprietary “SCH” header (essentially each chain is given it’s own MPLS label). encapsulation is done within the integration bridge (so traffic to VM is stripped from any SCH encapsulation).
For tunneled ports , overlay protocol carries the ethernet + MPLS fields
Apparently SCH is chosen over NSH for the reason that NSH is not officially supported in OVS. planning to support other encapsulations (probably if/when officially supported in OVS)
Architecture:
APIs:
(CLI,Horizon)
Syntax:
neutron port-pair-create [-h]
[--description <description>]
--ingress <port-id>
--egress <port-id>
[--service-function-parameters <parameter>] PORT-PAIR-NAME
neutron port-pair-group-create [-h]
[--description <description>]
--port-pairs <port-pair-id> PORT-PAIR-GROUP-NAME
neutron flow-classifier-create [-h]
[--description <description>]
[--protocol <protocol>]
[--ethertype <Ethertype>]
[--source-port <Minimum source protocol port>:<Maximum source protocol port>]
[--destination-port <Minimum destination protocol port>:<Maximum destination protocol port>]
[--source-ip-prefix <Source IP prefix>]
[--destination-ip-prefix <Destination IP prefix>]
[--logical-source-port <Neutron source port>]
[--logical-destination-port <Neutron destination port>]
[--l7-parameters <L7 parameter>] FLOW-CLASSIFIER-NAME
neutron port-chain-create [-h]
[--description <description>]
--port-pair-group <port-pair-group-id>
[--flow-classifier <classifier-id>]
[--chain-parameters <chain-parameter>] PORT-CHAIN-NAME
Future plans (as presented by the team):
Follow up: