Skip to content

Commit

Permalink
Merge "master" into "ovn".
Browse files Browse the repository at this point in the history
This allows OVN to take advantage of the client scalability changes
that have been committed to ovsdb-server on master recently.

Conflicts:
	Makefile.am
	lib/learn.c
  • Loading branch information
blp committed Jun 14, 2015
2 parents 7679441 + be9d0de commit 03ce866
Show file tree
Hide file tree
Showing 187 changed files with 10,678 additions and 3,479 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Expand Up @@ -10,6 +10,7 @@ env:
- TESTSUITE=1 KERNEL=3.18.1
- TESTSUITE=1 OPTS="--enable-shared"
- BUILD_ENV="-m32" OPTS="--disable-ssl"
- KERNEL=4.0.2
- KERNEL=3.17.7 DPDK=1
- KERNEL=3.17.7 DPDK=1 OPTS="--enable-shared"
- KERNEL=3.17.7
Expand Down
6 changes: 4 additions & 2 deletions .travis/build.sh
Expand Up @@ -9,7 +9,9 @@ EXTRA_OPTS=""

function install_kernel()
{
if [[ "$1" =~ ^3.* ]]; then
if [[ "$1" =~ ^4.* ]]; then
PREFIX="v4.x"
elif [[ "$1" =~ ^3.* ]]; then
PREFIX="v3.x"
else
PREFIX="v2.6/longterm/v2.6.32"
Expand Down Expand Up @@ -74,7 +76,7 @@ if [ "$DPDK" ]; then
install_dpdk $DPDK_VER
if [ "$CC" = "clang" ]; then
# Disregard cast alignment errors until DPDK is fixed
EXTRA_OPTS="$EXTRA_OPTS -Wno-cast-align"
CFLAGS="$CFLAGS -Wno-cast-align"
fi
EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=./dpdk-$DPDK_VER/build"
elif [ "$CC" != "clang" ]; then
Expand Down
9 changes: 8 additions & 1 deletion AUTHORS
Expand Up @@ -35,6 +35,7 @@ Chuck Short zulcss@ubuntu.com
Cong Wang amwang@redhat.com
Damien Millescamps damien.millescamps@6wind.com
Dan Carpenter dan.carpenter@oracle.com
Dan McGregor dan.mcgregor@usask.ca
Dan Wendlandt dan@nicira.com
Daniel Borkmann dborkman@redhat.com
Daniel Hiltgen daniel@netkine.com
Expand Down Expand Up @@ -166,6 +167,7 @@ SUGYO Kazushi sugyo.org@gmail.com
Tadaaki Nagao nagao@stratosphere.co.jp
Terry Wilson twilson@redhat.com
Tetsuo NAKAGAWA nakagawa@mxc.nes.nec.co.jp
Thomas F. Herbert thomasfherbert@gmail.com
Thomas Goirand zigo@debian.org
Thomas Graf tgraf@noironetworks.com
Thomas Lacroix thomas.lacroix@citrix.com
Expand All @@ -179,7 +181,7 @@ Vivien Bernet-Rollande vbr@soprive.net
Wang Sheng-Hui shhuiw@gmail.com
Wei Yongjun yjwei@cn.fujitsu.com
William Fulton
YAMAMOTO Takashi yamamoto@valinux.co.jp
YAMAMOTO Takashi yamamoto@midokura.com
Yasuhito Takamiya yasuhito@gmail.com
yinpeijun yinpeijun@huawei.com
Yu Zhiguo yuzg@cn.fujitsu.com
Expand Down Expand Up @@ -213,6 +215,7 @@ Anuprem Chalvadi achalvadi@vmware.com
Ariel Tubaltsev atubaltsev@vmware.com
Arkajit Ghosh arkajit.ghosh@tcs.com
Atzm Watanabe atzm@stratosphere.co.jp
Aurélien Poulain aurepoulain@viacesi.fr
Bastian Blank waldi@debian.org
Ben Basler bbasler@nicira.com
Bob Ball bob.ball@citrix.com
Expand Down Expand Up @@ -276,6 +279,7 @@ Joan Cirer joan@ev0.net
John Darrington john@darrington.wattle.id.au
John Galgay john@galgay.net
John Hurley john.hurley@netronome.com
Keith Holleman hollemanietf@gmail.com
K 華 k940545@hotmail.com
Kevin Mancuso kevin.mancuso@rackspace.com
Kiran Shanbhog kiran@vmware.com
Expand Down Expand Up @@ -304,6 +308,7 @@ Mike Bursell mike.bursell@citrix.com
Mike Kruze mkruze@nicira.com
Min Chen ustcer.tonychan@gmail.com
Mikael Doverhag mdoverhag@nicira.com
Mrinmoy Das mrdas@ixiacom.com
Nagi Reddy Jonnala njonnala@Brocade.com
Niels van Adrichem N.L.M.vanAdrichem@tudelft.nl
Niklas Andersson nandersson@nicira.com
Expand All @@ -328,6 +333,7 @@ Ronaldo A. Ferreira ronaldof@CS.Princeton.EDU
Ronny L. Bull bullrl@clarkson.edu
Sander Eikelenboom linux@eikelenboom.it
Saul St. John sstjohn@cs.wisc.edu
Saurabh Shrivastava (सौरभ श्रीवास्तव) saurabh@gmail.com
Scott Hendricks shendricks@nicira.com
Sean Brady sbrady@gtfservices.com
Sebastian Andrzej Siewior sebastian@breakpoint.cc
Expand All @@ -338,6 +344,7 @@ Sridhar Samudrala samudrala.sridhar@gmail.com
Srini Seetharaman seethara@stanford.edu
Sabyasachi Sengupta Sabyasachi.Sengupta@alcatel-lucent.com
Salvatore Cambria salvatore.cambria@citrix.com
Soner Sevinc sevincs@vmware.com
Stephen Hemminger shemminger@vyatta.com
Suganya Ramachandran suganyar@vmware.com
Takayuki HAMA t-hama@cb.jp.nec.com
Expand Down
2 changes: 1 addition & 1 deletion FAQ.md
Expand Up @@ -156,7 +156,7 @@ A: The following table lists the Linux kernel versions against which the
| 2.0.x | 2.6.32 to 3.10
| 2.1.x | 2.6.32 to 3.11
| 2.3.x | 2.6.32 to 3.14
| 2.4.x | 2.6.32 to 3.19
| 2.4.x | 2.6.32 to 4.0

Open vSwitch userspace should also work with the Linux kernel module
built into Linux 3.3 and later.
Expand Down
21 changes: 18 additions & 3 deletions INSTALL.DPDK.md
Expand Up @@ -260,9 +260,6 @@ Using the DPDK with ovs-vswitchd:
Note, the pmd threads on a numa node are only created if there is at least
one DPDK interface from the numa node that has been added to OVS.

Note, core 0 is always reserved from non-pmd threads and should never be set
in the cpu mask.

To understand where most of the time is spent and whether the caches are
effective, these commands can be used:

Expand Down Expand Up @@ -560,6 +557,24 @@ steps in the previous section before proceeding with the following steps:

5. Use virt-manager to launch the VM

Running ovs-vswitchd with DPDK backend inside a VM
--------------------------------------------------

Please note that additional configuration is required if you want to run
ovs-vswitchd with DPDK backend inside a QEMU virtual machine. Ovs-vswitchd
creates separate DPDK TX queues for each CPU core available. This operation
fails inside QEMU virtual machine because, by default, VirtIO NIC provided
to the guest is configured to support only single TX queue and single RX
queue. To change this behavior, you need to turn on 'mq' (multiqueue)
property of all virtio-net-pci devices emulated by QEMU and used by DPDK.
You may do it manually (by changing QEMU command line) or, if you use Libvirt,
by adding the following string:

`<driver name='vhost' queues='N'/>`

to <interface> sections of all network devices used by DPDK. Parameter 'N'
determines how many queues can be used by the guest.

Restrictions:
-------------

Expand Down
8 changes: 6 additions & 2 deletions INSTALL.Docker.md
Expand Up @@ -55,9 +55,13 @@ and then attaches it to the Open vSwitch bridge 'br-int'. This is done by
creating a veth pair. One end of the interface becomes 'eth1' inside the
container and the other end attaches to 'br-int'.

The script also lets one to add an IP address to the interface. e.g.:
The script also lets one to add IP address, MAC address, Gateway address and
MTU for the interface. e.g.:

`% ovs-docker add-port br-int eth1 $CONTAINER_ID 192.168.1.1/24`
```
% ovs-docker add-port br-int eth1 $CONTAINER_ID --ipaddress=192.168.1.2/24 \
--macaddress=a2:c3:0d:49:7f:f8 --gateway=192.168.1.1 --mtu=1450
```

* A previously added network interface can be deleted. e.g.:

Expand Down
71 changes: 37 additions & 34 deletions INSTALL.Windows.md
Expand Up @@ -62,9 +62,10 @@ or from a distribution tar ball.
the right compiler, linker, libraries, Open vSwitch component installation
directories, etc. For example,

% ./configure CC=./build-aux/cccl LD="`which link`" LIBS="-lws2_32" \
--prefix="C:/openvswitch/usr" --localstatedir="C:/openvswitch/var" \
--sysconfdir="C:/openvswitch/etc" --with-pthread="C:/pthread"
% ./configure CC=./build-aux/cccl LD="`which link`" \
LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \
--localstatedir="C:/openvswitch/var" --sysconfdir="C:/openvswitch/etc" \
--with-pthread="C:/pthread"

By default, the above enables compiler optimization for fast code.
For default compiler optimization, pass the "--with-debug" configure
Expand Down Expand Up @@ -114,10 +115,10 @@ Note down the directory where OpenSSL is installed (e.g.: C:/OpenSSL-Win32).
* While configuring the package, specify the OpenSSL directory path.
For example,

% ./configure CC=./build-aux/cccl LD="`which link`" LIBS="-lws2_32" \
--prefix="C:/openvswitch/usr" --localstatedir="C:/openvswitch/var" \
--sysconfdir="C:/openvswitch/etc" --with-pthread="C:/pthread" \
--enable-ssl --with-openssl="C:/OpenSSL-Win32"
% ./configure CC=./build-aux/cccl LD="`which link`" \
LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \
--localstatedir="C:/openvswitch/var" --sysconfdir="C:/openvswitch/etc" \
--with-pthread="C:/pthread" --enable-ssl --with-openssl="C:/OpenSSL-Win32"

* Run make for the ported executables.

Expand All @@ -128,17 +129,17 @@ You can open the extensions.sln file in the IDE and build the solution.

* The kernel datapath can be compiled from command line as well. The top
level 'make' will invoke building the kernel datapath, if the
'--with-vstudioddk' argument is specified while configuring the package.
'--with-vstudiotarget' argument is specified while configuring the package.
For example,

% ./configure CC=./build-aux/cccl LD="`which link`" LIBS="-lws2_32" \
--prefix="C:/openvswitch/usr" --localstatedir="C:/openvswitch/var" \
--sysconfdir="C:/openvswitch/etc" --with-pthread="C:/pthread" \
--enable-ssl --with-openssl="C:/OpenSSL-Win32" \
--with-vstudioddk="<WDK to use>"
% ./configure CC=./build-aux/cccl LD="`which link`" \
LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \
--localstatedir="C:/openvswitch/var" --sysconfdir="C:/openvswitch/etc" \
--with-pthread="C:/pthread" --enable-ssl \
--with-openssl="C:/OpenSSL-Win32" --with-vstudiotarget="<target type>"

Possible values for "<WDK to use>" are:
"Win8.1 Debug", "Win8.1 Release", "Win8 Debug" and "Win8 Release".
Possible values for "<target type>" are:
"Debug" and "Release"

Installing the Kernel module
----------------------------
Expand Down Expand Up @@ -385,29 +386,31 @@ Hyper-Vs. The following examples demonstrate how it can be done:
% ovs-vsctl add-port br-int ovs-port-a tag=900
% ovs-vsctl add-port br-int ovs-port-b tag=900

Steps to add VXLAN tunnels
Steps to add tunnels
--------------------------
The Windows Open vSwitch implementation support VXLAN tunnels. To add VXLAN
The Windows Open vSwitch implementation support VXLAN and STT tunnels. To add
tunnels, the following steps serve as examples.

Note that, any patch ports created between br-int and br-pif MUST be beleted
prior to adding VXLAN tunnels.

01> Add the vxlan port between 172.168.201.101 <-> 172.168.201.102
% ovs-vsctl add-port br-int vxlan-1
% ovs-vsctl set Interface vxlan-1 type=vxlan
% ovs-vsctl set Interface vxlan-1 options:local_ip=172.168.201.101
% ovs-vsctl set Interface vxlan-1 options:remote_ip=172.168.201.102
% ovs-vsctl set Interface vxlan-1 options:in_key=flow
% ovs-vsctl set Interface vxlan-1 options:out_key=flow

02> Add the vxlan port between 172.168.201.101 <-> 172.168.201.105
% ovs-vsctl add-port br-int vxlan-2
% ovs-vsctl set Interface vxlan-2 type=vxlan
% ovs-vsctl set Interface vxlan-2 options:local_ip=172.168.201.102
% ovs-vsctl set Interface vxlan-2 options:remote_ip=172.168.201.105
% ovs-vsctl set Interface vxlan-2 options:in_key=flow
% ovs-vsctl set Interface vxlan-2 options:out_key=flow
prior to adding tunnels.

01> Add the tunnel port between 172.168.201.101 <-> 172.168.201.102
% ovs-vsctl add-port br-int tun-1
% ovs-vsctl set Interface tun-1 type=port-type
% ovs-vsctl set Interface tun-1 options:local_ip=172.168.201.101
% ovs-vsctl set Interface tun-1 options:remote_ip=172.168.201.102
% ovs-vsctl set Interface tun-1 options:in_key=flow
% ovs-vsctl set Interface tun-1 options:out_key=flow

02> Add the tunnel port between 172.168.201.101 <-> 172.168.201.105
% ovs-vsctl add-port br-int tun-2
% ovs-vsctl set Interface tun-2 type=port-type
% ovs-vsctl set Interface tun-2 options:local_ip=172.168.201.102
% ovs-vsctl set Interface tun-2 options:remote_ip=172.168.201.105
% ovs-vsctl set Interface tun-2 options:in_key=flow
% ovs-vsctl set Interface tun-2 options:out_key=flow

Where port-type is the string stt or vxlan


Requirements
Expand Down
7 changes: 5 additions & 2 deletions Makefile.am
Expand Up @@ -335,11 +335,13 @@ CLEANFILES += manpage-dep-check
if VSTUDIO_DDK
ALL_LOCAL += ovsext_make
ovsext_make: datapath-windows/ovsext.sln
MSBuild.exe datapath-windows/ovsext.sln /target:Build /property:Configuration="$(VSTUDIO_CONFIG)"
MSBuild.exe datapath-windows/ovsext.sln /target:Build /property:Configuration="Win8$(VSTUDIO_CONFIG)"
MSBuild.exe datapath-windows/ovsext.sln /target:Build /property:Configuration="Win8.1$(VSTUDIO_CONFIG)"

CLEAN_LOCAL += ovsext_clean
ovsext_clean: datapath-windows/ovsext.sln
MSBuild.exe datapath-windows/ovsext.sln /target:Clean /property:Configuration="$(VSTUDIO_CONFIG)"
MSBuild.exe datapath-windows/ovsext.sln /target:Clean /property:Configuration="Win8$(VSTUDIO_CONFIG)"
MSBuild.exe datapath-windows/ovsext.sln /target:Clean /property:Configuration="Win8.1$(VSTUDIO_CONFIG)"
endif

dist-hook: $(DIST_HOOKS)
Expand Down Expand Up @@ -377,4 +379,5 @@ include tutorial/automake.mk
include vtep/automake.mk
include datapath-windows/automake.mk
include datapath-windows/include/automake.mk
include windows/automake.mk
include ovn/automake.mk
26 changes: 24 additions & 2 deletions NEWS
@@ -1,6 +1,11 @@
Post-v2.3.0
---------------------
- Added support for SFQ, FQ_CoDel and CoDel qdiscs.
- Flow table modifications are now atomic, meaning that each packet
now sees a coherent version of the OpenFlow pipeline. For
example, if a controller removes all flows with a single OpenFlow
"flow_mod", no packet sees an intermediate version of the OpenFlow
pipeline where only some of the flows have been deleted.
- Added support for SFQ, FQ_CoDel and CoDel qdiscs.
- Add bash command-line completion support for ovs-vsctl Please check
utilities/ovs-command-compgen.INSTALL.md for how to use.
- The MAC learning feature now includes per-port fairness to mitigate
Expand All @@ -27,6 +32,11 @@ Post-v2.3.0
commands are now redundant and will be removed in a future
release. See ovs-vswitchd(8) for details.
- OpenFlow:
* OpenFlow 1.4 bundles are now supported, but for flow mod
messages only. Both 'atomic' and 'ordered' bundle flags are
trivially supported, as all bundled messages are executed in
the order they were added and all flow table modifications are
now atomic to the datapath.
* IPv6 flow label and neighbor discovery fields are now modifiable.
* OpenFlow 1.5 extended registers are now supported.
* The OpenFlow 1.5 actset_output field is now supported.
Expand All @@ -41,6 +51,18 @@ Post-v2.3.0
* A new Netronome extension to OpenFlow 1.5+ allows control over the
fields hashed for OpenFlow select groups. See "selection_method" and
related options in ovs-ofctl(8) for details.
- ovs-ofctl has a new '--bundle' option that makes the flow mod commands
('add-flow', 'add-flows', 'mod-flows', 'del-flows', and 'replace-flows')
use an OpenFlow 1.4 bundle to operate the modifications as a single
atomic transaction. If any of the flow mods in a transaction fail, none
of them are executed. All flow mods in a bundle appear to datapath
lookups simultaneously.
- ovs-ofctl 'add-flow' and 'add-flows' commands now accept arbitrary flow
mods as an input by allowing the flow specification to start with an
explicit 'add', 'modify', 'modify_strict', 'delete', or 'delete_strict'
keyword. A missing keyword is treated as 'add', so this is fully
backwards compatible. With the new '--bundle' option all the flow mods
are executed as a single atomic transaction using an OpenFlow 1.4 bundle.
- ovs-pki: Changed message digest algorithm from MD5 to SHA-1 because
MD5 is no longer secure and some operating systems have started to disable
it in OpenSSL.
Expand All @@ -65,7 +87,7 @@ Post-v2.3.0
- Added support for DPDK Tunneling. VXLAN, GRE, and Geneve are supported
protocols. This is generic tunneling mechanism for userspace datapath.
- Support for multicast snooping (IGMPv1 and IGMPv2)
- Support for Linux kernels up to 3.19.x
- Support for Linux kernels up to 4.0.x
- The documentation now use the term 'destination' to mean one of syslog,
console or file for vlog logging instead of the previously used term
'facility'.
Expand Down
11 changes: 7 additions & 4 deletions acinclude.m4
Expand Up @@ -133,12 +133,14 @@ AC_DEFUN([OVS_CHECK_LINUX], [
fi
AC_MSG_RESULT([$kversion])
if test "$version" -ge 3; then
if test "$version" = 3 && test "$patchlevel" -le 19; then
: # Linux 3.x
if test "$version" -ge 4; then
if test "$version" = 4 && test "$patchlevel" -le 0; then
: # Linux 4.x
else
AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 3.19.x is not supported (please refer to the FAQ for advice)])
AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.0.x is not supported (please refer to the FAQ for advice)])
fi
elif test "$version" = 3; then
: # Linux 3.x
else
if test "$version" -le 1 || test "$patchlevel" -le 5 || test "$sublevel" -le 31; then
AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version 2.6.32 or later is required])
Expand Down Expand Up @@ -342,6 +344,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
# quoting rules.
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [[[^@]]proto_data_valid],
[OVS_DEFINE([HAVE_PROTO_DATA_VALID])])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [kfree_skb_list])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [rxhash])
OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [u16.*rxhash],
[OVS_DEFINE([HAVE_U16_RXHASH])])
Expand Down
8 changes: 4 additions & 4 deletions appveyor.yml
Expand Up @@ -15,9 +15,9 @@ init:
Invoke-WebRequest $source -OutFile $destination
$source = "http://slproweb.com/download/Win32OpenSSL-1_0_1L.exe"
$source = "https://slproweb.com/download/Win32OpenSSL-1_0_2a.exe"
$destination = "C:\ovs-build-downloads\Win32OpenSSL-1_0_1L.exe"
$destination = "C:\ovs-build-downloads\Win32OpenSSL-1_0_2a.exe"
Invoke-WebRequest $source -OutFile $destination
Expand All @@ -27,7 +27,7 @@ init:
cd C:\ovs-build-downloads
.\Win32OpenSSL-1_0_1L.exe /silent /verysilent /sp- /suppressmsgboxes
.\Win32OpenSSL-1_0_2a.exe /silent /verysilent /sp- /suppressmsgboxes
Start-Sleep -s 30
Expand All @@ -39,5 +39,5 @@ build_script:
- C:\MinGW\msys\1.0\bin\bash -lc "cp /c/pthreads-win32/Pre-built.2/dll/x86/*.dll /c/openvswitch/."
- C:\MinGW\msys\1.0\bin\bash -lc "mv /bin/link.exe /bin/link_copy.exe"
- C:\MinGW\msys\1.0\bin\bash -lc "cd /c/openvswitch && ./boot.sh"
- C:\MinGW\msys\1.0\bin\bash -lc "cd /c/openvswitch && ./configure CC=build-aux/cccl LD=\"`which link`\" LIBS=-lws2_32 --with-pthread=C:/pthreads-win32/Pre-built.2 --with-openssl=C:/OpenSSL-Win32 --with-vstudioddk=\"Win8.1 Debug\""
- C:\MinGW\msys\1.0\bin\bash -lc "cd /c/openvswitch && ./configure CC=build-aux/cccl LD=\"`which link`\" LIBS=\"-lws2_32 -liphlpapi\" --with-pthread=C:/pthreads-win32/Pre-built.2 --with-openssl=C:/OpenSSL-Win32 --with-vstudiotarget=\"Debug\""
- C:\MinGW\msys\1.0\bin\bash -lc "cd /c/openvswitch && make"

0 comments on commit 03ce866

Please sign in to comment.