Thanks, applied to master.

On Thu, Dec 10, 2015 at 05:16:02PM -0800, Justin Pettit wrote:
> Acked-by: Justin Pettit <jpet...@ovn.org>
> 
> --Justin
> 
> 
> > On Dec 8, 2015, at 5:08 PM, Ben Pfaff <b...@ovn.org> wrote:
> > 
> > This will have another user in an upcoming commit.
> > 
> > Signed-off-by: Ben Pfaff <b...@ovn.org>
> > ---
> > ovn/lib/actions.c | 70 
> > +++++++++++++++++++++++++++++++------------------------
> > 1 file changed, 39 insertions(+), 31 deletions(-)
> > 
> > diff --git a/ovn/lib/actions.c b/ovn/lib/actions.c
> > index 581dbae..6bc452a 100644
> > --- a/ovn/lib/actions.c
> > +++ b/ovn/lib/actions.c
> > @@ -52,6 +52,8 @@ struct action_context {
> >     struct expr *prereqs;       /* Prerequisites to apply to match. */
> > };
> > 
> > +static bool parse_action(struct action_context *);
> > +
> > static bool
> > action_error_handle_common(struct action_context *ctx)
> > {
> > @@ -225,6 +227,42 @@ emit_ct(struct action_context *ctx, bool recirc_next, 
> > bool commit)
> >     add_prerequisite(ctx, "ip");
> > }
> > 
> > +static bool
> > +parse_action(struct action_context *ctx)
> > +{
> > +    if (ctx->lexer->token.type != LEX_T_ID) {
> > +        action_syntax_error(ctx, NULL);
> > +        return false;
> > +    }
> > +
> > +    enum lex_type lookahead = lexer_lookahead(ctx->lexer);
> > +    if (lookahead == LEX_T_EQUALS || lookahead == LEX_T_EXCHANGE
> > +        || lookahead == LEX_T_LSQUARE) {
> > +        parse_set_action(ctx);
> > +    } else if (lexer_match_id(ctx->lexer, "next")) {
> > +        parse_next_action(ctx);
> > +    } else if (lexer_match_id(ctx->lexer, "output")) {
> > +        emit_resubmit(ctx, ctx->output_ptable);
> > +    } else if (lexer_match_id(ctx->lexer, "ip.ttl")) {
> > +        if (lexer_match(ctx->lexer, LEX_T_DECREMENT)) {
> > +            add_prerequisite(ctx, "ip");
> > +            ofpact_put_DEC_TTL(ctx->ofpacts);
> > +        } else {
> > +            action_syntax_error(ctx, "expecting `--'");
> > +        }
> > +    } else if (lexer_match_id(ctx->lexer, "ct_next")) {
> > +        emit_ct(ctx, true, false);
> > +    } else if (lexer_match_id(ctx->lexer, "ct_commit")) {
> > +        emit_ct(ctx, false, true);
> > +    } else {
> > +        action_syntax_error(ctx, "expecting action");
> > +    }
> > +    if (!lexer_match(ctx->lexer, LEX_T_SEMICOLON)) {
> > +        action_syntax_error(ctx, "expecting ';'");
> > +    }
> > +    return !ctx->error;
> > +}
> > +
> > static void
> > parse_actions(struct action_context *ctx)
> > {
> > @@ -242,37 +280,7 @@ parse_actions(struct action_context *ctx)
> >     }
> > 
> >     while (ctx->lexer->token.type != LEX_T_END) {
> > -        if (ctx->lexer->token.type != LEX_T_ID) {
> > -            action_syntax_error(ctx, NULL);
> > -            break;
> > -        }
> > -
> > -        enum lex_type lookahead = lexer_lookahead(ctx->lexer);
> > -        if (lookahead == LEX_T_EQUALS || lookahead == LEX_T_EXCHANGE
> > -            || lookahead == LEX_T_LSQUARE) {
> > -            parse_set_action(ctx);
> > -        } else if (lexer_match_id(ctx->lexer, "next")) {
> > -            parse_next_action(ctx);
> > -        } else if (lexer_match_id(ctx->lexer, "output")) {
> > -            emit_resubmit(ctx, ctx->output_ptable);
> > -        } else if (lexer_match_id(ctx->lexer, "ip.ttl")) {
> > -            if (lexer_match(ctx->lexer, LEX_T_DECREMENT)) {
> > -                add_prerequisite(ctx, "ip");
> > -                ofpact_put_DEC_TTL(ctx->ofpacts);
> > -            } else {
> > -                action_syntax_error(ctx, "expecting `--'");
> > -            }
> > -        } else if (lexer_match_id(ctx->lexer, "ct_next")) {
> > -            emit_ct(ctx, true, false);
> > -        } else if (lexer_match_id(ctx->lexer, "ct_commit")) {
> > -            emit_ct(ctx, false, true);
> > -        } else {
> > -            action_syntax_error(ctx, "expecting action");
> > -        }
> > -        if (!lexer_match(ctx->lexer, LEX_T_SEMICOLON)) {
> > -            action_syntax_error(ctx, "expecting ';'");
> > -        }
> > -        if (ctx->error) {
> > +        if (!parse_action(ctx)) {
> >             return;
> >         }
> >     }
> > -- 
> > 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