[ovs-dev] FAQ: Describe why OVS can't prepopulate the kernel flow table.
diff mbox

Message ID 1444752635-17236-1-git-send-email-blp@nicira.com
State Accepted
Headers show

Commit Message

Ben Pfaff Oct. 13, 2015, 4:10 p.m. UTC
Signed-off-by: Ben Pfaff <blp@nicira.com>
---
 FAQ.md | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Jesse Gross Oct. 13, 2015, 4:20 p.m. UTC | #1
On Tuesday, October 13, 2015, Ben Pfaff <blp@nicira.com
<javascript:_e(%7B%7D,'cvml','blp@nicira.com');>> wrote:

> Signed-off-by: Ben Pfaff <blp@nicira.com>
> ---
>  FAQ.md | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
>

Acked-by: Jesse Gross <jesse@nicira.com>

Thanks, this is definitely a good idea.
Ben Pfaff Oct. 13, 2015, 4:26 p.m. UTC | #2
On Tue, Oct 13, 2015 at 09:20:49AM -0700, Jesse Gross wrote:
> On Tuesday, October 13, 2015, Ben Pfaff <blp@nicira.com
> <javascript:_e(%7B%7D,'cvml','blp@nicira.com');>> wrote:
> 
> > Signed-off-by: Ben Pfaff <blp@nicira.com>
> > ---
> >  FAQ.md | 26 ++++++++++++++++++++++++++
> >  1 file changed, 26 insertions(+)
> >
> 
> Acked-by: Jesse Gross <jesse@nicira.com>
> 
> Thanks, this is definitely a good idea.

Thanks Jesse, I applied this to master.

Patch
diff mbox

diff --git a/FAQ.md b/FAQ.md
index 512bd2c..4c259bf 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -564,6 +564,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
 -----------