This series is also available at: https://github.com/blp/ovs-reviews/tree/l3-4 g...@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 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev