Fedora, RHEL 7.x Packaging for Open vSwitch

This document provides instructions for building and installing Open vSwitch RPM packages on a Fedora Linux host. Instructions for the installation of Open vSwitch on a Fedora Linux host without using RPM packages can be found in the Open vSwitch on Linux, FreeBSD and NetBSD.

These instructions have been tested with Fedora 23, and are also applicable for RHEL 7.x and its derivatives, including CentOS 7.x and Scientific Linux 7.x.

Build Requirements

You will need to install all required packages to build the RPMs. Newer distributions use dnf but if it’s not available, then use yum instructions.

The command below will install RPM tools and generic build dependencies. And (optionally) include these packages: libcap-ng libcap-ng-devel dpdk-devel.

DNF:

$ dnf install @'Development Tools' rpm-build dnf-plugins-core

YUM:

$ yum install @'Development Tools' rpm-build yum-utils

Then it is necessary to install Open vSwitch specific build dependencies. The dependencies are listed in the SPEC file, but first it is necessary to replace the VERSION tag to be a valid SPEC.

The command below will create a temporary SPEC file:

$ sed -e 's/@VERSION@/0.0.1/' rhel/openvswitch-fedora.spec.in \
  > /tmp/ovs.spec

And to install specific dependencies, use the corresponding tool below. For some of the dependencies on RHEL you may need to add two additional repositories to help yum-builddep, e.g.:

$ subscription-manager repos --enable=rhel-7-server-extras-rpms
$ subscription-manager repos --enable=rhel-7-server-optional-rpms

DNF:

$ dnf builddep /tmp/ovs.spec

YUM:

$ yum-builddep /tmp/ovs.spec

Once that is completed, remove the file /tmp/ovs.spec.

Bootstraping

Refer to Bootstrapping.

Configuring

Refer to Configuring.

Building

User Space RPMs

To build Open vSwitch user-space RPMs, execute the following from the directory in which ./configure was executed:

$ make rpm-fedora

This will create the RPMs openvswitch, python-openvswitch, openvswitch-test, openvswitch-devel, openvswitch-ovn-common, openvswitch-ovn-central, openvswitch-ovn-host, openvswitch-ovn-vtep, openvswitch-ovn-docker, and openvswitch-debuginfo.

To enable DPDK support in the openvswitch package, the --with dpdk option can be added:

$ make rpm-fedora RPMBUILD_OPT="--with dpdk --without check"

You can also have the above commands automatically run the Open vSwitch unit tests. This can take several minutes.

$ make rpm-fedora RPMBUILD_OPT="--with check"

Kernel OVS Tree Datapath RPM

To build the Open vSwitch kernel module for the currently running kernel version, run:

$ make rpm-fedora-kmod

To build the Open vSwitch kernel module for another kernel version, the desired kernel version can be specified via the kversion macro. For example:

$ make rpm-fedora-kmod \
     RPMBUILD_OPT='-D "kversion 4.3.4-300.fc23.x86_64"'

Installing

RPM packages can be installed by using the command rpm -i. Package installation requires superuser privileges.

The openvswitch-kmod RPM should be installed first if the Linux OVS tree datapath module is to be used. The openvswitch-kmod RPM should not be installed if only the in-tree Linux datapath or user-space datapath is needed. Refer to the Open vSwitch FAQ for more information about the various Open vSwitch datapath options.

In most cases only the openvswitch RPM will need to be installed. The python-openvswitch, openvswitch-test, openvswitch-devel, and openvswitch-debuginfo RPMs are optional unless required for a specific purpose.

The openvswitch-ovn-* packages are only needed when using OVN.

Refer to the RHEL README for additional usage and configuration information.

Reporting Bugs

Report problems to bugs@openvswitch.org.