datapath: Add support for Geneve tunneling.
authorJesse Gross <jesse@nicira.com>
Fri, 6 Jun 2014 02:07:32 +0000 (19:07 -0700)
committerJesse Gross <jesse@nicira.com>
Fri, 20 Jun 2014 22:19:35 +0000 (15:19 -0700)
commitc1fc1411d204c59608bf9fe36a65bd221b10cbb2
treeefafb29b0bf6dbc98dd0e8da168ba1fc78b962cb
parent1d2a1b5f5252e4c6ce8bbf8d91ca27aba52496e6
datapath: Add support for Geneve tunneling.

This adds support for Geneve - Generic Network Virtualization
Encapsulation. The protocol is documented at
http://tools.ietf.org/html/draft-gross-geneve-00

The kernel implementation is completely agnostic to the options
that are in use and can handle newly defined options without
further work. It does this by simply matching on a byte array
of options and allowing userspace to setup flows on this array.

Userspace currently implements only support for basic version of
Geneve. It can work with the base header (including the VNI) and
is capable of parsing options but does not currently support any
particular option definitions. Over time, the intention is to
allow options to be matched through OpenFlow without requiring
explicit support in OVS userspace.

Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Pravin B Shelar <pshelar@nicira.com>
25 files changed:
NEWS
datapath/Modules.mk
datapath/datapath.c
datapath/flow.c
datapath/flow.h
datapath/flow_netlink.c
datapath/flow_netlink.h
datapath/linux/Modules.mk
datapath/linux/compat/include/net/geneve.h [new file with mode: 0644]
datapath/linux/compat/include/net/ip_tunnels.h
datapath/vport-geneve.c [new file with mode: 0644]
datapath/vport-gre.c
datapath/vport-lisp.c
datapath/vport-vxlan.c
datapath/vport.c
datapath/vport.h
include/linux/openvswitch.h
lib/dpif-linux.c
lib/netdev-vport.c
lib/odp-util.c
lib/odp-util.h
lib/packets.h
tests/ovs-vsctl.at
tests/tunnel.at
vswitchd/vswitch.xml