[dpdk-dev] [PATCH v5 02/11] net/mlx4: fix ignored RSS hash types

Nélio Laranjeiro nelio.laranjeiro at 6wind.com
Tue Apr 17 11:20:15 CEST 2018


On Mon, Apr 16, 2018 at 06:21:50PM +0200, Adrien Mazarguil wrote:
> When an unsupported hash type is part of a RSS configuration structure, it
> is silently ignored instead of triggering an error. This may lead
> applications to assume that such types are accepted, while they are in fact
> not part of the resulting flow rules.
> 
> Fixes: 078b8b452e6b ("net/mlx4: add RSS flow rule action support")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
> Cc: Shahaf Shuler <shahafs at mellanox.com>

Acked-by: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>

> ---
>  drivers/net/mlx4/mlx4_flow.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c
> index 2b4bf7094..67fd568bc 100644
> --- a/drivers/net/mlx4/mlx4_flow.c
> +++ b/drivers/net/mlx4/mlx4_flow.c
> @@ -706,6 +706,7 @@ mlx4_flow_prepare(struct priv *priv,
>  			const struct rte_flow_action_queue *queue;
>  			const struct rte_flow_action_rss *rss;
>  			const struct rte_eth_rss_conf *rss_conf;
> +			uint64_t fields;
>  			unsigned int i;
>  
>  		case RTE_FLOW_ACTION_TYPE_VOID:
> @@ -780,10 +781,15 @@ mlx4_flow_prepare(struct priv *priv,
>  					" of the context size";
>  				goto exit_action_not_supported;
>  			}
> +			rte_errno = 0;
> +			fields = mlx4_conv_rss_hf(priv, rss_conf->rss_hf);
> +			if (fields == (uint64_t)-1 && rte_errno) {
> +				msg = "unsupported RSS hash type requested";
> +				goto exit_action_not_supported;
> +			}
>  			flow->rss = mlx4_rss_get
> -				(priv,
> -				 mlx4_conv_rss_hf(priv, rss_conf->rss_hf),
> -				 rss_conf->rss_key, rss->num, rss->queue);
> +				(priv, fields, rss_conf->rss_key, rss->num,
> +				 rss->queue);
>  			if (!flow->rss) {
>  				msg = "either invalid parameters or not enough"
>  					" resources for additional multi-queue"
> -- 
> 2.11.0

-- 
Nélio Laranjeiro
6WIND


More information about the dev mailing list