This series backports much of the UDP tunnel infrastructure, ultimately in support of syncing Geneve with upstream and providing outer UDP checksum support.
During the backporting process, I realized that there are several other lurking bugs that were fixed through a more complete UDP tunnel layer. The ones that I am aware of are: * VXLAN TSO fails in some cases because the OVS handle_offload() function is used with the upstream GSO handler. * Hardware VXLAN offload was disabled on kernels that is otherwise supported on since version checks were incremented by the GBP changes. * LISP attempts to use hardware offload with NICs that only support VXLAN Jesse Gross (14): datapath: Remove compat vxlan_src_port(). datapath: Account for "udp: Add udp_sock_create for UDP tunnels to open listener socket" datapath: Account for "vxlan: Call udp_sock_create" datapath: Use udp_sock_create() for LISP. datapath: Account for "udp: Generic functions to set checksum" datapath: Enable OVS GSO to be used up to 3.18 if necessary. datapath: Account for "udp-tunnel: Add a few more UDP tunnel APIs" datapath: Consistently set skb->inner_protocol for tunnels. datapath: Account for "vxlan: Refactor vxlan driver to make use of the common UDP tunnel functions." datapath: Use additional common UDP functions for LISP. datapath: Account for "vlan: introduce *vlan_hwaccel_push_inside helpers" datapath: Account for "udp: Do not require sock in udp_tunnel_xmit_skb" datapath: Backport upstream Geneve implementation. datapath: Account for "openvswitch: Add support for checksums on UDP tunnels." datapath/linux/.gitignore | 3 + datapath/linux/Modules.mk | 4 + datapath/linux/compat/geneve.c | 241 +++++++++++++++++ datapath/linux/compat/gre.c | 2 + datapath/linux/compat/gso.c | 53 ++-- datapath/linux/compat/gso.h | 32 ++- datapath/linux/compat/include/linux/if_vlan.h | 36 +++ datapath/linux/compat/include/net/geneve.h | 76 +++++- datapath/linux/compat/include/net/ip_tunnels.h | 30 +-- datapath/linux/compat/include/net/udp.h | 12 + datapath/linux/compat/include/net/udp_tunnel.h | 116 ++++++++ datapath/linux/compat/include/net/vxlan.h | 7 +- datapath/linux/compat/ip_tunnels_core.c | 35 ++- datapath/linux/compat/udp.c | 43 +++ datapath/linux/compat/udp_tunnel.c | 164 ++++++++++++ datapath/linux/compat/vxlan.c | 160 ++++-------- datapath/vport-geneve.c | 349 +++++-------------------- datapath/vport-lisp.c | 130 +++------ datapath/vport-vxlan.c | 7 +- 19 files changed, 949 insertions(+), 551 deletions(-) create mode 100644 datapath/linux/compat/geneve.c create mode 100644 datapath/linux/compat/include/net/udp_tunnel.h create mode 100644 datapath/linux/compat/udp.c create mode 100644 datapath/linux/compat/udp_tunnel.c -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev