Subject: Re: [PATCH net-next v2 2/2] vxlan: support GPE/NSH

From: Jiri Benc <[email-masked]>
Date: Mon, 15 Feb 2016 17:49:17 +0100

On Thu, 11 Feb 2016 19:57:06 +0000, Brian Russell wrote:
> +skip_l2:
>  	skb_reset_network_header(skb);
> +
>  	/* In flow-based mode, GBP is carried in dst_metadata */
> -	if (!(vs->flags & VXLAN_F_COLLECT_METADATA))
> +	if (!(vs->flags & VXLAN_F_COLLECT_METADATA) &&
> +	    !(vs->flags & VXLAN_F_GPE))
>  		skb->mark = md->gbp;

This is completely wrong. You cannot return a packet with a garbage in
place of the Ethernet header from ARPHRD_ETHER interface. For proper
VXLAN-GPE support, the vxlan interface needs to be in L3 mode, e.g.
ARPHRD_NONE.

To support L3 mode, the vxlan driver needs *tons* of cleanups (or tons
of duplicate code). This is exactly what I've done and what I'm in
process of merging. The number of patches is too big to be submitted as
a single patchset, hence I'm submitting in parts. The first one has
been already merged (net-next commit 19f76f63507f). For the full code,
look at: https://github.com/jbenc/linux-vxlan/commits/master

Comments are welcome.

 Jiri

-- 
Jiri Benc