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 * LISP accesses unset inner headers when getting the source port for egress info. v3: Patches 1-5 were pushed to master and have been removed from this series. Jesse Gross (9): 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." acinclude.m4 | 2 - datapath/linux/.gitignore | 1 + datapath/linux/Modules.mk | 1 + datapath/linux/compat/geneve.c | 241 +++++++++++++++++ datapath/linux/compat/gre.c | 13 +- datapath/linux/compat/gso.c | 68 +---- datapath/linux/compat/gso.h | 85 +++--- datapath/linux/compat/include/linux/if_vlan.h | 36 +++ datapath/linux/compat/include/linux/skbuff.h | 13 + datapath/linux/compat/include/net/geneve.h | 76 +++++- datapath/linux/compat/include/net/gre.h | 2 +- datapath/linux/compat/include/net/ip_tunnels.h | 54 ++-- datapath/linux/compat/include/net/udp_tunnel.h | 68 ++++- datapath/linux/compat/include/net/vxlan.h | 14 +- datapath/linux/compat/ip_tunnels_core.c | 87 +++++- datapath/linux/compat/udp_tunnel.c | 77 +++++- datapath/linux/compat/vxlan.c | 93 ++----- datapath/vport-geneve.c | 349 +++++-------------------- datapath/vport-lisp.c | 102 ++------ datapath/vport-vxlan.c | 7 +- 20 files changed, 785 insertions(+), 604 deletions(-) create mode 100644 datapath/linux/compat/geneve.c -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev