The project's source code is distributed under the terms of
Apache License 2.0.
Overview
Open vSwitch is a software implementation of a
virtual multilayer
network switch, designed to enable effective network automation through programmatic extensions, while supporting standard management interfaces and protocols such as
NetFlow,
sFlow,
SPAN,
RSPAN,
CLI,
LACP and
802.1ag. In addition, Open vSwitch is designed to support transparent distribution across multiple physical servers by enabling creation of cross-server switches in a way that abstracts out the underlying server architecture, similar to the
VMware vNetwork distributed vswitch or
Cisco Nexus 1000V.[4][5][6]
Open vSwitch can operate both as a software-based network switch running within a
virtual machine (VM)
hypervisor, and as the control stack for dedicated switching hardware; as a result, it has been
ported to multiple virtualization platforms, switching chipsets, and networking
hardware accelerators.[7] Open vSwitch is the default network switch in the
XenServer virtualization platform since its version 6.0,[8] and in the
Xen Cloud Platform via its XAPI management toolstack.[9] It also supports
Xen,
LinuxKVM,
Proxmox VE and
VirtualBox hypervisors, while a port to
Hyper-V is also available.[10] Open vSwitch has also been integrated into various
cloud computing software platforms and virtualization management systems, including
OpenStack,
openQRM,
OpenNebula and
oVirt.[4][5]
The majority of the Open vSwitch source code is written in platform-independent
C language, which provides easy
portability to various environments. The source code is licensed under the Apache License 2.0.[4]
Features
As of September 2015[update], features provided by Open vSwitch include the following:[16][17]
Remote configuration protocol, with existing
bindings for the
C and
Python programming languages
Implementation of the packet forwarding engine in
kernel space or
userspace, allowing additional flexibility as well as providing performance improvements by processing the majority of forwarded packets without leaving the kernel space and by using
multithreaded kernel space and userspace components[18][19]
Multi-table forwarding pipeline with a flow-caching engine
Forwarding layer abstraction, making it easier to
port Open vSwitch to new software and hardware platforms