[ovs-dev] [PATCH v7] datapath: Add support for VXLAN tunnels to Open vSwitch

Jesse Gross jesse at nicira.com
Wed Dec 5 18:23:43 UTC 2012


On Wed, Dec 5, 2012 at 10:14 AM, Kyle Mestery (kmestery)
<kmestery at cisco.com> wrote:
> On Dec 5, 2012, at 12:10 PM, Jesse Gross <jesse at nicira.com> wrote:
>> On Wed, Dec 5, 2012 at 8:53 AM, Kyle Mestery <kmestery at cisco.com> wrote:
>>> Add support for VXLAN tunnels to Open vSwitch. Add support
>>> for setting the destination UDP port on a per-port basis.
>>> This is done by adding a "dst_port" parameter to the port
>>> configuration. This is only applicable currently to VXLAN
>>> tunnels.
>>>
>>> Please note this currently does not implement any sort of multicast
>>> learning. With this patch, VXLAN tunnels must be configured similar
>>> to GRE tunnels (e.g. point to point). A subsequent patch will implement
>>> a VXLAN control plane in userspace to handle multicast learning.
>>>
>>> This patch set is based on one posted by Ben Pfaff on Oct. 12, 2011
>>> to the ovs-dev mailing list:
>>>
>>> http://openvswitch.org/pipermail/dev/2011-October/012051.html
>>>
>>> The patch has been maintained, updated, and freshened by me and a
>>> version of it is available at the following github repository:
>>>
>>> https://github.com/mestery/ovs-vxlan/tree/vxlan
>>>
>>> I've tested this patch with multiple VXLAN tunnels between hosts
>>> using different UDP port numbers. Performance is on par (though
>>> slightly faster) than comparable GRE tunnels.
>>>
>>> See the following IETF draft for additional information about VXLAN:
>>> http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
>>>
>>> Signed-off-by: Kyle Mestery <kmestery at cisco.com>
>>> ---
>>> Note: v7 addresses comments from Jesse.
>>>
>>> Note: v6 of this patch addresses additional comments from
>>> Jesse. Specifically, I've removed the hash table of
>>> port/socket mappings and moved to a linked list. I've also
>>> cleaned up the code around this quite a bit.
>>>
>>> Note: v5 of this patch addresses comments from Jesse
>>> and Chris.
>>>
>>> Note: v4 of this patch removes VXLAN over IPSEC support,
>>> per an offline conversation with Jesse.
>>
>> Thanks for the new version Kyle.  I ran into a couple of last issues:
>>
> Thanks for the quick turnaround! I'll clean all this up. And I know I may
> have asked this before, but is there a Makefile target to run sparse with?

The most general form to run sparse is (assuming that you have it installed):
make C=1 CF="-Wsparse-all -D__CHECK_ENDIAN__"

This will run on both userspace and kernel for the files that need to
be recompiled.  The userspace version is a little bit more
temperamental because sparse requires header annotations to work
properly and userspace headers don't generally have those.  OVS has a
special annotated set but I've only seen them work on Debian.  If you
use C=2 instead then it will run on all files (regardless of
compilation status) on just the kernel.



More information about the dev mailing list