Doh, please ignore this version of the patch.  Doesn't pass the unit tests.

Ethan

On Tue, Jul 30, 2013 at 3:31 PM, Ethan Jackson <[email protected]> wrote:
> This optimization makes reference counting rules unnecessarily hard in
> future patches.  I doubt it makes much performance difference, so this
> patch drops it for now.
>
> Signed-off-by: Ethan Jackson <[email protected]>
> ---
>  ofproto/ofproto-dpif-xlate.c |   30 ++----------------------------
>  1 file changed, 2 insertions(+), 28 deletions(-)
>
> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
> index e555603..53569e2 100644
> --- a/ofproto/ofproto-dpif-xlate.c
> +++ b/ofproto/ofproto-dpif-xlate.c
> @@ -1919,7 +1919,6 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t 
> ofpacts_len,
>          ctx->rule->up.evictable = false;
>      }
>
> - do_xlate_actions_again:
>      OFPACT_FOR_EACH (a, ofpacts, ofpacts_len) {
>          struct ofpact_controller *controller;
>          const struct ofpact_metadata *metadata;
> @@ -2120,35 +2119,10 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t 
> ofpacts_len,
>          case OFPACT_GOTO_TABLE: {
>              /* It is assumed that goto-table is the last action. */
>              struct ofpact_goto_table *ogt = ofpact_get_GOTO_TABLE(a);
> -            struct rule_dpif *rule;
>
>              ovs_assert(ctx->table_id < ogt->table_id);
> -
> -            ctx->table_id = ogt->table_id;
> -
> -            /* Look up a flow from the new table. */
> -            rule = rule_dpif_lookup_in_table(ctx->xbridge->ofproto, flow, wc,
> -                                             ctx->table_id);
> -
> -            ctx->xout->tags |= calculate_flow_tag(ctx->xbridge->ofproto,
> -                                                  &ctx->xin->flow,
> -                                                  ctx->table_id, rule);
> -
> -            rule = ctx_rule_hooks(ctx, rule, true);
> -
> -            if (rule) {
> -                if (ctx->rule) {
> -                    ctx->rule->up.evictable = was_evictable;
> -                }
> -                ctx->rule = rule;
> -                was_evictable = rule->up.evictable;
> -                rule->up.evictable = false;
> -
> -                /* Tail recursion removal. */
> -                ofpacts = rule->up.ofpacts;
> -                ofpacts_len = rule->up.ofpacts_len;
> -                goto do_xlate_actions_again;
> -            }
> +            xlate_table_action(ctx, ctx->xin->flow.in_port.ofp_port,
> +                               ogt->table_id, true);
>              break;
>          }
>
> --
> 1.7.9.5
>
X-CudaMail-Whitelist-To: [email protected]
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to