net/mlx5: fix flow priority on queue action
authorNélio Laranjeiro <nelio.laranjeiro@6wind.com>
Wed, 31 Jan 2018 16:13:54 +0000 (17:13 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 5 Feb 2018 12:42:53 +0000 (13:42 +0100)
A single queue should have the same verbs priority as an RSS one.

Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
drivers/net/mlx5/mlx5_flow.c

index 8984218..e38452e 100644 (file)
@@ -823,7 +823,7 @@ priv_flow_convert_items_validate(struct priv *priv,
                        }
                        parser->inner = IBV_FLOW_SPEC_INNER;
                }
-               if (parser->drop || parser->queues_n == 1) {
+               if (parser->drop) {
                        parser->queue[HASH_RXQ_ETH].offset += cur_item->dst_sz;
                } else {
                        for (n = 0; n != hash_rxq_init_n; ++n)
@@ -1055,7 +1055,7 @@ priv_flow_convert(struct priv *priv,
         * Second step.
         * Allocate the memory space to store verbs specifications.
         */
-       if (parser->drop || parser->queues_n == 1) {
+       if (parser->drop) {
                unsigned int priority =
                        attr->priority +
                        hash_rxq_init[HASH_RXQ_ETH].flow_priority;
@@ -1117,14 +1117,9 @@ priv_flow_convert(struct priv *priv,
         * Last step. Complete missing specification to reach the RSS
         * configuration.
         */
-       if (parser->queues_n > 1) {
+       if (!parser->drop) {
                priv_flow_convert_finalise(priv, parser);
        } else {
-               /*
-                * 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;