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

Reply via email to