- [INSTALL.RHEL.md]
- [INSTALL.XenServer.md]
- [INSTALL.NetBSD.md]
+ - [INSTALL.Windows.md]
- [INSTALL.DPDK.md]
Build Requirements
analysis and thread-safety checks. For Ubuntu, there are
nightly built packages available on clang's website.
+ * MSVC 2013. See [INSTALL.Windows] for additional Windows build
+ instructions.
+
While OVS may be compatible with other compilers, optimal
support for atomic operations may be missing, making OVS very
slow (see lib/ovs-atomic.h).
libssl is installed, then Open vSwitch will automatically build
with support for it.
- - Python 2.x, for x >= 4.
+ - 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.
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
- Perl. Version 5.10.1 is known to work. Earlier versions should
also work.
- - Python 2.x, for x >= 4.
-
If you are going to extensively modify Open vSwitch, please consider
installing the following to obtain better warnings:
`% ./configure CC=clang`
+To supply special flags to the C compiler, specify them as CFLAGS on
+the configure command line. If you want the default CFLAGS, which
+include "-g" to build debug symbols and "-O2" to enable optimizations,
+you must include them yourself. For example, to build with the
+default CFLAGS plus "-mssse3", you might run configure as follows:
+
+ `% ./configure CFLAGS="-g -O2 -mssse3"`
+
+Note that these CFLAGS are not applied when building the Linux
+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"
+
To build the Linux kernel module, so that you can run the
kernel-based switch, pass the location of the kernel build
directory on --with-linux. For example, to build for a running
For improved warnings if you installed "sparse" (see "Prerequisites"),
add C=1 to the command line.
+ Some versions of Clang and ccache are not completely compatible.
+ If you see unusual warnings when you use both together, consider
+ disabling ccache for use with Clang.
+
2. Consider running the testsuite. Refer to "Running the Testsuite"
below, for instructions.
Vagrant
-------
-Requires: Vagrant and a compatible hypervisor
+Requires: Vagrant (version 1.7.0 or later) and a compatible hypervisor
You must bootstrap and configure the sources (steps are in "Building
and Installing Open vSwitch for Linux, FreeBSD or NetBSD" above) before
vagrant ssh
This will bring up w Fedora 20 VM by default, alternatively the
-`Vagrantfile.in` can be modified to use a different distribution box as
-base. Also, the VM can be reprovisioned at any time to recompile and
-reinstall OVS:
+`Vagrantfile` can be modified to use a different distribution box as
+base. Also, the VM can be reprovisioned at any time:
vagrant provision
+OVS out-of-tree compilation environment can be set up with:
+
+ ./boot.sh
+ vagrant provision --provision-with configure_ovs,build_ovs
+
+This will set up an out-of-tree build environment in /home/vagrant/build.
+The source code can be found in /vagrant. Out-of-tree build is preferred
+to work around limitations of the sync file systems.
+
+To recompile and reinstall OVS using RPM:
+
+ ./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
-------------------------------------