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: sta...@dpdk.org > > Signed-off-by: Adrien Mazarguil <adrien.mazarg...@6wind.com> > Cc: Shahaf Shuler <shah...@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranje...@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