This series is also available at:
https://github.com/blp/ovs-reviews/tree/l3-4
[email protected]:blp/ovs-reviews.git l3-4
This is the fourth 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.
Ben Pfaff (14):
ofpbuf: New function ofpbuf_const_initializer().
ofp-util: Remove 'const' from struct ofputil_packet_in's 'packet'
member.
Implement new packet-in format NXT_PACKET_IN2.
ofp-util: Rename struct ofputil_packet_in member 'len' to
'packet_len'.
Support userdata in NXT_PACKET_IN2.
ofp-prop: Add support for putting and parsing nested properties.
Implement serializing the state of packet traversal in
"continuations".
pinctrl: Fix header guard.
ofp-actions: Introduce macro for padding struct members.
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.
NEWS | 5 +
include/openflow/nicira-ext.h | 136 +++++-
lib/dpif-netlink.c | 72 ++-
lib/learning-switch.c | 11 +-
lib/meta-flow.c | 9 +-
lib/meta-flow.h | 3 +-
lib/netdev-windows.c | 18 +-
lib/netlink-socket.c | 9 +-
lib/nx-match.c | 15 +-
lib/ofp-actions.c | 269 ++++++++---
lib/ofp-actions.h | 67 +--
lib/ofp-errors.c | 8 +-
lib/ofp-errors.h | 16 +-
lib/ofp-msgs.c | 4 +-
lib/ofp-msgs.h | 7 +
lib/ofp-print.c | 150 ++++---
lib/ofp-prop.c | 49 ++
lib/ofp-prop.h | 4 +
lib/ofp-util.c | 957 ++++++++++++++++++++++++++++------------
lib/ofp-util.h | 65 ++-
lib/ofpbuf.h | 26 +-
lib/packets.c | 38 +-
lib/packets.h | 3 +-
lib/rconn.c | 3 +-
ofproto/connmgr.c | 26 +-
ofproto/connmgr.h | 2 +-
ofproto/fail-open.c | 16 +-
ofproto/ofproto-dpif-xlate.c | 211 +++++++--
ofproto/ofproto-dpif-xlate.h | 4 +
ofproto/ofproto-dpif.c | 35 ++
ofproto/ofproto-provider.h | 3 +
ofproto/ofproto.c | 61 ++-
ovn/TODO | 112 +----
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 | 323 ++++++++++++--
ovn/controller/pinctrl.h | 14 +-
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/ofp-actions.at | 14 +
tests/ofp-print.at | 37 +-
tests/ofproto-dpif.at | 346 +++++++++++----
tests/ofproto-macros.at | 35 +-
tests/ofproto.at | 54 ++-
tests/ovn.at | 190 +++++++-
tests/test-ovn.c | 20 +-
tests/tunnel-push-pop.at | 2 +-
utilities/ovs-ofctl.8.in | 76 +++-
utilities/ovs-ofctl.c | 187 +++++---
61 files changed, 3853 insertions(+), 1297 deletions(-)
create mode 100644 ovn/controller/lport.c
create mode 100644 ovn/controller/lport.h
--
2.1.3
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev