Open vSwitch, Release 2.11.90
Build Requirements
To compile the userspace programs in the Open vSwitch distribution, you will need the following software:
• GNU make
• A C compiler, such as:
– GCC 4.6 or later.
– Clang 3.4 or later.
– MSVC 2013. Refer to Open vSwitch on 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, from OpenSSL, is optional but recommended if you plan to connect the Open vSwitch to an OpenFlow
controller. libssl is required to establish confidentiality and authenticity in the connections from an Open vSwitch
to an OpenFlow controller. If libssl is installed, then Open vSwitch will automatically build with support for it.
• 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 version 1.4.0 or later.
• Unbound library, from http://www.unbound.net, is optional but recommended if you want to enable ovs-
vswitchd and other utilities to use DNS names when specifying OpenFlow and OVSDB remotes. If unbound
library is already installed, then Open vSwitch will automatically build with support for it. The environment
variable OVS_RESOLV_CONF can be used to specify DNS server configuration file (the default file on Linux
is /etc/resolv.conf).
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 the Linux kernel (version 3.3 or later). See the Open vSwitch FAQ question “What features
are not available in the Open vSwitch kernel datapath that ships as part of the upstream Linux kernel?” for more
information on this trade-off. You may also use the userspace-only implementation, at some cost in features and
performance. Refer to Open vSwitch without Kernel Support for details.
To compile the kernel module on Linux, you must also install the following:
• A supported Linux kernel version.
For optional support of ingress policing, you must enable kernel configuration options NET_CLS_BASIC,
NET_SCH_INGRESS, and NET_ACT_POLICE, either built-in or as modules. NET_CLS_POLICE is obsolete
and not needed.)
On kernels before 3.11, the ip_gre module, for GRE tunnels over IP (NET_IPGRE), must not be loaded or
compiled in.
To configure HTB or HFSC quality of service with Open vSwitch, you must enable the respective configuration
options.
To use Open vSwitch support for TAP devices, you must enable CONFIG_TUN.
• To build a kernel module, you need the same version of GCC that was used to build that kernel.
• A kernel build directory corresponding to the Linux kernel image the module is to run on. Under Debian and
Ubuntu, for example, each linux-image package containing a kernel binary has a corresponding linux-headers
package with the required build infrastructure.
If you are working from a Git tree or snapshot (instead of from a distribution tarball), or if you modify the Open
vSwitch build system or the database schema, you will also need the following software:
8 Chapter 2. Getting Started