openvswitch: Support VXLAN Group Policy extension
authorThomas Graf <tgraf@suug.ch>
Thu, 15 Jan 2015 02:53:59 +0000 (03:53 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Jan 2015 06:11:41 +0000 (01:11 -0500)
commit1dd144cf5b4b47e12438c2c6883925ce1a9b499f
treed5442581624a3ff7f3b4d91d193ba5928cc98328
parent81bfe3c3cf153441588e50a57f53bc9816f37d37
openvswitch: Support VXLAN Group Policy extension

Introduces support for the group policy extension to the VXLAN virtual
port. The extension is disabled by default and only enabled if the user
has provided the respective configuration.

  ovs-vsctl add-port br0 vxlan0 -- \
     set Interface vxlan0 type=vxlan options:exts=gbp

The configuration interface to enable the extension is based on a new
attribute OVS_VXLAN_EXT_GBP nested inside OVS_TUNNEL_ATTR_EXTENSION
which can carry additional extensions as needed in the future.

The group policy metadata is stored as binary blob (struct ovs_vxlan_opts)
internally just like Geneve options but transported as nested Netlink
attributes to user space.

Renames the existing TUNNEL_OPTIONS_PRESENT to TUNNEL_GENEVE_OPT with the
binary value kept intact, a new flag TUNNEL_VXLAN_OPT is introduced.

The attributes OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS and existing
OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS are implemented mutually exclusive.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_tunnels.h
include/uapi/linux/openvswitch.h
net/openvswitch/flow_netlink.c
net/openvswitch/vport-geneve.c
net/openvswitch/vport-vxlan.c
net/openvswitch/vport-vxlan.h [new file with mode: 0644]