[RFE] Openflow pipeline modeling and API for OVS extensions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
In Progress
|
Wishlist
|
Miguel Angel Ajo |
Bug Description
Problem statement
~~~~~~~~~~~~~~~~
OpenFlow can be really powerful for programming the dataplane, but when several features are hooked up into the same virtual switch they need knowledge of each other implementation (entry table, next table, used registers, conventions, etc).
Solution
~~~~~~~
Defining a model & extension api for features to describe their "OpenFlow functions", and their entry point in the processing pipeline (ingress prefiltering, ingress postfiltering, egress prefiltering, egress postfiltering), as well as the ability to allocate registers.
On a high level, each extension (and the Openvwitch firewall implementation) would expose a model of it's low level functions.
openvswitch_
tapas-a-service (as an example) could expose: taas_{ingress, egress}_{prefilter, postfilter}
Every extension would declare a set of "OFFunctions" which would be built of a number of "OFTables". Once all extensions are loaded, and order resolved, every function would get it's "next hop", and it's table numbers, dynamically.
We could have a predefine OFFunction priority table somewhere in neutron_lib, with spaces in between priorities for experimentation,
with the idea that extensions may request hook points into the pipeline,
and those hook points may be discussed upstream to allow interoperability.
If necessary, a configuration for admin defined ordering of OFFunctions
could be provided in a second step.
Diagram: http://
input tagging / output_stage / and ingress deflector would be shared common logic.
description: | updated |
description: | updated |
Changed in neutron: | |
importance: | Undecided → Wishlist |
importance: | Wishlist → Undecided |
importance: | Undecided → Wishlist |
Changed in neutron: | |
status: | In Progress → Confirmed |
Changed in neutron: | |
status: | Confirmed → In Progress |
This is not an user facing feature, more internal design for allowing inter operability of OVS/OF features: vlan aware, openvswitch firewall, sfc, tap as a service, *...