vxlan: implement GPE
authorJiri Benc <jbenc@redhat.com>
Tue, 5 Apr 2016 12:47:13 +0000 (14:47 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Apr 2016 20:50:32 +0000 (16:50 -0400)
commite1e5314de08ba6003b358125eafc9ad9e75a950c
tree1e18cdabf1c9d9ef17e26c6480e629465447f77f
parenta6d5bbf34efa8330af7b0b1dba0f38148516ed97
vxlan: implement GPE

Implement VXLAN-GPE. Only COLLECT_METADATA is supported for now (it is
possible to support static configuration, too, if there is demand for it).

The GPE header parsing has to be moved before iptunnel_pull_header, as we
need to know the protocol.

v2: Removed what was called "L2 mode" in v1 of the patchset. Only "L3 mode"
    (now called "raw mode") is added by this patch. This mode does not allow
    Ethernet header to be encapsulated in VXLAN-GPE when using ip route to
    specify the encapsulation, IP header is encapsulated instead. The patch
    does support Ethernet to be encapsulated, though, using ETH_P_TEB in
    skb->protocol. This will be utilized by other COLLECT_METADATA users
    (openvswitch in particular).

    If there is ever demand for Ethernet encapsulation with VXLAN-GPE using
    ip route, it's easy to add a new flag switching the interface to
    "Ethernet mode" (called "L2 mode" in v1 of this patchset). For now,
    leave this out, it seems we don't need it.

    Disallowed more flag combinations, especially RCO with GPE.
    Added comment explaining that GBP and GPE cannot be set together.

Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c
include/net/vxlan.h
include/uapi/linux/if_link.h