[dpdk-dev] [dpdk-stable] [PATCH v2 07/13] app/testpmd: fix lack of flow action configuration

Nélio Laranjeiro nelio.laranjeiro at 6wind.com
Thu Apr 5 08:59:32 CEST 2018


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: stable at dpdk.org
> 
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
> Cc: Wenzhuo Lu <wenzhuo.lu at intel.com>
> Cc: Jingjing Wu <jingjing.wu at intel.com>

Acked-by: Nelio Laranjeiro <nelio.laranjeiro at 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


More information about the dev mailing list