net/mlx5: fix flow priority for queue action
authorNélio Laranjeiro <nelio.laranjeiro@6wind.com>
Mon, 23 Oct 2017 11:17:55 +0000 (13:17 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 26 Oct 2017 00:33:01 +0000 (02:33 +0200)
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.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
drivers/net/mlx5/mlx5_flow.c

index 2b6380f..440bda9 100644 (file)
@@ -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) {