DESIGN: Document multiple table support.
authorBen Pfaff <blp@nicira.com>
Thu, 29 Sep 2011 18:34:03 +0000 (11:34 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 24 Oct 2011 16:17:44 +0000 (09:17 -0700)
Suggested-by: Justin Pettit <jpettit@nicira.com>
Suggested-by: Michael Mao <mmao@nicira.com>
DESIGN

diff --git a/DESIGN b/DESIGN
index 2e3fced8067e681bf6f87877694d6c48ee3c3043..886994b0ae1e72c31f4b9abf3e820545c1a2a308 100644 (file)
--- a/DESIGN
+++ b/DESIGN
@@ -10,6 +10,28 @@ information that can be used to let us know how we can make Open vSwitch
 more generally useful.
 
 
+Multiple Table Support
+======================
+
+OpenFlow 1.0 has only rudimentary support for multiple flow tables.
+Notably, OpenFlow 1.0 does not allow the controller to specify the
+flow table to which a flow is to be added.  Open vSwitch adds an
+extension for this purpose, which is enabled on a per-OpenFlow
+connection basis using the NXT_FLOW_MOD_TABLE_ID message.  When the
+extension is enabled, the upper 8 bits of the 'command' member in an
+OFPT_FLOW_MOD or NXT_FLOW_MOD message designates the table to which a
+flow is to be added.
+
+The Open vSwitch software switch implementation offers 255 flow
+tables.  On packet ingress, only the first flow table (table 0) is
+searched, and the contents of the remaining tables are not considered
+in any way.  Tables other than table 0 only come into play when an
+NXAST_RESUBMIT_TABLE action specifies another table to search.
+
+Tables 128 and above are reserved for use by the switch itself.
+Controllers should use only tables 0 through 127.
+
+
 IPv6
 ====