net/mlx5: improve Verbs flow priority discovery
authorXueming Li <xuemingl@nvidia.com>
Tue, 19 Oct 2021 10:34:56 +0000 (18:34 +0800)
committerRaslan Darawsheh <rasland@nvidia.com>
Thu, 21 Oct 2021 07:31:09 +0000 (09:31 +0200)
To detect number flow Verbs flow priorities, PMD try to create Verbs
flows in different priority. While Verbs is not designed to support
ports larger than 255.

When DevX supported by kernel driver, 16 Verbs priorities must be
supported, no need to create Verbs flows.

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/mlx5_flow_verbs.c

index 60029f7..3f5aaa8 100644 (file)
@@ -83,6 +83,11 @@ mlx5_flow_discover_priorities(struct rte_eth_dev *dev)
        int i;
        int priority = 0;
 
+#if defined(HAVE_MLX5DV_DR_DEVX_PORT) || defined(HAVE_MLX5DV_DR_DEVX_PORT_V35)
+       /* If DevX supported, driver must support 16 verbs flow priorities. */
+       priority = RTE_DIM(priority_map_5);
+       goto out;
+#endif
        if (!drop->qp) {
                rte_errno = ENOTSUP;
                return -rte_errno;
@@ -109,6 +114,9 @@ mlx5_flow_discover_priorities(struct rte_eth_dev *dev)
                        dev->data->port_id, priority);
                return -rte_errno;
        }
+#if defined(HAVE_MLX5DV_DR_DEVX_PORT) || defined(HAVE_MLX5DV_DR_DEVX_PORT_V35)
+out:
+#endif
        DRV_LOG(INFO, "port %u supported flow priorities:"
                " 0-%d for ingress or egress root table,"
                " 0-%d for non-root table or transfer root table.",