On Fri, Feb 26, 2016 at 2:22 PM, Jesse Gross <je...@kernel.org> wrote: > On Thu, Feb 25, 2016 at 11:48 PM, Jiri Benc <jb...@redhat.com> wrote: >> diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h >> index c2b2b7462731..ee4f7198aa21 100644 >> --- a/include/uapi/linux/if_link.h >> +++ b/include/uapi/linux/if_link.h >> @@ -464,6 +464,7 @@ enum { >> enum vxlan_gpe_mode { >> VXLAN_GPE_MODE_DISABLED = 0, >> VXLAN_GPE_MODE_L2, >> + VXLAN_GPE_MODE_L3, > > Given that VXLAN_GPE_MODE_L3 will eventually come to be used by NSH, > MPLS, etc. in addition to IPv4/v6, most of which are not really L3, it > seems like something along the lines of NO_ARP might be better since > that's what it really indicates. Once that is in, I don't really see > the need to explicitly block Ethernet packets from being handled in > this mode. If they are received, then they can just be handed off to > the stack - at that point it would look like an extra header, the same > as if an NSH packet is received.
Agreed, and I don't see why there even needs to be modes. VXLAN-GPE can carry arbitrary protocols with a next-header field. For Ethernet, MPLS, IPv4, and IPv6 it should just be a simple mapping of the next header to Ethertype for purposes of processing the payload.