Re: [ovs-dev] [PATCH v2 0/8] userspace: Support for L3 tunneling

2017-04-03 Thread Jan Scheurich
I just realized that we missed to implement some of Ben's comments on patch 
series v1.
Will fix those and resubmit v3 as soon as possible.

Regards, Jan

> -Original Message-
> From: Zoltán Balogh
> Sent: Monday, 03 April, 2017 18:28
> To: 'd...@openvswitch.org' 
> Cc: Jan Scheurich ; Georg Schmuecking 
> 
> Subject: [PATCH v2 0/8] userspace: Support for L3 tunneling
> 
> From: Jan Scheurich 
> 
> 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
> 
> This patch series implements 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.
> 
> It supersedes user-space patches 9-11 of the most recent patch set submitted 
> by Yi Yang (https://mail.openvswitch.org/pipermail/ovs-
> dev/2016-December/326865.html). The remaining user-space parts of that series 
> (VXLAN-GPE) will be superseded by further patches in
> the context of this initiative.
> 
> Key changes are the introduction of explicit packet_type fields in the 
> dp_packet and flow structs, as well as a simpler handling of L3
> tunnels limited to the ofproto layer.
> 
>userspace: Add packet_type in dp_packet and flow
>userspace: Support for push_eth and pop_eth actions
>userspace: Switching of L3 packets in L2 pipeline
>ofproto-dpif-upcall: Intialize dump-seq of new flow to zero
>userspace: L3 tunnel support for GRE and LISP
>dpif-netlink: Don't send PACKET_TYPE to kernel
>ofproto-dpif-xlate: refactor compose_output_action__
>userspace: add vxlan gpe support to vport
> 
> For native L3 tunneling with the user-space datapath these patches are 
> complete. To apply L3 tunneling to the kernel datapath, they are
> dependent on the following other contributions:
> 
> .[PATCH net-next v13 0/8] openvswitch: support for layer 3 encapsulated 
> packets
> https://mail.openvswitch.org/pipermail/ovs-dev/2016-November/324943.html
> The net-next patch has been accepted
> .[RFC PATCH v4 0/6] create tunnel devices using rtnetlink interface
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-January/327749.html
> .Another user-space patch to send the "layer3" option down via rtnetlink 
> interface
> .Backports of the kernel datapath patches to the OVS tree module:
> Patches 01-08 of patch series [PATCH v2 00/17] port Jiri Benc's L3 patchset 
> to ovs
> https://mail.openvswitch.org/pipermail/ovs-dev/2016-December/326865.html
> .A compatibility mechanism to send down "layer3" option to the backported 
> kernel module to support older kernels.
> 
> To ease the progress with the implementation of the subsequent user-space 
> patches for the PTAP, EXT-382 and NSH and avoid the pain of
> frequent re-basing of these large patch series, we would like to request 
> exemption for merging the present patch series before the kernel
> datapath pieces are all in place.
> 
>  build-aux/extract-ofp-fields  |   1 +
>  datapath/linux/compat/include/linux/openvswitch.h |   9 +-
>  include/openflow/openflow-common.h|   9 +
>  include/openvswitch/automake.mk   |   4 +-
>  include/openvswitch/flow.h|  16 +-
>  include/openvswitch/match.h   |   1 +
>  include/openvswitch/meta-flow.h   |  15 +-
>  include/openvswitch/ofp-print.h   |   9 +-
>  include/openvswitch/vxlangpe.h|  76 
>  lib/cfm.c |   2 +-
>  lib/conntrack.c   |   2 +-
>  lib/dp-packet.c   |   3 +
>  lib/dp-packet.h   |  25 +-
>  lib/dpif-netdev.c |  50 ++-
>  lib/dpif-netlink.c|  56 ++-
>  lib/dpif.c|   6 +-
>  lib/flow.c| 112 +++---
>  lib/flow.h|  11 +-
>  lib/match.c   |  33 +-
>  lib/meta-flow.c   |   2 +
>  lib/netdev-bsd.c  |   1 +
>  lib/netdev-dummy.c|   5 +
>  lib/netdev-linux.c|   4 +-
>  lib/netdev-native-tnl.c  

[ovs-dev] [PATCH v2 0/8] userspace: Support for L3 tunneling

2017-04-03 Thread Zoltán Balogh
From: Jan Scheurich 

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

This patch series implements 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. 

It supersedes user-space patches 9-11 of the most recent patch set submitted by 
Yi Yang 
(https://mail.openvswitch.org/pipermail/ovs-dev/2016-December/326865.html). The 
remaining user-space parts of that series (VXLAN-GPE) will be superseded by 
further patches in the context of this initiative.

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

   userspace: Add packet_type in dp_packet and flow
   userspace: Support for push_eth and pop_eth actions 
   userspace: Switching of L3 packets in L2 pipeline 
   ofproto-dpif-upcall: Intialize dump-seq of new flow to zero 
   userspace: L3 tunnel support for GRE and LISP 
   dpif-netlink: Don't send PACKET_TYPE to kernel 
   ofproto-dpif-xlate: refactor compose_output_action__
   userspace: add vxlan gpe support to vport

For native L3 tunneling with the user-space datapath these patches are 
complete. To apply L3 tunneling to the kernel datapath, they are dependent on 
the following other contributions:

.   [PATCH net-next v13 0/8] openvswitch: support for layer 3 encapsulated 
packets
https://mail.openvswitch.org/pipermail/ovs-dev/2016-November/324943.html
The net-next patch has been accepted
.   [RFC PATCH v4 0/6] create tunnel devices using rtnetlink interface
https://mail.openvswitch.org/pipermail/ovs-dev/2017-January/327749.html
.   Another user-space patch to send the "layer3" option down via rtnetlink 
interface
.   Backports of the kernel datapath patches to the OVS tree module:
Patches 01-08 of patch series [PATCH v2 00/17] port Jiri Benc's L3 
patchset to ovs
https://mail.openvswitch.org/pipermail/ovs-dev/2016-December/326865.html
.   A compatibility mechanism to send down "layer3" option to the 
backported kernel module to support   older kernels.

To ease the progress with the implementation of the subsequent user-space 
patches for the PTAP, EXT-382 and NSH and avoid the pain of frequent re-basing 
of these large patch series, we would like to request exemption for merging the 
present patch series before the kernel datapath pieces are all in place.

 build-aux/extract-ofp-fields  |   1 +
 datapath/linux/compat/include/linux/openvswitch.h |   9 +-
 include/openflow/openflow-common.h|   9 +
 include/openvswitch/automake.mk   |   4 +-
 include/openvswitch/flow.h|  16 +-
 include/openvswitch/match.h   |   1 +
 include/openvswitch/meta-flow.h   |  15 +-
 include/openvswitch/ofp-print.h   |   9 +-
 include/openvswitch/vxlangpe.h|  76 
 lib/cfm.c |   2 +-
 lib/conntrack.c   |   2 +-
 lib/dp-packet.c   |   3 +
 lib/dp-packet.h   |  25 +-
 lib/dpif-netdev.c |  50 ++-
 lib/dpif-netlink.c|  56 ++-
 lib/dpif.c|   6 +-
 lib/flow.c| 112 +++---
 lib/flow.h|  11 +-
 lib/match.c   |  33 +-
 lib/meta-flow.c   |   2 +
 lib/netdev-bsd.c  |   1 +
 lib/netdev-dummy.c|   5 +
 lib/netdev-linux.c|   4 +-
 lib/netdev-native-tnl.c   |  90 -
 lib/netdev-vport.c|  34 +-
 lib/netdev.h  |   1 +
 lib/nx-match.c|   2 +-
 lib/odp-execute.c |  21 +-
 lib/odp-util.c| 249 ++--
 lib/odp-util.h|  15 +-
 lib/ofp-print.c   |  29 +-
 lib/ofp-util.c|   2 +-
 lib/packets.c