diff mbox

[ovs-dev,v2] FAQ: Add entry about different datapaths features.

Message ID 1449792911-14798-1-git-send-email-diproiettod@vmware.com
State Accepted
Headers show

Commit Message

Daniele Di Proietto Dec. 11, 2015, 12:15 a.m. UTC
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 <nithin@vmware.com>
Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
Acked-by: Ben Pfaff <blp@ovn.org>
Acked-by: Nithin Raju <nithin@vmware.com>
---
v1 -> v2:

* Mention FreeBSD and NetBSD in the userspace datapath description.
* Split QoS in shaping and policing.
* Remove previous FAQ (superseeded by this).
---
 FAQ.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 66 insertions(+), 22 deletions(-)

Comments

Justin Pettit Dec. 11, 2015, 12:42 a.m. UTC | #1
> On Dec 10, 2015, at 4:15 PM, Daniele Di Proietto <diproiettod@vmware.com> wrote:
> 
> +   * *Hyper-V*: Also known as the windows datapath.

"Windows" should probably be capitalized.

Acked-by: Justin Pettit <jpettit@ovn.org>

Thanks for putting this together!

--Justin
Joe Stringer Dec. 11, 2015, 1:35 a.m. UTC | #2
On 10 December 2015 at 16:15, Daniele Di Proietto
<diproiettod@vmware.com> wrote:
> 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 <nithin@vmware.com>
> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
> Acked-by: Ben Pfaff <blp@ovn.org>
> Acked-by: Nithin Raju <nithin@vmware.com>
> ---
> v1 -> v2:
>
> * Mention FreeBSD and NetBSD in the userspace datapath description.
> * Split QoS in shaping and policing.
> * Remove previous FAQ (superseeded by this).
> ---
>  FAQ.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++-----------------
>  1 file changed, 66 insertions(+), 22 deletions(-)
>
> diff --git a/FAQ.md b/FAQ.md
> index 8397e0f..9a87002 100644
> --- a/FAQ.md
> +++ b/FAQ.md
> @@ -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 module can be compiled) is listed.

Thanks! Minor nit, perhaps it should say "(against which the feature
can be compiled)".

LGTM.
Daniele Di Proietto Dec. 11, 2015, 2:31 a.m. UTC | #3
On 10/12/2015 17:35, "Joe Stringer" <joe@ovn.org> wrote:

>On 10 December 2015 at 16:15, Daniele Di Proietto
><diproiettod@vmware.com> wrote:
>> 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 <nithin@vmware.com>
>> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
>> Acked-by: Ben Pfaff <blp@ovn.org>
>> Acked-by: Nithin Raju <nithin@vmware.com>
>> ---
>> v1 -> v2:
>>
>> * Mention FreeBSD and NetBSD in the userspace datapath description.
>> * Split QoS in shaping and policing.
>> * Remove previous FAQ (superseeded by this).
>> ---
>>  FAQ.md | 88 
>>+++++++++++++++++++++++++++++++++++++++++++++++++-----------------
>>  1 file changed, 66 insertions(+), 22 deletions(-)
>>
>> diff --git a/FAQ.md b/FAQ.md
>> index 8397e0f..9a87002 100644
>> --- a/FAQ.md
>> +++ b/FAQ.md
>> @@ -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 module can be compiled) is listed.
>
>Thanks! Minor nit, perhaps it should say "(against which the feature
>can be compiled)".
>
>LGTM.

I applied your suggestion, thanks!
Daniele Di Proietto Dec. 11, 2015, 2:34 a.m. UTC | #4
On 10/12/2015 16:42, "Justin Pettit" <jpettit@ovn.org> wrote:

>
>> On Dec 10, 2015, at 4:15 PM, Daniele Di Proietto
>><diproiettod@vmware.com> wrote:
>> 
>> +   * *Hyper-V*: Also known as the windows datapath.
>
>"Windows" should probably be capitalized.

You're right

>
>Acked-by: Justin Pettit <jpettit@ovn.org>

Thanks! Pushed to master and branch-2.5
Mark D. Gray Dec. 21, 2015, 9:20 a.m. UTC | #5
> 

> This is an easy way to keep track of the features supported by the different

> datapaths.

> 


LGTM
diff mbox

Patch

diff --git a/FAQ.md b/FAQ.md
index 8397e0f..9a87002 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -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 module 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: