ofproto: Add Nicira extension to OpenFlow multiple flow tables support.
authorBen Pfaff <blp@nicira.com>
Thu, 22 Jul 2010 18:28:42 +0000 (11:28 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 22 Jul 2010 18:38:57 +0000 (11:38 -0700)
commitfa8c8a7c975c91edae26a561365a3bf1b31e6d67
treed3d2a4eca14313cc20033fd70ee97b9b2ddc7e8a
parent4488d4ddb0458c188e6172b5d75736c0fb952e45
ofproto: Add Nicira extension to OpenFlow multiple flow tables support.

Some switching hardware has multiple flow tables with varying capabilities.
For example, one flow table may be able to match only on L2 fields and
another only on L3 fields, and the tables may support different sets of
actions.  Tables may also have overlapping capabilities.  Until now, there
has been no way for OpenFlow controllers to specify a particular table to
put a flow into, which is necessary in the case of overlapping
capabilities.  OpenFlow 1.1 will standardize a set of features to handle
this, but for use until then this commit adds a Nicira extension with
simple support for explicitly manipulating specific tables.

In short, this commit uses the upper 8 bits of the 'command' field in
ofp_flow_mod to specify a table.  The details are described in
include/openflow/nicira-ext.h.

I've confirmed that this doesn't break anything in my simple test cases
when the extension is not used.  I haven't yet tested the extension itself.
include/openflow/nicira-ext.h
include/openflow/openflow.h
lib/ofp-print.c
ofproto/ofproto.c
ofproto/wdp-provider.h
ofproto/wdp-xflow.c
ofproto/wdp.c
ofproto/wdp.h