Open vSwitch
C Python Roff Shell M4 Makefile Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.travis travis: build the selinux policy under linux Feb 28, 2018
Documentation Clean up some minor spelling and typos. Mar 14, 2018
build-aux extract-ofp-errors: Minor improvements. Feb 13, 2018
datapath-windows datapath-windows: Do not drop Ip fragments less than MIN_FRAGMENT_SIZE Mar 8, 2018
datapath compat: Fix RHEL 7 build warnings Feb 28, 2018
debian Set release dates for 2.9.0. Feb 19, 2018
include ofp-print: Move much of the printing code into message-specific files. Mar 14, 2018
lib odp-util: Print eth() for Ethernet flows if packet_type is absent. Mar 14, 2018
m4 m4: Try to use "python" as Python2 interpreter only as last resort Mar 8, 2018
ofproto ofp-packet: Better abstract packet-in format. Mar 14, 2018
ovn ovn-ctl: Trivial, remove duplicated stop_controller case option Mar 14, 2018
ovsdb ovsdb-client: Set binary mode when doing backup/restore Mar 15, 2018
poc poc: Introduce Proof of Concepts (Package building) Feb 12, 2018
python ovsdb-idl: Use modern form of <monitor-requests>. Mar 14, 2018
rhel rhel: Avoid losing bridge configuration after adding DPDK ports Mar 7, 2018
selinux selinux: drop autogenerated files Feb 28, 2018
tests tests: Add some Python3 test variants on Mar 14, 2018
third-party doc: Remove documentation from distdoc target Dec 12, 2016
tutorial treewide: Get rid of "echo -n", and add a test to prevent regression. Oct 30, 2017
utilities Clean up some minor spelling and typos. Mar 14, 2018
vswitchd vswitchd: Remove support for deprecated "null" interfaces. Mar 14, 2018
vtep Refer to database manpages in *ctl manpages Feb 26, 2018
windows MSI: Use platform specific netcfg location Jan 5, 2018
xenserver Replace most uses of and references to "ifconfig" by "ip". Jun 1, 2017
.gitignore poc: Introduce Proof of Concepts (Package building) Feb 12, 2018
.mailmap .mailmap: Document file format. Nov 17, 2016
.travis.yml travis: build the selinux policy under linux Feb 28, 2018
AUTHORS.rst ovsdb-idl: Use modern form of <monitor-requests>. Mar 14, 2018
CONTRIBUTING.rst CONTRIBUTING.rst: Fix links. Mar 17, 2017
COPYING conntrack: New userspace connection tracker. Jul 28, 2016
MAINTAINERS.rst MAINTAINERS: Update Pravin's email address. Dec 28, 2017 datapath-windows: Support to selectively compile targets Mar 1, 2018
NEWS vswitchd: Remove support for deprecated "null" interfaces. Mar 14, 2018
NOTICE datapath-windows: Add Connection Tracking Support Apr 14, 2016
README.rst github: Add Appveyor image and link to Readme Sep 7, 2017
Vagrantfile packaging: Make Fedora spec file CentOS compatible Mar 8, 2017
Vagrantfile-FreeBSD vagrant: Add FreeBSD 10.2 box support. Jul 3, 2016
acinclude.m4 compat: Fix RHEL 7 compile Feb 28, 2018
appveyor.yml AppVeyor: Add Win10 compilation to the build Mar 5, 2018 debian: Check for accurate Debian changelog version at build time too. Jul 21, 2010 Add -Wshadow for compilers that support it. Feb 28, 2018 ovn-sbctl: Remove incorrect manpage options. Feb 28, 2018


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 entirely in userspace without assistance from a kernel module. This userspace implementation should be easier to port than the kernel-based switch. OVS in userspace can access Linux or DPDK devices. Note Open vSwitch with userspace datapath and non DPDK devices is considered experimental and comes with a cost in performance.

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.