Open vSwitch
C Python Groff Shell Makefile M4 Other
Latest commit db0e819 Jan 20, 2017 @blp blp actions: Add new "ct_clear" action.
Signed-off-by: Ben Pfaff <>
Acked-by: Mickey Spiegel <>
Failed to load latest commit information.
.travis doc: Don't limit ourselves to flake8 2.x Jan 4, 2017
Documentation Documentation: Update DPDK doc after port naming change. Jan 19, 2017
build-aux xml2nroff: Port to python3. Jan 6, 2017
datapath-windows datapath-windows: Fix typo in OvsUpdateIPv4Header Jan 6, 2017
datapath datapath: Ensure correct L4 checksum with NAT helpers. Jan 7, 2017
debian debian: Also restrict ovn-docker package to Linux. Dec 24, 2016
include actions: Add new "ct_clear" action. Jan 21, 2017
lib tnl-neigh-cache: Force revalidation for a new neighbor entry. Jan 20, 2017
m4 libX: add new release / version info tags Jan 18, 2017
ofproto ofproto-dpif: Use acquire/release barriers with 'tables_version'. Jan 18, 2017
ovn actions: Add new "ct_clear" action. Jan 21, 2017
ovsdb libX: add new release / version info tags Jan 18, 2017
python python: Catch exception "SSL.SysCallError" for send by SSL. Jan 14, 2017
rhel OVN: Fix OCF symbolic link lost after ovn-common upgrade Dec 22, 2016
selinux selinux: Allow ovs-ctl force-reload-kmod. Jul 26, 2016
tests actions: Add new "ct_clear" action. Jan 21, 2017
third-party doc: Remove documentation from distdoc target Dec 12, 2016
tutorial ovs-sandbox: add '--vswitchd-unforced-dummy' option. Dec 13, 2016
utilities db-ctl-base: Always support all tables in schema. Jan 13, 2017
vswitchd netdev-dpdk: Start also dpdkr devices only once on port-add. Jan 16, 2017
vtep libX: add new release / version info tags Jan 18, 2017
windows build-windows: Propagate PACKAGE_VERSION to the MSI Dec 21, 2016
xenserver trivial: Don't mix tabs and spaces in ovs-sim Dec 1, 2016
.gitignore gitignore: Ignore venv Dec 21, 2016
.mailmap .mailmap: Document file format. Nov 17, 2016
.travis.yml travis: Update build list email address. Jan 12, 2017
AUTHORS.rst tnl-neigh-cache: Force revalidation for a new neighbor entry. Jan 20, 2017
CONTRIBUTING.rst doc: Populate 'internals' section Dec 12, 2016
COPYING conntrack: New userspace connection tracker. Jul 28, 2016
MAINTAINERS.rst doc: Convert committer-responsibilities to rST Nov 3, 2016 xml2nroff: Port to python3. Jan 6, 2017
NEWS New action "ct_clear". Jan 10, 2017
NOTICE datapath-windows: Add Connection Tracking Support Apr 14, 2016
README.rst doc: Add a 'what-is-ovs' document Dec 22, 2016
Vagrantfile lib: Add support for tftp ct helper. Jan 3, 2017
Vagrantfile-FreeBSD vagrant: Add FreeBSD 10.2 box support. Jul 3, 2016
acinclude.m4 datapath: compat: Fix build on RHEL 7.3 Dec 14, 2016
appveyor.yml appveyor.yml: Install python "pypiwin32" module. Jan 4, 2017 debian: Check for accurate Debian changelog version at build time too. Jul 21, 2010 libX: add new release / version info tags Jan 18, 2017 Update. Jan 6, 2017


Open vSwitch

What is Open vSwitch?

Open vSwitch is a multilayer software switch licensed under the open source Apache 2 license. Our goal is to implement a production quality switch platform that supports standard management interfaces and opens the forwarding functions to programmatic extension and control.

Open vSwitch is well suited to function as a virtual switch in VM environments. In addition to exposing standard control and visibility interfaces to the virtual networking layer, it was designed to support distribution across multiple physical servers. Open vSwitch supports multiple Linux-based virtualization technologies including Xen/XenServer, KVM, and VirtualBox.

The bulk of the code is written in platform-independent C and is easily ported to other environments. The current release of Open vSwitch supports the following features:

  • Standard 802.1Q VLAN model with trunk and access ports
  • NIC bonding with or without LACP on upstream switch
  • NetFlow, sFlow(R), and mirroring for increased visibility
  • QoS (Quality of Service) configuration, plus policing
  • Geneve, GRE, VXLAN, STT, and LISP tunneling
  • 802.1ag connectivity fault management
  • OpenFlow 1.0 plus numerous extensions
  • Transactional configuration database with C and Python bindings
  • High-performance forwarding using a Linux kernel module

The included Linux kernel module supports Linux 3.10 and up.

Open vSwitch can also operate, at a cost in performance, entirely in userspace, without assistance from a kernel module. This userspace implementation should be easier to port than the kernel-based switch. It is considered experimental.

What's here?

The main components of this distribution are:

  • ovs-vswitchd, a daemon that implements the switch, along with a companion Linux kernel module for flow-based switching.
  • ovsdb-server, a lightweight database server that ovs-vswitchd queries to obtain its configuration.
  • ovs-dpctl, a tool for configuring the switch kernel module.
  • Scripts and specs for building RPMs for Citrix XenServer and Red Hat Enterprise Linux. The XenServer RPMs allow Open vSwitch to be installed on a Citrix XenServer host as a drop-in replacement for its switch, with additional functionality.
  • ovs-vsctl, a utility for querying and updating the configuration of ovs-vswitchd.
  • ovs-appctl, a utility that sends commands to running Open vSwitch daemons.

Open vSwitch also provides some tools:

  • ovs-ofctl, a utility for querying and controlling OpenFlow switches and controllers.
  • ovs-pki, a utility for creating and managing the public-key infrastructure for OpenFlow switches.
  • ovs-testcontroller, a simple OpenFlow controller that may be useful for testing (though not for production).
  • A patch to tcpdump that enables it to parse OpenFlow messages.

What other documentation is available?

To install Open vSwitch on a regular Linux or FreeBSD host, please read the installation guide. For specifics around installation on a specific platform, refer to one of the other installation guides

For answers to common questions, refer to the FAQ.

To learn about some advanced features of the Open vSwitch software switch, read the tutorial.

Each Open vSwitch userspace program is accompanied by a manpage. Many of the manpages are customized to your configuration as part of the build process, so we recommend building Open vSwitch before reading the manpages.