[ovs-dev] adding an option for GRE tunneling without an Ethernet header

Pravin Shelar pshelar at nicira.com
Thu Feb 27 18:40:36 UTC 2014

On Thu, Feb 27, 2014 at 9:16 AM,  <thomas.morin at orange.com> wrote:
> Hello,
> Currently, OVS GRE tunnels use Ethertype 6558 and the GRE packets
> produced by OVS hence always are xxx-over-Ethernet-over-GRE.
> Symmetrically OVS expects received GRE packets to be of the same
> ethertype and carry an Ethernet payload.
> I have written the included patch, which does the following:
> - add a "noeth" option for a GRE tunnel, so that the Ethernet header is
> stripped before GRE encapsulation (the option, of course, defaults to
> the current behavior)
> - on reception, recreates a fake Ethernet header if the ethertype of the
> received packet is not 6558 -- this behavior is similar to what the LISP
> tunneling code does
> Note that, in both cases, the code takes care of preserving correct
> ethertypes.
> As a result, this patch allows to setup GRE tunnels to interconnect OVS
> with network devices doing a usual x-over-GRE approach such as IP/MPLS
> routers.
> The patch builds and passes unit tests.
> It has been tested to confirm with a packet capture that:
> - with the option set on a tunnel, the GRE packets from this tunnel are
> send and received as expected
> - for a tunnel without this option, or we the option disabled, the
> current behavior is preserved
> Caveats:
> - documentation and unit test are missing, but I'll be happy to
> contribute these later
> - I not an experimented C coder, please be kind :)
> - some parts of the code are a bit of a guess work from me: I'm unsure
> of what needs to be done for GSO (possibly it can be done later?), or if
> re-checksumming is really needed after recreating a fake Ethernet header
> I'd be happy to have comments on the approach and on the patch and to
> take them into account.

There has been some work going on to support l3 tunnels, you can have
look at it for GRE support.


More information about the dev mailing list