[ovs-dev] [PATCH v6 2/5] userspace: L3 tunnel support for GRE and LISP

Ben Pfaff blp at ovn.org
Fri May 19 04:15:58 UTC 2017


On Fri, May 12, 2017 at 11:07:40AM +0000, Zoltán Balogh wrote:
> From: Jan Scheurich <jan.scheurich at ericsson.com>
> 
> Add a boolean "layer3" configuration option for tunnel vports.
> The layer3 option defaults to false for all ports except LISP.
> GRE ports accept both true and false for "layer3".
> 
> A tunnel vport configured with layer3=true receives L3 packets.
> which are then converted to Ethernet packets by pushing a dummy
> Ethernet heder at the ingress of the OpenFlow pipeline. The
> Ethernet header of a packet is stripped before sending to a
> layer3 tunnel vport.
> 
> Presently a single GRE vport cannot carry both L2 and L3 packets.
> But it is possible to create two GRE vports representing the same
> GRE tunel, one with layer3=false, the other with layer3=true.
> L2 packet from the tunnel are received on the first vport, L3
> packets on the second. The controller must send packets to the
> layer3 GRE vport to tunnel them without their Ethernet header.
> 
> Units tests have been added to check the L3 tunnel handling.
> 
> LISP tunnels are not yet supported by the netdev userspace datapath.
> 
> Signed-off-by: Simon Horman <simon.horman at netronome.com>
> Signed-off-by: Jiri Benc <jbenc at redhat.com>
> Signed-off-by: Yi Yang <yi.y.yang at intel.com>
> Signed-off-by: Jan Scheurich <jan.scheurich at ericsson.com>
> Co-authored-by: Zoltan Balogh <zoltan.balogh at ericsson.com>

Thank you for the revision!  I've had a few user inquiries lately about
L3 tunnels, so I think that this feature will be welcomed.

There are a few minor white space errors:

    WARNING: Line has non-spaces leading whitespace
    #357 FILE: vswitchd/vswitch.xml:2396:
                    header present.

    WARNING: Line has non-spaces leading whitespace
    #358 FILE: vswitchd/vswitch.xml:2397:
                  </p>

I think that parse_gre_header() should perhaps be pickier about the
Ethertypes it accepts, since values below 0x600 are not valid
Ethertypes and sometimes they are used for special purposes, for example
OpenFlow uses 0x5ff to mean that the frame lacks an Ethertype.

I recommend adding an item to NEWS to mention this new user-visible
feature.

Ideally, some new documentation would explain how layer 2 and 3 packets
interact.


More information about the dev mailing list