[ovs-dev] [PATCH 00/14] UDP tunneling backports

Jesse Gross jesse at nicira.com
Thu Feb 19 03:02:10 UTC 2015


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




More information about the dev mailing list