This is a rebase of Simon's submission from July on top of the current master. It is not intended to be applied yet but to help testing of the kernel part.
The rebase was straightforward, the differences are: * Accomodated changes made by aff49b8c66be ("meta-flow: Clean up masking with prerequisities checking.") and 362a2ebb5ba2 ("ofproto-dpif-xlate: Hash only fields specified for 'hash' selection method."). * Changed value of FLOW_WC_SEQ (note that MINIFLOW_ASSERT is kept defined in lib/flow.c for testing). * In miniflow_extract, removed one instance of miniflow_pad_from_64 (see the comment in patch 2). This looks fishy, I'm not sure the code is correct. Also, the feedback to v12 is addressed (see patch 2 description). This was still done by Simon (thanks!). Note that this patchset will have to look a bit differently, as the combined L2/L3 GRE interfaces will be created using rtnetlink and there will need to be a fallback code for older kernels. For testing purposes, the whole patchset submitted to netdev needs to be applied, including the patch 9. The patch 9 won't be applied to the kernel but this doesn't affect the rest of the patches nor the API to configure the flows. Please consider this patchset and patch 9 from the kernel set as a way to test the kernel patches 1-8. The original patchset cover letter follows: ------ This series implements support for layer 3 encapsulated packets. At the core of this change is removing the assumption that all packets/flows have Ethernet header. Support for layer 3 packets in GRE tunnels is also added by this patchset. The implementation automatically adds appropriate pop_eth and push_eth actions to datapath flows. This may change in the future if OpenFlow support for these actions is added. This series is based on work by Lorand Jakab, Thomas Morin and others. Unlike Lorand's work this series does not update the kernel datapath nor the LISP vport implementation in the version of the kernel datapath in the OVS tree. Rather it focuses only on userspace including the user-space datapath, and provides layer 3 GRE support. It should, however, be in keeping with his goal of providing a clean path for porting the LISP datapath support to the mainline kernel for inclusion there. Lorand Jakab (2): userspace: add support for pop_eth and push_eth actions userspace: add layer 3 flow and switching support Simon Horman (1): userspace: add non-tap (l3) support to GRE vports build-aux/extract-ofp-fields | 1 + datapath/linux/compat/include/linux/openvswitch.h | 17 ++ include/openvswitch/flow.h | 23 ++- include/openvswitch/match.h | 1 + include/openvswitch/meta-flow.h | 9 +- include/openvswitch/ofp-print.h | 8 +- lib/dp-packet.h | 14 +- lib/dpif-netdev.c | 6 +- lib/dpif-netlink.c | 4 + lib/dpif.c | 9 +- lib/flow.c | 132 +++++++++---- lib/flow.h | 11 ++ lib/match.c | 13 +- lib/meta-flow.c | 2 + lib/netdev-bsd.c | 2 + lib/netdev-dummy.c | 1 + lib/netdev-linux.c | 5 +- lib/netdev-native-tnl.c | 26 ++- lib/netdev-vport.c | 22 ++- lib/netdev.h | 1 + lib/nx-match.c | 2 +- lib/odp-execute.c | 20 ++ lib/odp-util.c | 227 ++++++++++++++++++---- lib/odp-util.h | 4 +- lib/ofp-print.c | 27 ++- lib/ofp-util.c | 2 +- lib/packets.c | 33 ++++ lib/packets.h | 6 + lib/tnl-ports.c | 49 +++-- lib/tnl-ports.h | 3 +- ofproto/ofproto-dpif-rid.h | 2 +- ofproto/ofproto-dpif-sflow.c | 8 + ofproto/ofproto-dpif-xlate.c | 30 ++- ofproto/ofproto-dpif-xlate.h | 2 +- ofproto/ofproto-dpif.c | 4 +- ofproto/tunnel.c | 4 +- tests/ofproto-dpif.at | 6 +- tests/tunnel-push-pop-ipv6.at | 22 ++- tests/tunnel-push-pop.at | 36 +++- tests/tunnel.at | 10 +- vswitchd/vswitch.xml | 13 ++ 41 files changed, 645 insertions(+), 172 deletions(-) -- 1.8.3.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev