diff mbox

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

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

Commit Message

Daniele Di Proietto Dec. 7, 2015, 9 p.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>
---
 FAQ.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

Comments

Ben Pfaff Dec. 7, 2015, 11:49 p.m. UTC | #1
On Mon, Dec 07, 2015 at 01:00:46PM -0800, Daniele Di Proietto 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>

This looks really nice.

I think that "userspace" also includes the NetBSD and FreeBSD ports, so
it might be nice to mention that.

I didn't read the entries in detail.  It might be nice to let people
take a day or so to verify that they think the entries are correct.

Acked-by: Ben Pfaff <blp@ovn.org>
Daniele Di Proietto Dec. 8, 2015, 2:19 a.m. UTC | #2
On 07/12/2015 15:49, "Ben Pfaff" <blp@ovn.org> wrote:

>On Mon, Dec 07, 2015 at 01:00:46PM -0800, Daniele Di Proietto 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>
>
>This looks really nice.
>
>I think that "userspace" also includes the NetBSD and FreeBSD ports, so
>it might be nice to mention that.

Good point, I'll mention that.

>I didn't read the entries in detail.  It might be nice to let people
>take a day or so to verify that they think the entries are correct.

Sure, I'll wait for more feedback.

>Acked-by: Ben Pfaff <blp@ovn.org>

Thanks for the review!
Mark D. Gray Dec. 8, 2015, 9:01 a.m. UTC | #3
Good initiative Daniele. Comment below.

> -----Original Message-----

> From: dev [mailto:dev-bounces@openvswitch.org] On Behalf Of Daniele Di

> Proietto

> Sent: Monday, December 7, 2015 9:01 PM

> To: dev@openvswitch.org

> Subject: [ovs-dev] [PATCH] FAQ: Add entry about different datapaths

> features.

> 

> 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>

> ---

>  FAQ.md | 64

> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

> ++++++

>  1 file changed, 64 insertions(+)

> 

> diff --git a/FAQ.md b/FAQ.md

> index 8397e0f..aaf2026 100644

> --- a/FAQ.md

> +++ b/FAQ.md

> @@ -188,6 +188,70 @@ A: Features are gradually introduced into the

> upstream kernel so unless

>  |    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 the upstream Linux kernel.  The numbers here refer

> +                       to the minimum Linux version that has an openvswitch

> +                       module supporting a feature.

> +

> +   * *Linux OVS tree*: The datapath implemented by the Linux kernel

> module

> +                       distributed with the OVS source tree. The numbers here

> +                       refer to the minimum Linux kernel version against which

> +                       the module can be compiled to support a feature.

> +

> +   * *Userspace*: Also known as DPDK, dpif-netdev or dummy datapath.

> +

> +   * *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                   |      YES       |       YES      |    NO     |   NO    |


 [Gray, Mark D] 
QoS is such a loaded term. It may be good to expand on this a bit.

> +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:

> 

>         configure: error: Linux kernel in <dir> is version <x>, but

> --

> 2.1.4

> 

> _______________________________________________

> dev mailing list

> dev@openvswitch.org

> http://openvswitch.org/mailman/listinfo/dev
Nithin Raju Dec. 8, 2015, 4:51 p.m. UTC | #4
Thanks for putting this together. Like we discussed offline, a lot of the
hyper-v values are subject to change in the near future, but the matrix
represents that state of the Hyper-V datapath as of today.


Acked-by: Nithin Raju <nithin@vmware.com>

-----Original Message-----
From: Daniele Di Proietto <diproiettod@vmware.com>
Date: Monday, December 7, 2015 at 1:00 PM
To: "dev@openvswitch.org" <dev@openvswitch.org>
Cc: Daniele Di Proietto <diproiettod@vmware.com>, Nithin Raju
<nithin@vmware.com>
Subject: [PATCH] FAQ: Add entry about different datapaths features.

>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>
>---
> FAQ.md | 64 
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 64 insertions(+)
>
>diff --git a/FAQ.md b/FAQ.md
>index 8397e0f..aaf2026 100644
>--- a/FAQ.md
>+++ b/FAQ.md
>@@ -188,6 +188,70 @@ A: Features are gradually introduced into the
>upstream kernel so unless
> |    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 the upstream Linux kernel.  The numbers here
>refer
>+                       to the minimum Linux version that has an
>openvswitch
>+                       module supporting a feature.
>+
>+   * *Linux OVS tree*: The datapath implemented by the Linux kernel
>module
>+                       distributed with the OVS source tree. The numbers
>here
>+                       refer to the minimum Linux kernel version against
>which
>+                       the module can be compiled to support a feature.
>+
>+   * *Userspace*: Also known as DPDK, dpif-netdev or dummy datapath.
>+
>+   * *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                   |      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:
> 
>        configure: error: Linux kernel in <dir> is version <x>, but
>-- 
>2.1.4
>
Justin Pettit Dec. 8, 2015, 5:02 p.m. UTC | #5
> On Dec 8, 2015, at 1:01 AM, Gray, Mark D <mark.d.gray@intel.com> wrote:
> 
>> +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                   |      YES       |       YES      |    NO     |   NO    |
> 
> [Gray, Mark D] 
> QoS is such a loaded term. It may be good to expand on this a bit.

What about breaking it into "Traffic Policing" and "Traffic Shaping"?  Those are the two dimensions we usually focus on.

--Justin
Justin Pettit Dec. 8, 2015, 5:04 p.m. UTC | #6
> On Dec 8, 2015, at 8:51 AM, Nithin Raju <nithin@vmware.com> wrote:
> 
> Thanks for putting this together. Like we discussed offline, a lot of the
> hyper-v values are subject to change in the near future, but the matrix
> represents that state of the Hyper-V datapath as of today.

That's great to hear.  When a feature is added, we should include an update of the matrix as part of the commit.

--Justin
Joe Stringer Dec. 8, 2015, 6:11 p.m. UTC | #7
On 7 December 2015 at 13:00, 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>
>

Thanks for doing this!

This seems to supersede the question immediately before it in the FAQ.
Perhaps we should drop the previous question, or consider rolling some of
the previous wording into the first question here if it's useful.
Mark D. Gray Dec. 9, 2015, 10:45 a.m. UTC | #8
> From: Justin Pettit [mailto:jpettit@ovn.org]
> Sent: Tuesday, December 8, 2015 5:03 PM
> 
> > On Dec 8, 2015, at 1:01 AM, Gray, Mark D <mark.d.gray@intel.com> wrote:
> >
> >> +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                   |      YES       |       YES      |    NO     |   NO    |
> >
> > [Gray, Mark D]
> > QoS is such a loaded term. It may be good to expand on this a bit.
> 
> What about breaking it into "Traffic Policing" and "Traffic Shaping"?  Those
> are the two dimensions we usually focus on.

That helps. There is also Ingress Policing in the other direction and
the metering work being done by Jarno.

All this might make the table quite complicated though! 

> 
> --Justin
> 
>
Daniele Di Proietto Dec. 11, 2015, 12:03 a.m. UTC | #9
On 09/12/2015 02:45, "Gray, Mark D" <mark.d.gray@intel.com> wrote:

>> From: Justin Pettit [mailto:jpettit@ovn.org]
>> Sent: Tuesday, December 8, 2015 5:03 PM
>> 
>> > On Dec 8, 2015, at 1:01 AM, Gray, Mark D <mark.d.gray@intel.com>
>>wrote:
>> >
>> >> +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                   |      YES       |       YES      |    NO
>>|   NO    |
>> >
>> > [Gray, Mark D]
>> > QoS is such a loaded term. It may be good to expand on this a bit.
>> 
>> What about breaking it into "Traffic Policing" and "Traffic Shaping"?
>>Those
>> are the two dimensions we usually focus on.
>
>That helps. There is also Ingress Policing in the other direction and
>the metering work being done by Jarno.
>
>All this might make the table quite complicated though!

Good point Mark, I've split this into Policing and Shaping for now,
following
Justin's advice.

I didn't include meters because none of the datapaths supports them
currently.
I think we should add a row when the implementation is merged.

> 
>
>> 
>> --Justin
>> 
>> 
>
Daniele Di Proietto Dec. 11, 2015, 12:14 a.m. UTC | #10
On 08/12/2015 10:11, "Joe Stringer" <joe@ovn.org> wrote:

>
>
>On 7 December 2015 at 13:00, 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>
>
>
>
>
>Thanks for doing this!
>
>
>This seems to supersede the question immediately before it in the FAQ.
>Perhaps we should drop the previous question, or consider rolling some of
>the previous wording into the first question here if it's useful.

You're right.  I sent a v2 with the previous FAQ removed and some of
the previous wording included.  If you like it I can push it.

Thanks!
diff mbox

Patch

diff --git a/FAQ.md b/FAQ.md
index 8397e0f..aaf2026 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -188,6 +188,70 @@  A: Features are gradually introduced into the upstream kernel so unless
 |    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 the upstream Linux kernel.  The numbers here refer
+                       to the minimum Linux version that has an openvswitch
+                       module supporting a feature.
+
+   * *Linux OVS tree*: The datapath implemented by the Linux kernel module
+                       distributed with the OVS source tree. The numbers here
+                       refer to the minimum Linux kernel version against which
+                       the module can be compiled to support a feature.
+
+   * *Userspace*: Also known as DPDK, dpif-netdev or dummy datapath.
+
+   * *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                   |      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:
 
        configure: error: Linux kernel in <dir> is version <x>, but