ofp-actions: Support "resubmit" actions in action sets.
authorSrini Seetharaman <srini.seetharaman@gmail.com>
Sun, 31 Aug 2014 07:24:46 +0000 (00:24 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 2 Sep 2014 16:04:43 +0000 (09:04 -0700)
Fixing issue where "resubmit" action in a group action set was not
considered sufficient to retain the full action set. This patch allows
a group action set (considered terminal with OF1.4 and earlier spec)
to have the "output" action come from a different table.

Signed-off-by: Srini Seetharaman <srini.seetharaman@gmail.com>
[blp@nicira.com added documentation]
Signed-off-by: Ben Pfaff <blp@nicira.com>
NEWS
lib/ofp-actions.c
utilities/ovs-ofctl.8.in

diff --git a/NEWS b/NEWS
index b245359..ef7d455 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,9 @@ Post-v2.3.0
      * OpenFlow 1.5 (draft) Copy-Field action is now supported.
      * OpenFlow 1.3+ table features requests are now supported (read-only).
      * Nicira extension "move" actions may now be included in action sets.
+     * "resubmit" actions may now be included in action sets.  The resubmit
+       is executed last, and only if the action set has no "output" or "group"
+       action.
    - ovsdb-server: New OVSDB protocol extension allows inequality tests on
      "optional scalar" columns.  See ovsdb-server(1) for details.
    - test-controller has been renamed ovs-testcontroller at request of users
index 61ee5dc..0a5045a 100644 (file)
@@ -4482,7 +4482,8 @@ ofpacts_execute_action_set(struct ofpbuf *action_list,
      * all the actions because there's no point in modifying a packet that will
      * not be sent anywhere. */
     if (!ofpacts_copy_last(action_list, action_set, OFPACT_GROUP) &&
-        !ofpacts_copy_last(action_list, action_set, OFPACT_OUTPUT)) {
+        !ofpacts_copy_last(action_list, action_set, OFPACT_OUTPUT) &&
+        !ofpacts_copy_last(action_list, action_set, OFPACT_RESUBMIT)) {
         ofpbuf_clear(action_list);
     }
 }
index be82ed9..64171e7 100644 (file)
@@ -1654,11 +1654,14 @@ modifications are applied.
 .IQ
 \fBoutput\fR
 .IQ
-If both actions are present, then \fBgroup\fR is executed and
-\fBoutput\fR is ignored, regardless of the order in which they were
-added to the action set.  (If neither action is present, the action
-set has no real effect, because the modified packet is not sent
-anywhere and thus the modifications are not visible.)
+\fBresubmit\fR
+.IQ
+If more than one of these actions is present, then the one listed
+earliest above is executed and the others are ignored, regardless of
+the order in which they were added to the action set.  (If none of these
+actions is present, the action set has no real effect, because the
+modified packet is not sent anywhere and thus the modifications are
+not visible.)
 .RE
 .IP
 Only the actions listed above may be written to the action set.