odp-util: Return exact mask if netlink mask attribute is missing.
[cascardo/ovs.git] / FAQ.md
diff --git a/FAQ.md b/FAQ.md
index 7ade627..8397e0f 100644 (file)
--- a/FAQ.md
+++ b/FAQ.md
@@ -156,7 +156,7 @@ A: The following table lists the Linux kernel versions against which the
 |    2.1.x     | 2.6.32 to 3.11
 |    2.3.x     | 2.6.32 to 3.14
 |    2.4.x     | 2.6.32 to 4.0
-|    2.5.x     | 2.6.32 to 4.1
+|    2.5.x     | 2.6.32 to 4.3
 
    Open vSwitch userspace should also work with the Linux kernel module
    built into Linux 3.3 and later.
@@ -165,6 +165,29 @@ 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: I get an error like this when I configure Open vSwitch:
 
        configure: error: Linux kernel in <dir> is version <x>, but
@@ -448,7 +471,7 @@ A: The following commands configure br0 with eth0 and tap0 as trunk
    To later disable mirroring and destroy the GRE tunnel:
 
        ovs-vsctl clear bridge br0 mirrors
-       ovs-vcstl del-port br0 gre0
+       ovs-vsctl del-port br0 gre0
 
 ### Q: Does Open vSwitch support ERSPAN?
 
@@ -564,6 +587,32 @@ A: Open vSwitch has two kinds of flows (see the previous question), so
 
 A: Open vSwitch maintains snooping tables for each VLAN.
 
+### Q: Can OVS populate the kernel flow table in advance instead of in reaction to packets?
+
+A: No.  There are several reasons:
+
+  - Kernel flows are not as sophisticated as OpenFlow flows, which
+    means that some OpenFlow policies could require a large number of
+    kernel flows.  The "conjunctive match" feature is an extreme
+    example: the number of kernel flows it requires is the product of
+    the number of flows in each dimension.
+
+  - With multiple OpenFlow flow tables and simple sets of actions, the
+    number of kernel flows required can be as large as the product of
+    the number of flows in each dimension.  With more sophisticated
+    actions, the number of kernel flows could be even larger.
+
+  - Open vSwitch is designed so that any version of OVS userspace
+    interoperates with any version of the OVS kernel module.  This
+    forward and backward compatibility requires that userspace observe
+    how the kernel module parses received packets.  This is only
+    possible in a straightforward way when userspace adds kernel flows
+    in reaction to received packets.
+
+  For more relevant information on the architecture of Open vSwitch,
+  please read "The Design and Implementation of Open vSwitch",
+  published in USENIX NSDI 2015.
+
 
 Performance
 -----------