4.9 KiB
Resource plugins for Networking Service Function Chaining
https://blueprints.launchpad.net/heat/+spec/sfc-heat
Adds resources plugin for Networking Service Function Chaining.
Problem description
OpenStack neutron suppports Service Function Chaining (sfc) as an official sub-project and more details are available at http://docs.openstack.org/developer/networking-sfc/ . Heat does not provide resource plugins for Networking Service Function Chaining and this blueprint is created to provide required plug-ins.
The proposed change is to introduce a Service Function Chaining by grouping order of service function VM's neutron ports to form service chain and steer classified user traffic into chain based on service treatment required.
Proposed change
Add following resource plugins under resources/openstack/neutron/ and also add port_pair, port_pair_group, flow_classifier neutron constraints for resource validation.
- OS::Neutron::PortPair:
- name
-
- type: string
- update_allowed: true
- description
-
- type: string
- required: false
- update_allowed: true
- ingress
-
- type: string
- required: true
- constraints: Custom Constrain 'neutron.port'
- egress
-
- type: string
- required: true
- constraints: Custom Constrain 'neutron.port'
- service_function_parameters
-
- type: map
- required: false
- default: {'correlation': None}
- OS::Neutron::PortPairGroup:
- name
-
- type: string
- update_allowed: true
- description
-
- type: string
- required: false
- update_allowed: true
- port_pairs
-
- type: list
- default: []
- required: true
- update_allowed: true
- constraints: Custom Constrain 'neutron.port_pair'
- OS::Neutron::PortChain:
- name
-
- type: string
- update_allowed: true
- description
-
- type: string
- required: false
- update_allowed: true
- port_pair_groups
-
- type: list
- default: []
- required: true
- constraints: Custom Constrain 'neutron.port_pair_group'
- flow_classifiers
-
- type: list
- default: []
- required: false
- update_allowed: true
- constraints: Custom Constrain 'neutron.flow_classifier'
- chain_parameters
-
- type: map
- required: false
- default: {correlation: mpls}
- OS::Neutron::FlowClassifier:
- name
-
- type: string
- update_allowed: true
- description
-
- type: string
- required: false
- update_allowed: true
- protocol
-
- type: string
- required: false
- allowed_values: [tcp, udp, icmp, any]
- ethertype
-
- type: string
- required: false
- allowed_values: [IPv4, IPv6]
- default : Ipv4
- source_ip_prefix
-
- type: string
- required: false
- default: [correlation=mpls]
- constraints: Custom Constrain 'net_cidr'
- destination_ip_prefix
-
- type: string
- required: false
- default: [correlation=mpls]
- constraints: Custom Constrain 'net_cidr'
- source_port_range_min
-
- type: string
- required: false
- constraints.Range: (1, 65535)
- source_port_range_max
-
- type: string
- required: false
- constraints.Range: (1, 65535)
- destination_port_range_min
-
- type: string
- required: false
- constraints.Range: (1, 65535)
- destination_port_range_max
-
- type: string
- required: false
- constraints.Range: (1, 65535)
- logical_source_port
-
- type: string
- required: true
- constraints: Custom Constrain 'neutron.port'
- logical_destination_port
-
- type: string
- required: false
- constraints: Custom Constrain 'neutron.port'
- l7_parameters
-
- type: map
- required: false
Alternatives
None
Implementation
Assignee(s)
- Primary assignee:
-
Mohankumar (nmohankumar1011@gmail.com)
Milestones
newton-1
Work Items
- Add resources related
- Add required custom constraints
- Add related tests
- Add sample template in heat-templates
Dependencies
None