ofproto-dpif: Make OFPP_TABLE always resubmit to table 0.
authorBen Pfaff <blp@nicira.com>
Wed, 18 Jul 2012 17:10:20 +0000 (10:10 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 18 Jul 2012 17:10:20 +0000 (10:10 -0700)
Commit 299016266ed1 (New action NXAST_RESUBMIT_TABLE.) changed OFPP_TABLE
from resubmitting to table 0 to resubmitting to the current table.  This
wasn't mentioned in the change log and I believe it was a typo.  This
commit changes the behavior back.

This isn't a very serious bug because OpenFlow 1.0 says that OFPP_TABLE is
supposed to be used only in packet-out messages, in which case the current
table is 0 anyhow.

OpenFlow 1.3 is explicit:

    The action list of an OFPT_PACKET_OUT message can also specify the
    OFPP_TABLE reserved port as an output action to process the packet
    through the existing flow entries, starting at the first flow table.

Reported-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto/ofproto-dpif.c

index 5265d7bc6e8c005ccf4514013c34a5daec4ac59c..dc15c15bed5ce04eab778c2d7be64a1cb89b405f 100644 (file)
@@ -5158,7 +5158,7 @@ xlate_output_action(struct action_xlate_ctx *ctx,
         compose_output_action(ctx, ctx->flow.in_port);
         break;
     case OFPP_TABLE:
-        xlate_table_action(ctx, ctx->flow.in_port, ctx->table_id);
+        xlate_table_action(ctx, ctx->flow.in_port, 0);
         break;
     case OFPP_NORMAL:
         xlate_normal(ctx);