[ovs-dev] adding an option for GRE tunneling without an Ethernet header
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:
> 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
> 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
> 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
> - 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