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
[email protected]
http://openvswitch.org/mailman/listinfo/dev