Priority is wrongly configured when the action is queue, using the Ethernet layer priority instead of the most specific layer found.
Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow") Signed-off-by: Nelio Laranjeiro <nelio.laranje...@6wind.com> Acked-by: Yongseok Koh <ys...@mellanox.com> --- drivers/net/mlx5/mlx5_flow.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 2b6380fb9..440bda9a1 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -1172,8 +1172,18 @@ priv_flow_convert(struct priv *priv, * Last step. Complete missing specification to reach the RSS * configuration. */ - if (parser->queues_n > 1) + if (parser->queues_n > 1) { priv_flow_convert_finalise(priv, parser); + } else if (!parser->drop) { + /* + * Action queue have their priority overridden with + * Ethernet priority, this priority needs to be adjusted to + * their most specific layer priority. + */ + parser->queue[HASH_RXQ_ETH].ibv_attr->priority = + attr->priority + + hash_rxq_init[parser->layer].flow_priority; + } exit_free: /* Only verification is expected, all resources should be released. */ if (!parser->create) { -- 2.11.0