From: Jan Scheurich <jan.scheur...@ericssom.com>

This patch set is part of an initiative to deal with non-Ethernet packets in 
OVS for advanced use cases like L3 tunneling or NSH. The initiative is 
centering on the new OpenFlow concepts of "Packet type-aware pipeline" (PTAP) 
and "Generic encap/decap actions" (EXT-382). The overall design is documented 
in 
https://docs.google.com/document/d/1oWMYUH8sjZJzWa72o2q9kU0N6pNE-rwZcLH3-kbbDR8

The patches implement the user-space parts of the support for L3 tunnels 
connected to the legacy Ethernet-only pipeline in OVS. In large parts it is an 
adaptation of the earlier work on L3 tunneling by Lorand Jakab, Simon Horman, 
Jiri Benc and Yi Yang, adapted to the new design for packet type aware 
pipelines as prototyped by Jean Tourrilhes. 

Key changes compared to earlier patch series are the introduction of explicit 
packet_type members in the structs dp_packet and flow, as well as a simpler 
handling of L3 tunnels limited to the ofproto layer.

The present series v9 supersedes v8 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-May/332895.html), v9 is 
rebased to recent origin/master (5978c2e31).
The present series v8 supersedes v7 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-May/332837.html), v8 fixes 
a typo and adds BUILD_ASSERC_DELC for struct vxlanhdr.
The present series v7 supersedes v6 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-May/332367.html). Header 
file vxlangpe.h was removed, its content was moved into VXLAN section of 
lib/packets.h. Two patches were merged into a single one and fixes were done 
based on review comments.
The present series v6 supersedes v5 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-May/332151.html). The 
reason of creating v6 is that tunnel handling has been changed on master 
branch, so rebasing was necessary.
The present series v5 supersedes v4 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-April/331424.html), v4 
fixes struct ovs_action_push_eth, so kernel and userspace use same data 
structure and removes a patch from the series which was applied to master.
The series v4 supersedes v3 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-April/330488.html), v4 
fixes sparse warnings coding style and removes a patch from the series.
The series v3 superseded v2 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-April/330444.html) which 
added support for vxlan-gpe tunnels in the netdev-dpdk datapath based on 
earlier patches 14-16 out of a patch set by Yi Yang 
(https://mail.openvswitch.org/pipermail/ovs-dev/2017-February/328498.html). 

   userspace: Switching of L3 packets in L2 pipeline 
   userspace: L3 tunnel support for GRE and LISP 
   userspace: add vxlan gpe support to vport

For native L3 tunneling with the userspace datapath these patches are complete 
and could be merged.

The necessary kernel module changes for L3 tunneling have already been 
upstreamed to the net-next kernel and back-ported to OVS. To apply L3 tunneling 
to the kernel datapath, one will need the following additional contributions:

* [PATCH v2 0/7] create tunnel devices using rtnetlink interface
   https://mail.openvswitch.org/pipermail/ovs-dev/2017-March/329893.html 
* An additional user-space patch based on the above to configure the layer3 
tunnel option in the kernel datapath

Changes v1 -> v2:
* Rebased to master (f40c558 ovn: Gratuitous ARP for distributed NAT rules)
* Moved new packet_type member to fill a 4-byte padding in struct flow
* Define the packet_type constants to be in host byte order
* Update the display format of packet_type in match and flow key printouts to a 
pair format "(ns, type)"
* Renamed dp_packet_l2() to dp_packet_eth()
* Removed unnecessary wrappers dp_packet_packet_type() and 
dp_packet_set_packet_type()
* Fixed "sparse" warnings
* Removed misleading or unnecessary comments
* Added support for vxlan-gpe tunnel vports for Ethernet, IPv4, IPv6 and NSH 
payload

Changes v2 -> v3:
* Removed unused function dp_packet_is_l3()
* Using VLOG_DROP_DBG and VLOG_DBG instead of VLOG_DBG_RL in 
dp_netdev_flow_add()
* Moved changes related comment from flow_put_on_md() into commit message
* PT_NS* macros were replaced with inline functions
* Unnecessary if statements removed from match_format()
* Using assignment operator instead of memset where it's possible
* Improved some commit messages

Changes v3 -> v4:
* Fixed "sparse" warnings
* Fixed coding style
* Removed patch "ofproto-dpif-upcall: Intialize dump-seq of new flow to zero"
* Rebased to origin/master (9a84f46)

Changes v4 -> v5:
* Eth_type member removed from struct ovs_action_push_eth.
* Patch "userspace: Add packet_type in dp_packet and flow" exluded.

Changes v5 -> v6:
* Rebased to origin/master (f5f6455)
* Patch "userspace: Support for push_eth and pop_eth actions" exluded.

Changes v6 -> v7:
* Rebased to origin/master (b50fcaa)
* Patch "dpif-netlink: Don't send PACKET_TYPE to kernel" merged into patch 
"userspace: Switching of L3 packets in L2 pipeline".
* Patch "ofproto-dpif-xlate: refactor compose_output_action__" excluded.
* Fixed coding style. 
* Printout format "packet_type=(0,0x0)" changed into "packet_type=(0,0)".
* Fixed unit test 785.
* Dropping packets from GRE tunnels with GRE protocol < 0x600.
* Nl_msg_put_exclude_packet_type() reworked and renamed to 
put_exclude_packet_type() in dpif-netlink.c.
* Removed lib/packets.h. Its content was integrated into VXLAN section of 
lib/packets.h.

Changes v7 -> v8:
* Rebased to origin/master (c899576)
* Type fix.
* BUILD_ASSERT_DECL for struct vxlanhdr.

Changes v8 -> v9:
* Rebased to origin/master (5978c2e31)

NEWS                                              |   6 +
 build-aux/extract-ofp-fields                      |   1 +
 datapath/linux/compat/include/linux/openvswitch.h |   3 +
 include/openvswitch/automake.mk                   |   1 -
 include/openvswitch/match.h                       |   1 +
 include/openvswitch/meta-flow.h                   |  15 +-
 lib/dpif-netdev.c                                 |  45 +++---
 lib/dpif-netlink.c                                |  43 ++++-
 lib/dpif.c                                        |   2 +-
 lib/match.c                                       |  25 +++
 lib/meta-flow.c                                   |   2 +
 lib/netdev-native-tnl.c                           |  85 ++++++++--
 lib/netdev-vport.c                                |  38 ++++-
 lib/netdev.h                                      |   1 +
 lib/odp-execute.c                                 |   2 +
 lib/odp-util.c                                    | 182 +++++++++++++++++-----
 lib/odp-util.h                                    |   6 +-
 lib/packets.h                                     |  55 ++++++-
 ofproto/ofproto-dpif-sflow.c                      |   1 +
 ofproto/ofproto-dpif-upcall.c                     |   4 +-
 ofproto/ofproto-dpif-xlate.c                      |  54 ++++++-
 ofproto/ofproto-dpif.c                            |   6 +-
 ofproto/tunnel.c                                  |  15 +-
 tests/tunnel-push-pop-ipv6.at                     |  26 ++--
 tests/tunnel-push-pop.at                          |  57 +++++--
 tests/tunnel.at                                   |  28 ++--
 vswitchd/vswitch.xml                              |  18 +++
 27 files changed, 576 insertions(+), 146 deletions(-)
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to