v3:
- Adressed Pravin's feedback:
- Use #ifdef to check for skb_vlan_tag_present instead of autoconf
- Include <net/vxlan.h> base don USE_KERNEL_TUNNEL_API instead of
separate autoconf check
- Removed now used HAVE_VXLAN_XMIT_SKB_XNET_ARG check
- New patch to account for xnet attribtue in upstream
vxlan_xmit_skb() to keep code more in sync
- New patch to account for new vxflags and removed vxlan_sock
attribute to vxlan_xmit_skb() as changed in net-next in by Tom.
v2:
- Documentation in vswitch.xml and section in ovs-ofctl(8)
- New test in ovs-ofctl.at to check OXM/NXM availability
This series accounts for various upstream kernel changes and then
introduces VXLAN-GBP:
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.
Madhu Challa (1):
ofproto: Add NXM_NX_TUN_GBP_ID and NXM_NX_TUN_GBP_FLAGS
Thomas Graf (12):
datapath: Account for "rename vlan_tx_* helpers since "tx" is
misleading there"
datapath: Account for now exposed VXLAN definitions
datapath: Account for "vxlan: Group Policy extension"
datapath: Account for "vxlan: add x-netns support"
datapath: Rename GENEVE_TUN_OPTS() to TUN_METADATA_OPTS()
datapath: Allow for any level of nesting in flow attributes
datapath: Support VXLAN Group Policy extension
datapath: Account for "vxlan: Eliminate dependency on UDP socket in
transmit path"
datapath: Account for "genetlink: pass only network namespace to
genl_has_listeners()"
datapath: Account for "netlink: make nlmsg_end() and genlmsg_end()
void"
datapath: Allow building against 3.19.x
tunnel: Provide framework for tunnel extensions for VXLAN-GBP and
others
FAQ.md | 1 +
NEWS | 3 +-
acinclude.m4 | 10 +-
datapath/Modules.mk | 3 +-
datapath/actions.c | 4 +-
datapath/datapath.c | 16 +-
datapath/flow.c | 6 +-
datapath/flow.h | 15 +-
datapath/flow_netlink.c | 288 +++++++++++++++-------
datapath/linux/compat/gso.c | 4 +-
datapath/linux/compat/include/linux/if_vlan.h | 5 +
datapath/linux/compat/include/linux/openvswitch.h | 10 +
datapath/linux/compat/include/net/genetlink.h | 18 +-
datapath/linux/compat/include/net/ip_tunnels.h | 16 +-
datapath/linux/compat/include/net/vxlan.h | 115 +++++++--
datapath/linux/compat/netdevice.c | 2 +-
datapath/linux/compat/skbuff-openvswitch.c | 6 +-
datapath/linux/compat/vxlan.c | 97 ++++++--
datapath/vport-geneve.c | 12 +-
datapath/vport-gre.c | 6 +-
datapath/vport-internal_dev.c | 4 +-
datapath/vport-vxlan.c | 92 ++++++-
datapath/vport-vxlan.h | 11 +
datapath/vport.c | 2 +-
lib/dpif-netlink.c | 20 +-
lib/flow.c | 16 +-
lib/flow.h | 6 +-
lib/match.c | 37 ++-
lib/match.h | 4 +
lib/meta-flow.c | 36 +++
lib/meta-flow.h | 28 +++
lib/netdev-vport.c | 18 ++
lib/netdev.h | 2 +
lib/nx-match.c | 6 +-
lib/odp-util.c | 36 ++-
lib/odp-util.h | 3 +-
lib/ofp-print.c | 9 +
lib/ofp-util.c | 10 +-
lib/packets.h | 3 +
ofproto/ofproto-dpif-xlate.c | 2 +-
tests/odp.at | 16 +-
tests/ofproto.at | 6 +-
tests/ovs-ofctl.at | 4 +
tests/tunnel.at | 82 +++---
utilities/ovs-ofctl.8.in | 34 +++
vswitchd/vswitch.xml | 20 ++
46 files changed, 890 insertions(+), 254 deletions(-)
create mode 100644 datapath/vport-vxlan.h
--
1.9.3
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev