On Thu, Feb 27, 2014 at 9:16 AM, <thomas.mo...@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. http://openvswitch.org/pipermail/dev/2013-November/033832.html _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev