Acked-by: Jarno Rajahalme <ja...@ovn.org>

> On Feb 9, 2016, at 10:10 PM, Ben Pfaff <b...@ovn.org> wrote:
> 
> This interface is still straightforward and easier for the client.
> 
> Signed-off-by: Ben Pfaff <b...@ovn.org>
> ---
> ofproto/ofproto-dpif-xlate.c | 21 +++++++--------------
> 1 file changed, 7 insertions(+), 14 deletions(-)
> 
> diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
> index a6ea067..3d7dc08 100644
> --- a/ofproto/ofproto-dpif-xlate.c
> +++ b/ofproto/ofproto-dpif-xlate.c
> @@ -4163,16 +4163,14 @@ recirc_put_unroll_xlate(struct xlate_ctx *ctx)
> }
> 
> 
> -/* Copy remaining actions to the action_set to be executed after 
> recirculation.
> - * UNROLL_XLATE action is inserted, if not already done so, before actions 
> that
> - * may depend on the current table ID or flow cookie. */
> +/* Copy actions 'a' through 'end' to the action_set to be executed after
> + * recirculation.  UNROLL_XLATE action is inserted, if not already done so,
> + * before actions that may depend on the current table ID or flow cookie. */
> static void
> -recirc_unroll_actions(const struct ofpact *ofpacts, size_t ofpacts_len,
> +recirc_unroll_actions(const struct ofpact *a, const struct ofpact *end,
>                       struct xlate_ctx *ctx)
> {
> -    const struct ofpact *a;
> -
> -    OFPACT_FOR_EACH (a, ofpacts, ofpacts_len) {
> +    for (; a < end; a = ofpact_next(a)) {
>         switch (a->type) {
>         case OFPACT_OUTPUT_REG:
>         case OFPACT_GROUP:
> @@ -4439,9 +4437,7 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t 
> ofpacts_len,
>             /* Check if need to store the remaining actions for later
>              * execution. */
>             if (exit_recirculates(ctx)) {
> -                recirc_unroll_actions(a, OFPACT_ALIGN(ofpacts_len -
> -                                                      ((uint8_t *)a -
> -                                                       (uint8_t *)ofpacts)),
> +                recirc_unroll_actions(a, ofpact_end(ofpacts, ofpacts_len),
>                                       ctx);
>             }
>             break;
> @@ -4817,10 +4813,7 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t 
> ofpacts_len,
>         /* Check if need to store this and the remaining actions for later
>          * execution. */
>         if (!ctx->error && ctx->exit && ctx_first_recirculation_action(ctx)) {
> -            recirc_unroll_actions(a, OFPACT_ALIGN(ofpacts_len -
> -                                                  ((uint8_t *)a -
> -                                                   (uint8_t *)ofpacts)),
> -                                  ctx);
> +            recirc_unroll_actions(a, ofpact_end(ofpacts, ofpacts_len), ctx);
>             break;
>         }
>     }
> -- 
> 2.1.3
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to