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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Chuck Short [email protected]
Cong Wang [email protected]
Damien Millescamps [email protected]
Dan Carpenter [email protected]
Dan McGregor [email protected]
Dan Wendlandt [email protected]
Daniel Borkmann [email protected]
Daniel Hiltgen [email protected]
Expand Down Expand Up @@ -166,6 +167,7 @@ SUGYO Kazushi [email protected]
Tadaaki Nagao [email protected]
Terry Wilson [email protected]
Tetsuo NAKAGAWA [email protected]
Thomas F. Herbert [email protected]
Thomas Goirand [email protected]
Thomas Graf [email protected]
Thomas Lacroix [email protected]
Expand All @@ -179,7 +181,7 @@ Vivien Bernet-Rollande [email protected]
Wang Sheng-Hui [email protected]
Wei Yongjun [email protected]
William Fulton
YAMAMOTO Takashi yamamoto@valinux.co.jp
YAMAMOTO Takashi yamamoto@midokura.com
Yasuhito Takamiya [email protected]
yinpeijun [email protected]
Yu Zhiguo [email protected]
Expand Down Expand Up @@ -213,6 +215,7 @@ Anuprem Chalvadi [email protected]
Ariel Tubaltsev [email protected]
Arkajit Ghosh [email protected]
Atzm Watanabe [email protected]
Aurélien Poulain [email protected]
Bastian Blank [email protected]
Ben Basler [email protected]
Bob Ball [email protected]
Expand Down Expand Up @@ -276,6 +279,7 @@ Joan Cirer [email protected]
John Darrington [email protected]
John Galgay [email protected]
John Hurley [email protected]
Keith Holleman [email protected]
K 華 [email protected]
Kevin Mancuso [email protected]
Kiran Shanbhog [email protected]
Expand Down Expand Up @@ -304,6 +308,7 @@ Mike Bursell [email protected]
Mike Kruze [email protected]
Min Chen [email protected]
Mikael Doverhag [email protected]
Mrinmoy Das [email protected]
Nagi Reddy Jonnala [email protected]
Niels van Adrichem [email protected]
Niklas Andersson [email protected]
Expand All @@ -328,6 +333,7 @@ Ronaldo A. Ferreira [email protected]
Ronny L. Bull [email protected]
Sander Eikelenboom [email protected]
Saul St. John [email protected]
Saurabh Shrivastava (सौरभ श्रीवास्तव) [email protected]
Scott Hendricks [email protected]
Sean Brady [email protected]
Sebastian Andrzej Siewior [email protected]
Expand All @@ -338,6 +344,7 @@ Sridhar Samudrala [email protected]
Srini Seetharaman [email protected]
Sabyasachi Sengupta [email protected]
Salvatore Cambria [email protected]
Soner Sevinc [email protected]
Stephen Hemminger [email protected]
Suganya Ramachandran [email protected]
Takayuki HAMA [email protected]
Expand Down
2 changes: 1 addition & 1 deletion FAQ.md
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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"
Loading

0 comments on commit 03ce866

Please sign in to comment.