diff mbox

[ovs-dev,06/14] actions: Factor out new helper function add_prerequisite().

Message ID 1449623297-31060-7-git-send-email-blp@ovn.org
State Accepted
Headers show

Commit Message

Ben Pfaff Dec. 9, 2015, 1:08 a.m. UTC
This will acquire new users in upcoming commits.

Signed-off-by: Ben Pfaff <blp@ovn.org>
---
 ovn/lib/actions.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

Comments

Justin Pettit Dec. 11, 2015, 1:13 a.m. UTC | #1
Acked-by: Justin Pettit <jpettit@ovn.org>

--Justin


> On Dec 8, 2015, at 5:08 PM, Ben Pfaff <blp@ovn.org> wrote:
> 
> This will acquire new users in upcoming commits.
> 
> Signed-off-by: Ben Pfaff <blp@ovn.org>
> ---
> ovn/lib/actions.c | 24 +++++++++++++++---------
> 1 file changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/ovn/lib/actions.c b/ovn/lib/actions.c
> index 693b1c1..581dbae 100644
> --- a/ovn/lib/actions.c
> +++ b/ovn/lib/actions.c
> @@ -183,6 +183,19 @@ parse_next_action(struct action_context *ctx)
>     }
> }
> 
> +/* Parses 'prerequisite' as an expression in the context of 'ctx', then adds it
> + * as a conjunction with the existing 'ctx->prereqs'. */
> +static void
> +add_prerequisite(struct action_context *ctx, const char *prerequisite)
> +{
> +    struct expr *expr;
> +    char *error;
> +
> +    expr = expr_parse_string(prerequisite, ctx->symtab, &error);
> +    ovs_assert(!error);
> +    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
> +}
> +
> static void
> emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
> {
> @@ -209,12 +222,7 @@ emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
>     ct->alg = 0;
> 
>     /* CT only works with IP, so set up a prerequisite. */
> -    struct expr *expr;
> -    char *error;
> -
> -    expr = expr_parse_string("ip", ctx->symtab, &error);
> -    ovs_assert(!error);
> -    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
> +    add_prerequisite(ctx, "ip");
> }
> 
> static void
> @@ -249,9 +257,7 @@ parse_actions(struct action_context *ctx)
>             emit_resubmit(ctx, ctx->output_ptable);
>         } else if (lexer_match_id(ctx->lexer, "ip.ttl")) {
>             if (lexer_match(ctx->lexer, LEX_T_DECREMENT)) {
> -                struct expr *e = expr_parse_string("ip", ctx->symtab,
> -                                                   &ctx->error);
> -                ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, e);
> +                add_prerequisite(ctx, "ip");
>                 ofpact_put_DEC_TTL(ctx->ofpacts);
>             } else {
>                 action_syntax_error(ctx, "expecting `--'");
> -- 
> 2.1.3
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
Ben Pfaff Dec. 16, 2015, 12:29 p.m. UTC | #2
Thanks, applied to master.

On Thu, Dec 10, 2015 at 05:13:58PM -0800, Justin Pettit wrote:
> Acked-by: Justin Pettit <jpettit@ovn.org>
> 
> --Justin
> 
> 
> > On Dec 8, 2015, at 5:08 PM, Ben Pfaff <blp@ovn.org> wrote:
> > 
> > This will acquire new users in upcoming commits.
> > 
> > Signed-off-by: Ben Pfaff <blp@ovn.org>
> > ---
> > ovn/lib/actions.c | 24 +++++++++++++++---------
> > 1 file changed, 15 insertions(+), 9 deletions(-)
> > 
> > diff --git a/ovn/lib/actions.c b/ovn/lib/actions.c
> > index 693b1c1..581dbae 100644
> > --- a/ovn/lib/actions.c
> > +++ b/ovn/lib/actions.c
> > @@ -183,6 +183,19 @@ parse_next_action(struct action_context *ctx)
> >     }
> > }
> > 
> > +/* Parses 'prerequisite' as an expression in the context of 'ctx', then adds it
> > + * as a conjunction with the existing 'ctx->prereqs'. */
> > +static void
> > +add_prerequisite(struct action_context *ctx, const char *prerequisite)
> > +{
> > +    struct expr *expr;
> > +    char *error;
> > +
> > +    expr = expr_parse_string(prerequisite, ctx->symtab, &error);
> > +    ovs_assert(!error);
> > +    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
> > +}
> > +
> > static void
> > emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
> > {
> > @@ -209,12 +222,7 @@ emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
> >     ct->alg = 0;
> > 
> >     /* CT only works with IP, so set up a prerequisite. */
> > -    struct expr *expr;
> > -    char *error;
> > -
> > -    expr = expr_parse_string("ip", ctx->symtab, &error);
> > -    ovs_assert(!error);
> > -    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
> > +    add_prerequisite(ctx, "ip");
> > }
> > 
> > static void
> > @@ -249,9 +257,7 @@ parse_actions(struct action_context *ctx)
> >             emit_resubmit(ctx, ctx->output_ptable);
> >         } else if (lexer_match_id(ctx->lexer, "ip.ttl")) {
> >             if (lexer_match(ctx->lexer, LEX_T_DECREMENT)) {
> > -                struct expr *e = expr_parse_string("ip", ctx->symtab,
> > -                                                   &ctx->error);
> > -                ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, e);
> > +                add_prerequisite(ctx, "ip");
> >                 ofpact_put_DEC_TTL(ctx->ofpacts);
> >             } else {
> >                 action_syntax_error(ctx, "expecting `--'");
> > -- 
> > 2.1.3
> > 
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
>
Ben Pfaff Dec. 16, 2015, 12:29 p.m. UTC | #3
Thanks, applied to master.

On Thu, Dec 10, 2015 at 05:13:58PM -0800, Justin Pettit wrote:
> Acked-by: Justin Pettit <jpettit@ovn.org>
> 
> --Justin
> 
> 
> > On Dec 8, 2015, at 5:08 PM, Ben Pfaff <blp@ovn.org> wrote:
> > 
> > This will acquire new users in upcoming commits.
> > 
> > Signed-off-by: Ben Pfaff <blp@ovn.org>
> > ---
> > ovn/lib/actions.c | 24 +++++++++++++++---------
> > 1 file changed, 15 insertions(+), 9 deletions(-)
> > 
> > diff --git a/ovn/lib/actions.c b/ovn/lib/actions.c
> > index 693b1c1..581dbae 100644
> > --- a/ovn/lib/actions.c
> > +++ b/ovn/lib/actions.c
> > @@ -183,6 +183,19 @@ parse_next_action(struct action_context *ctx)
> >     }
> > }
> > 
> > +/* Parses 'prerequisite' as an expression in the context of 'ctx', then adds it
> > + * as a conjunction with the existing 'ctx->prereqs'. */
> > +static void
> > +add_prerequisite(struct action_context *ctx, const char *prerequisite)
> > +{
> > +    struct expr *expr;
> > +    char *error;
> > +
> > +    expr = expr_parse_string(prerequisite, ctx->symtab, &error);
> > +    ovs_assert(!error);
> > +    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
> > +}
> > +
> > static void
> > emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
> > {
> > @@ -209,12 +222,7 @@ emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
> >     ct->alg = 0;
> > 
> >     /* CT only works with IP, so set up a prerequisite. */
> > -    struct expr *expr;
> > -    char *error;
> > -
> > -    expr = expr_parse_string("ip", ctx->symtab, &error);
> > -    ovs_assert(!error);
> > -    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
> > +    add_prerequisite(ctx, "ip");
> > }
> > 
> > static void
> > @@ -249,9 +257,7 @@ parse_actions(struct action_context *ctx)
> >             emit_resubmit(ctx, ctx->output_ptable);
> >         } else if (lexer_match_id(ctx->lexer, "ip.ttl")) {
> >             if (lexer_match(ctx->lexer, LEX_T_DECREMENT)) {
> > -                struct expr *e = expr_parse_string("ip", ctx->symtab,
> > -                                                   &ctx->error);
> > -                ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, e);
> > +                add_prerequisite(ctx, "ip");
> >                 ofpact_put_DEC_TTL(ctx->ofpacts);
> >             } else {
> >                 action_syntax_error(ctx, "expecting `--'");
> > -- 
> > 2.1.3
> > 
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
>
diff mbox

Patch

diff --git a/ovn/lib/actions.c b/ovn/lib/actions.c
index 693b1c1..581dbae 100644
--- a/ovn/lib/actions.c
+++ b/ovn/lib/actions.c
@@ -183,6 +183,19 @@  parse_next_action(struct action_context *ctx)
     }
 }
 
+/* Parses 'prerequisite' as an expression in the context of 'ctx', then adds it
+ * as a conjunction with the existing 'ctx->prereqs'. */
+static void
+add_prerequisite(struct action_context *ctx, const char *prerequisite)
+{
+    struct expr *expr;
+    char *error;
+
+    expr = expr_parse_string(prerequisite, ctx->symtab, &error);
+    ovs_assert(!error);
+    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
+}
+
 static void
 emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
 {
@@ -209,12 +222,7 @@  emit_ct(struct action_context *ctx, bool recirc_next, bool commit)
     ct->alg = 0;
 
     /* CT only works with IP, so set up a prerequisite. */
-    struct expr *expr;
-    char *error;
-
-    expr = expr_parse_string("ip", ctx->symtab, &error);
-    ovs_assert(!error);
-    ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, expr);
+    add_prerequisite(ctx, "ip");
 }
 
 static void
@@ -249,9 +257,7 @@  parse_actions(struct action_context *ctx)
             emit_resubmit(ctx, ctx->output_ptable);
         } else if (lexer_match_id(ctx->lexer, "ip.ttl")) {
             if (lexer_match(ctx->lexer, LEX_T_DECREMENT)) {
-                struct expr *e = expr_parse_string("ip", ctx->symtab,
-                                                   &ctx->error);
-                ctx->prereqs = expr_combine(EXPR_T_AND, ctx->prereqs, e);
+                add_prerequisite(ctx, "ip");
                 ofpact_put_DEC_TTL(ctx->ofpacts);
             } else {
                 action_syntax_error(ctx, "expecting `--'");