Drop queue should also adjust their priority according the most specific
layer in the pattern they are matching to avoid dropping all the traffic.

Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")

Signed-off-by: Nelio Laranjeiro <nelio.laranje...@6wind.com>

---

Changes in v2:

 * Reorder the if, else if, else statement to improve readability
---
 drivers/net/mlx5/mlx5_flow.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 26cf593af..f392f1f65 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1174,9 +1174,17 @@ priv_flow_convert(struct priv *priv,
         * Last step. Complete missing specification to reach the RSS
         * configuration.
         */
-       if (parser->queues_n > 1) {
+       if (parser->drop) {
+               /*
+                * Drop queue priority needs to be adjusted to
+                * their most specific layer priority.
+                */
+               parser->drop_q.ibv_attr->priority =
+                       attr->priority +
+                       hash_rxq_init[parser->layer].flow_priority;
+       } else if (parser->queues_n > 1) {
                priv_flow_convert_finalise(priv, parser);
-       } else if (!parser->drop) {
+       } else {
                /*
                 * Action queue have their priority overridden with
                 * Ethernet priority, this priority needs to be adjusted to
-- 
2.11.0

Reply via email to