[ovs-dev] [PATCH v5 0/5] Implement continuation (aka closure) support
Ben Pfaff
blp at ovn.org
Sat Feb 20 00:40:14 UTC 2016
This series is also available at:
https://github.com/blp/ovs-reviews/tree/l3-4
git at github.com:blp/ovs-reviews.git l3-4
This is the fifth revision of my "closures" series.
The first version was:
http://openvswitch.org/pipermail/dev/2016-January/064607.html
The second version, unfortunately not marked v2, was:
https://patchwork.ozlabs.org/patch/574946/
and the v1->v2 changes were described at:
http://openvswitch.org/pipermail/dev/2016-January/064875.html
Changes v2->v3:
- Patches 1 through 6 are new.
- There's a terminology change starting in patch 6. Now the process
of pausing translation is called "freezing", and there are two users
of freezing, which are recirculation and closures.
- I added the ability to provide arbitrary user data on NXAST_PAUSE
which is passed to the controller in a property on NXT_CLOSURE.
- I made all the changes described in:
http://openvswitch.org/pipermail/dev/2016-February/065984.html
- I added a few more tests to ofp-print.at and ofp-actions.at.
- Probably other refinements I've forgotten.
Changes v3->v4:
- Several patches were applied and thus dropped from the series.
- I added the previous L3 ARP patches at the end, revised (see below).
- I had a major change of heart on the approach here. Until now, I
had an idea that "closures" were fundamentally different from
OpenFlow "packet-ins" and thus deserved separate but parallel
infrastructure. Now that I started to use them for ARP, I realized
that there in fact isn't that much difference. Thus, this revision
merges closures into packet-ins and drops the "closure" naming.
Instead, what was previously a closure is just a packet-in that
includes a "continuation", that is, the state that can be used to
resume the pipeline.
- The ARP series from before is tacked on the end here, but it is
revised to use packet-ins instead of adding a specialized OpenFlow
action for ARP.
- The ARP patches (patches 8 and later) are not as mature as the rest of
the series. In particular, I haven't been able to figure out why the
final patch is necessary; it may indicate a bug in my test for the ARP
support. In testing, I've definitely figured out that debugging is
harder than it should be.
Changes v4->v5:
- Several patches were applied and thus dropped from the series.
- I fixed a bad test in the second-to-last patch (thanks Jarno).
- I fixed a host endianness dependency in struct action_header,
which affected patches 1 and 4.
Ben Pfaff (5):
actions: Implement OVN "arp" action.
ovn: Use callback function instead of simap for logical port number
map.
ovn-controller: Add data structure for indexing lports, multicast
groups.
ovn: Implement basic ARP support for L3 logical routers.
[RFC] lflow: Disable egress table optimization.
lib/ofp-actions.h | 30 ++--
lib/packets.c | 38 +++--
lib/packets.h | 3 +-
ovn/TODO | 55 ++-----
ovn/controller/automake.mk | 2 +
ovn/controller/lflow.c | 251 +++++++++++++++----------------
ovn/controller/lflow.h | 11 +-
ovn/controller/lport.c | 157 ++++++++++++++++++++
ovn/controller/lport.h | 67 +++++++++
ovn/controller/ovn-controller.c | 47 +++---
ovn/controller/pinctrl.c | 321 ++++++++++++++++++++++++++++++++++++----
ovn/controller/pinctrl.h | 9 +-
ovn/lib/actions.c | 235 ++++++++++++++++++++++++++++-
ovn/lib/actions.h | 39 ++++-
ovn/lib/expr.c | 141 +++++++++++++-----
ovn/lib/expr.h | 16 +-
ovn/northd/ovn-northd.8.xml | 112 ++++++++------
ovn/northd/ovn-northd.c | 105 +++++++++----
ovn/ovn-architecture.7.xml | 78 +++++++---
ovn/ovn-sb.ovsschema | 15 +-
ovn/ovn-sb.xml | 158 ++++++++++++++++++--
ovn/utilities/ovn-sbctl.c | 4 +
tests/ovn.at | 190 ++++++++++++++++++++++--
tests/test-ovn.c | 20 ++-
24 files changed, 1675 insertions(+), 429 deletions(-)
create mode 100644 ovn/controller/lport.c
create mode 100644 ovn/controller/lport.h
--
2.1.3
More information about the dev
mailing list