On Thu, 25 Feb 2016 17:32:28 -0800, Jesse Gross wrote:
> The thing that bothers me about this is that it's not really a binary
> split between Ethernet and IP. L2 "obviously" means Ethernet (although
> theoretically there could be other things), but L3 means IPv4, IPv6,
> MPLS, NSH, etc.? That is weird.

Depends on the point of view. It's a packet without (any) L2 header.
You're right that MPLS or NSH are not understood as L3, however they're
not L2, either. So let's call this mode "L2-less" or so?

> From a non-OVS kernel perspective, setting L2 basically means that you
> want to do ARP on the interface and L3 is no ARP. However, if the
> tunnel is sending and receiving some additional tag then it's not
> really going to work directly in L3 mode.

It's still L2-less. Meaning no neighbor resolution. There's no
difference between MPLS, NSH and IP wrt. how the packet is sent.

> In the OVS case, you will definitely need to have different flows
> depending on the inner packet type. However, the most flexible way to
> handle this is by exposing it through the flow itself - it's not
> necessarily best to do this through the port, especially if it is not
> fully specific.

I'm not sure I follow. But although you don't get an Ethernet header
from such port, you do get an ethertype of the packet (in the kernel,
it's skb->protocol). It should be quite straightforward to construct
flow from it.

> Finally, I agree that it would be nice to be able to handle multiple
> types of encapsulated data at the same time. It seems difficult, or at
> least more complex, to achieve this with multiple ports. Each would
> try to register to the same handler and this would fail unless there
> is some kind of additional registration mechanism.

At least in the kernel, I don't see a way to do it cleanly. The
net_device has to be usable outside of ovs, this includes things like
tcpdump working correctly.

 Jiri
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to