Skip to content

Commit

Permalink
FAQ: Add entry about different datapaths features.
Browse files Browse the repository at this point in the history
This is an easy way to keep track of the features supported by the
different datapaths.

Nithin helped filling the list for the Hyper-V port.

CC: Nithin Raju <[email protected]>
Signed-off-by: Daniele Di Proietto <[email protected]>
Acked-by: Ben Pfaff <[email protected]>
Acked-by: Nithin Raju <[email protected]>
Acked-by: Justin Pettit <[email protected]>
  • Loading branch information
ddiproietto committed Dec 11, 2015
1 parent a63e3dc commit d05293a
Showing 1 changed file with 66 additions and 22 deletions.
88 changes: 66 additions & 22 deletions FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,28 +165,72 @@ A: The following table lists the Linux kernel versions against which the
It should build against almost any kernel, certainly against 2.6.32
and later.

### Q: Are all features available with all versions of the kernel module?

A: Features are gradually introduced into the upstream kernel so unless
you are running the latest Linux release there may be some missing
features. ovs-vswitchd probes for kernel features during startup and
lists them in the ovs-vswitchd log file. If you need features that
are unsupported, you can upgrade the Linux version or use the kernel
module paired with the userspace distribution.

For a given Open vSwitch release, the vast majority of features are
supported when using the kernel module paired with the userspace
distribution, no matter which kernel you build it against. However,
from time to time, new features may be introduced which rely on
functionality not available in older kernels. The features below are
included in the kernel module distributed with OVS, but have more
stringent requirements for minimum kernel versions than the support
listed earlier.

| Feature | Open vSwitch | Linux kernel
|:---------:|:------------:|:------------:
| STT | 2.4+ | 3.5+
| Conntrack | 2.5+ | 3.10+
### Q: Are all features available with all datapaths?

A: Open vSwitch supports different datapaths on different platforms. Each
datapath has a different feature set: the following tables try to summarize
the status.

Supported datapaths:

* *Linux upstream*: The datapath implemented by the kernel module shipped
with Linux upstream. Since features have been gradually
introduced into the kernel, the table mentions the first
Linux release whose OVS module supports the feature.

* *Linux OVS tree*: The datapath implemented by the Linux kernel module
distributed with the OVS source tree. Some features of
this module rely on functionality not available in older
kernels: in this case the minumum Linux version (against
which the feature can be compiled) is listed.

* *Userspace*: Also known as DPDK, dpif-netdev or dummy datapath. It is the
only datapath that works on NetBSD and FreeBSD.

* *Hyper-V*: Also known as the Windows datapath.

The following table lists the datapath supported features from
an Open vSwitch user's perspective.

Feature | Linux upstream | Linux OVS tree | Userspace | Hyper-V |
----------------------|:--------------:|:--------------:|:---------:|:-------:|
Connection tracking | 4.3 | 3.10 | NO | NO |
Tunnel - LISP | NO | YES | NO | NO |
Tunnel - STT | NO | 3.5 | NO | YES |
Tunnel - GRE | 3.11 | YES | YES | NO |
Tunnel - VXLAN | 3.12 | YES | YES | YES |
Tunnel - Geneve | 3.18 | YES | YES | NO |
QoS - Policing | YES | YES | NO | NO |
QoS - Shaping | YES | YES | NO | NO |
sFlow | YES | YES | YES | NO |
Set action | YES | YES | YES | PARTIAL |
NIC Bonding | YES | YES | YES | NO |
Multiple VTEPs | YES | YES | YES | NO |

**Notes:**
* Only a limited set of flow fields is modifiable via the set action by the
Hyper-V datapath.
* The Hyper-V datapath only supports one physical NIC per datapath. This is
why bonding is not supported.
* The Hyper-V datapath can have at most one IP address configured as a
tunnel endpoint.

The following table lists features that do not *directly* impact an
Open vSwitch user, e.g. because their absence can be hidden by the ofproto
layer (usually this comes with a performance penalty).

Feature | Linux upstream | Linux OVS tree | Userspace | Hyper-V |
----------------------|:--------------:|:--------------:|:---------:|:-------:|
SCTP flows | 3.12 | YES | YES | YES |
MPLS | 3.19 | YES | YES | NO |
UFID | 4.0 | YES | YES | NO |
Megaflows | 3.12 | YES | YES | NO |
Masked set action | 4.0 | YES | YES | NO |
Recirculation | 3.19 | YES | YES | NO |
TCP flags matching | 3.13 | YES | YES | NO |
Validate flow actions | YES | YES | N/A | NO |
Multiple datapaths | YES | YES | YES | NO |
Tunnel TSO - STT | N/A | YES | NO | YES |

### Q: I get an error like this when I configure Open vSwitch:

Expand Down

0 comments on commit d05293a

Please sign in to comment.