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
