X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=FAQ.md;h=8bd7ab9190332934b24f015f39db2c811522b813;hb=1f661ac7b8e8dbf809d987391c0196e396107650;hp=8397e0f8bf37521441afc46c6d4037fb8768e302;hpb=47fe8a1d402a9b60bc645a6be9d03210aa1ad385;p=cascardo%2Fovs.git diff --git a/FAQ.md b/FAQ.md index 8397e0f8b..8bd7ab919 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 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 | YES | +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 | YES | +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: @@ -1935,6 +1979,25 @@ A: When a switch sends a packet to an OpenFlow controller using a buffering that the OpenFlow specification requires implementations to document. +### Q: How does OVS divide flows among buckets in an OpenFlow "select" group? + +A: In Open vSwitch 2.3 and earlier, Open vSwitch used the destination + Ethernet address to choose a bucket in a select group. + + Open vSwitch 2.4 and later by default hashes the source and + destination Ethernet address, VLAN ID, Ethernet type, IPv4/v6 + source and destination address and protocol, and for TCP and SCTP + only, the source and destination ports. The hash is "symmetric", + meaning that exchanging source and destination addresses does not + change the bucket selection. + + Select groups in Open vSwitch 2.4 and later can be configured to + use a different hash function, using a Netronome extension to the + OpenFlow 1.5+ group_mod message. For more information, see + Documentation/group-selection-method-property.txt in the Open + vSwitch source tree. (OpenFlow 1.5 support in Open vSwitch is still + experimental.) + Development -----------