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

Reply via email to