libssl is installed, then Open vSwitch will automatically build
with support for it.
- - Python 2.7.
+ - libcap-ng, written by Steve Grubb, is optional but recommended. It
+ is required to run OVS daemons as a non-root user with dropped root
+ privileges. If libcap-ng is installed, then Open vSwitch will
+ automatically build with support for it.
+
+ - Python 2.7. You must also have the Python six library.
On Linux, you may choose to compile the kernel module that comes with
the Open vSwitch distribution or to use the kernel module built into
- clang, version 3.4 or later
+ - flake8 (for Python code)
+
Also, you may find the ovs-dev script found in utilities/ovs-dev.py useful.
Installation Requirements
from iproute2 (part of all major distributions and available at
http://www.linux-foundation.org/en/Net:Iproute2).
+ - Python 2.7. You must also have the Python six library.
+
On Linux you should ensure that /dev/urandom exists. To support TAP
devices, you must also ensure that /dev/net/tun exists.
By default, static libraries are built and linked against. If you
want to use shared libraries instead:
- % ./configure --enable-shared
+ `% ./configure --enable-shared`
To use a specific C compiler for compiling Open vSwitch user
programs, also specify it on the configure command line, like so:
kernel module. Custom CFLAGS for the kernel module are supplied
using the EXTRA_CFLAGS variable when running make. So, for example:
- `% make EXTRA_CFLAGS="-Wno-error=date-time"
+ `% make EXTRA_CFLAGS="-Wno-error=date-time"`
To build the Linux kernel module, so that you can run the
kernel-based switch, pass the location of the kernel build
builds, or to build kernel modules for more than one Linux version.
Here is an example:
- `% mkdir _gcc && (cd _gcc && ../configure CC=gcc)`
+ `% mkdir _gcc && (cd _gcc && ../configure CC=gcc)`
`% mkdir _clang && (cd _clang && ../configure CC=clang)`
If you used a separate build directory, run make or gmake from that
directory, e.g.:
- `% make -C _gcc`
+ `% make -C _gcc`
`% make -C _clang`
For improved warnings if you installed "sparse" (see "Prerequisites"),
5. If you built kernel modules, you may install and load them, e.g.:
- `% make modules_install`
+ `% make modules_install`
`% /sbin/modprobe openvswitch`
To verify that the modules have been loaded, run "/sbin/lsmod" and
6. Initialize the configuration database using ovsdb-tool, e.g.:
- `% mkdir -p /usr/local/etc/openvswitch`
+ `% mkdir -p /usr/local/etc/openvswitch`
`% ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema`
Startup
managers specified in the database itself, and to use the SSL
configuration in the database:
+ ```
% ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
--remote=db:Open_vSwitch,Open_vSwitch,manager_options \
--private-key=db:Open_vSwitch,SSL,private_key \
--certificate=db:Open_vSwitch,SSL,certificate \
--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
--pidfile --detach
+ ```
(If you built Open vSwitch without SSL support, then omit
--private-key, --certificate, and --bootstrap-ca-cert.)
necessary the first time after you create the database with
ovsdb-tool (but running it at any time is harmless):
- % ovs-vsctl --no-wait init
+ `% ovs-vsctl --no-wait init`
Then start the main Open vSwitch daemon, telling it to connect to the
same Unix domain socket:
- % ovs-vswitchd --pidfile --detach
+ `% ovs-vswitchd --pidfile --detach`
Now you may use ovs-vsctl to set up bridges and other Open vSwitch
features. For example, to create a bridge named br0 and add ports
eth0 and vif1.0 to it:
- % ovs-vsctl add-br br0
- % ovs-vsctl add-port br0 eth0
- % ovs-vsctl add-port br0 vif1.0
+ `% ovs-vsctl add-br br0`
+ `% ovs-vsctl add-port br0 eth0`
+ `% ovs-vsctl add-port br0 vif1.0`
Please refer to ovs-vsctl(8) for more details.
Sometimes a few tests may fail on some runs but not others. This is
usually a bug in the testsuite, not a bug in Open vSwitch itself. If
you find that a test fails intermittently, please report it, since the
-developers may not have noticed.
+developers may not have noticed. You can make the testsuite
+automatically rerun tests that fail, by adding RECHECK=yes to the
+"make" command line, e.g.:
+ `make check TESTSUITEFLAGS=-j8 RECHECK=yes`
OFTest
------
./boot.sh
vagrant provision --provision-with configure_ovs,install_rpm
+Two provisioners are included to run system tests with the OVS kernel
+module or with a userspace datapath. This tests are different from
+the self-tests mentioned above. To run them:
+
+ ./boot.sh
+ vagrant provision --provision-with configure_ovs,test_ovs_kmod,test_ovs_system_userspace
+
Continuous Integration with Travis-CI
-------------------------------------