Looks pretty good overall, one query---are they meant to be complete, or only the changes?
It seems that the OF1.2 matrix does not have "match on table_id" and "controller chooses table_id" rows. On Sat, Jun 29, 2013 at 8:27 AM, Ben Pfaff <b...@nicira.com> wrote: > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > DESIGN | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- > 1 files changed, 116 insertions(+), 4 deletions(-) > > diff --git a/DESIGN b/DESIGN > index f3e9309..5dd6b89 100644 > --- a/DESIGN > +++ b/DESIGN > @@ -84,8 +84,8 @@ OFPP_LOCAL as a physical port and support OFPAT_ENQUEUE on > it as well. > OFPT_FLOW_MOD > ============= > > -The OpenFlow 1.0 specification for the behavior of OFPT_FLOW_MOD is > -confusing. The following table summarizes the Open vSwitch > +The OpenFlow specification for the behavior of OFPT_FLOW_MOD is > +confusing. The following tables summarize the Open vSwitch > implementation of its behavior in the following categories: > > - "match on priority": Whether the flow_mod acts only on flows > @@ -93,7 +93,12 @@ implementation of its behavior in the following categories: > > - "match on out_port": Whether the flow_mod acts only on flows > that output to the out_port included in the flow_mod message (if > - out_port is not OFPP_NONE). > + out_port is not OFPP_NONE). OpenFlow 1.1 and later have a > + similar feature (not listed separately here) for out_group. > + > + - "match on flow_cookie": Whether the flow_mod acts only on flows > + whose flow_cookie matches an optional controller-specified value > + and mask. > > - "updates flow_cookie": Whether the flow_mod changes the > flow_cookie of the flow or flows that it matches to the > @@ -120,6 +125,11 @@ implementation of its behavior in the following > categories: > - "zeros counters": Whether the flow_mod resets per-flow packet > and byte counters to zero. > > + - "may add a new flow": Whether the flow_mod may add a new flow to > + the flow table. (Obviously this is always true for "add" > + commands but in some OpenFlow versions "modify" and > + "modify-strict" can also add new flows.) > + > - "sends flow_removed message": Whether the flow_mod generates a > flow_removed message for the flow or flows that it affects. > > @@ -128,11 +138,17 @@ indicated behavior, "---" means that it does not, an > empty cell means > that the property is not applicable, and other values are explained > below the table. > > +OpenFlow 1.0 > +------------ > + > MODIFY DELETE > ADD MODIFY STRICT DELETE STRICT > === ====== ====== ====== ====== > -match on priority --- --- yes --- yes > +match on priority yes --- yes --- yes > match on out_port --- --- --- yes yes > +match on flow_cookie --- --- --- --- --- > +match on table_id --- --- --- --- --- > +controller chooses table_id --- --- --- > updates flow_cookie yes yes yes > updates OFPFF_SEND_FLOW_REM yes + + > honors OFPFF_CHECK_OVERLAP yes + + > @@ -141,6 +157,48 @@ updates hard_timeout yes + + > resets idle timer yes + + > resets hard timer yes yes yes > zeros counters yes + + > +may add a new flow yes yes yes > +sends flow_removed message --- --- --- % % > + > +(+) "modify" and "modify-strict" only take these actions when they > + create a new flow, not when they update an existing flow. > + > +(%) "delete" and "delete_strict" generates a flow_removed message if > + the deleted flow or flows have the OFPFF_SEND_FLOW_REM flag set. > + (Each controller can separately control whether it wants to > + receive the generated messages.) > + > +OpenFlow 1.1 > +------------ > + > +OpenFlow 1.1 makes these changes: > + > + - The controller now must specify the table_id of the flow match > + searched and into which a flow may be inserted. Behavior for a > + table_id of 255 is undefined. > + > + - A flow_mod, except an "add", can now match on the flow_cookie. > + > + - When a flow_mod matches on the flow_cookie, "modify" and > + "modify-strict" never insert a new flow. > + > + MODIFY DELETE > + ADD MODIFY STRICT DELETE STRICT > + === ====== ====== ====== ====== > +match on priority yes --- yes --- yes > +match on out_port --- --- --- yes yes > +match on flow_cookie --- yes yes yes yes > +match on table_id yes yes yes yes yes > +controller chooses table_id yes yes yes > +updates flow_cookie yes --- --- > +updates OFPFF_SEND_FLOW_REM yes + + > +honors OFPFF_CHECK_OVERLAP yes + + > +updates idle_timeout yes + + > +updates hard_timeout yes + + > +resets idle timer yes + + > +resets hard timer yes yes yes > +zeros counters yes + + > +may add a new flow yes # # > sends flow_removed message --- --- --- % % > > (+) "modify" and "modify-strict" only take these actions when they > @@ -151,6 +209,60 @@ sends flow_removed message --- --- --- % > % > (Each controller can separately control whether it wants to > receive the generated messages.) > > +(#) "modify" and "modify-strict" only add a new flow if the flow_mod > + does not match on any bits of the flow cookie > + > +OpenFlow 1.2 > +------------ > + > +OpenFlow 1.2 makes these changes: > + > + - Only "add" commands ever add flows, "modify" and "modify-strict" > + never do. > + > + - A new flag OFPFF_RESET_COUNTS now controls whether "modify" and > + "modify-strict" reset counters, whereas previously they never > + reset counters (except when they inserted a new flow). > + > + MODIFY DELETE > + ADD MODIFY STRICT DELETE STRICT > + === ====== ====== ====== ====== > +match on priority yes --- yes --- yes > +match on out_port --- --- --- yes yes > +match on flow_cookie --- yes yes yes yes > +updates flow_cookie yes --- --- > +updates OFPFF_SEND_FLOW_REM yes --- --- > +honors OFPFF_CHECK_OVERLAP yes --- --- > +updates idle_timeout yes --- --- > +updates hard_timeout yes --- --- > +resets idle timer yes --- --- > +resets hard timer yes yes yes > +zeros counters yes & & > +may add a new flow yes --- --- > +sends flow_removed message --- --- --- % % > + > +(%) "delete" and "delete_strict" generates a flow_removed message if > + the deleted flow or flows have the OFPFF_SEND_FLOW_REM flag set. > + (Each controller can separately control whether it wants to > + receive the generated messages.) > + > +(&) "modify" and "modify-strict" reset counters if the > + OFPFF_RESET_COUNTS flag is specified. > + > +OpenFlow 1.3 > +------------ > + > +OpenFlow 1.3 makes these changes: > + > + - Behavior for a table_id of 255 is now defined, for "delete" and > + "delete-strict" commands, as meaning to delete from all tables. > + A table_id of 255 is now explicitly invalid for other commands. > + > + - New flags OFPFF_NO_PKT_COUNTS and OFPFF_NO_BYT_COUNTS for "add" > + operations. > + > +The table for 1.3 is the same as the one shown above for 1.2. > + > > VLAN Matching > ============= > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev