On Wed, Apr 04, 2018 at 04:57:58PM +0200, Adrien Mazarguil wrote: > Configuration structure is not optional with flow rule actions that expect > one; this pointer is not supposed to be NULL and PMDs should not have to > verify it. > > Like pattern item spec/last/mask fields, it is currently set when at least > one configuration parameter is provided on the command line. This patch > sets it as soon as an action is created instead. > > Fixes: 7a91969ad35e ("app/testpmd: add various actions to flow command") > Cc: sta...@dpdk.org > > Signed-off-by: Adrien Mazarguil <adrien.mazarg...@6wind.com> > Cc: Wenzhuo Lu <wenzhuo...@intel.com> > Cc: Jingjing Wu <jingjing...@intel.com>
Acked-by: Nelio Laranjeiro <nelio.laranje...@6wind.com> > --- > app/test-pmd/cmdline_flow.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c > index 9cac8e9bf..c2cf415ef 100644 > --- a/app/test-pmd/cmdline_flow.c > +++ b/app/test-pmd/cmdline_flow.c > @@ -1909,6 +1909,7 @@ parse_vc(struct context *ctx, const struct token *token, > return -1; > *action = (struct rte_flow_action){ > .type = priv->type, > + .conf = data_size ? data : NULL, > }; > ++out->args.vc.actions_n; > ctx->object = action; > @@ -1989,7 +1990,6 @@ parse_vc_conf(struct context *ctx, const struct token > *token, > void *buf, unsigned int size) > { > struct buffer *out = buf; > - struct rte_flow_action *action; > > (void)size; > /* Token name must match. */ > @@ -1998,14 +1998,9 @@ parse_vc_conf(struct context *ctx, const struct token > *token, > /* Nothing else to do if there is no buffer. */ > if (!out) > return len; > - if (!out->args.vc.actions_n) > - return -1; > - action = &out->args.vc.actions[out->args.vc.actions_n - 1]; > /* Point to selected object. */ > ctx->object = out->args.vc.data; > ctx->objmask = NULL; > - /* Update configuration pointer. */ > - action->conf = ctx->object; > return len; > } > > -- > 2.11.0 -- Nélio Laranjeiro 6WIND