Go to file
Viacheslav Ovsiienko d0cf77e8c2 common/mlx5: use new port query API if available
In order to get E-Switch vport identifiers the mlx5 PMD relies
on two approaches:
  [a] use port query API if it is provided by rdma-core library
  [b] otherwise, deduce vport ids from the related VF index
The latter is not reliable and may not work with newer kernel
drivers and in some configurations (LAG), causing E-Switch
malfunction. Hence, engaging the port query API is highly
desirable.

Depending on rdma-core version the port query API is:
  - very old OFED versions have no query API (approach [b])
  - rdma-core OFED < 5.5 provides mlx5dv_query_devx_port,
    HAVE_MLX5DV_DR_DEVX_PORT flag is defined (approach [a])
  - rdma-core OFED >= 5.5 has mlx5dv_query_port, flag
    HAVE_MLX5DV_DR_DEVX_PORT_V35 is defined (approach [a])
  - future OFED versions might remove mlx5dv_query_devx_port
    and HAVE_MLX5DV_DR_DEVX_PORT will not be defined
  - Upstream rdma-core < v35 has no port query API (approach [b])
  - Upstream rdma-core >= v35 has  mlx5dv_query_port, flag
    HAVE_MLX5DV_DR_DEVX_PORT_V35 is defined (approach [a])

In order to support the new mlx5dv_query_port routine, the
conditional compilation flag HAVE_MLX5DV_DR_DEVX_PORT_V35
is introduced by this patch. The flag HAVE_MLX5DV_DR_DEVX_PORT
is kept for compatibility with previous rdma-core versions.

Despite this patch is not a bugfix (it follows the introduced API
variation in underlying library), it resolves the compatibility
issue and is highly desired to be ported to DPDK LTS.

Cc: stable@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
2021-07-08 22:09:37 +02:00
.ci build: update minimum required Meson version 2021-04-16 18:51:51 +02:00
.github/workflows eal: handle compressed firmware 2021-07-07 16:41:53 +02:00
app test/crypto: use formal array size macro 2021-07-07 21:28:39 +02:00
buildtools buildtools: allow string constant padding 2021-06-17 18:44:30 +02:00
config eal: handle compressed firmware 2021-07-07 16:41:53 +02:00
devtools net/bnxt: identify duplicate flows 2021-07-08 02:02:01 +02:00
doc net/mlx5: control flow rules with identical pattern 2021-07-08 22:09:35 +02:00
drivers common/mlx5: use new port query API if available 2021-07-08 22:09:37 +02:00
examples examples/l3fwd: remove useless reloads in EM main loop 2021-07-07 11:54:21 +02:00
kernel kni: fix crash on userspace VA for segmented packets 2021-06-24 10:04:25 +02:00
lib power: refactor ACPI and intel_pstate support 2021-07-08 22:32:13 +02:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools raw/cnxk_bphy: add baseband PHY skeleton driver 2021-07-05 23:08:11 +02:00
.editorconfig doc: add Meson coding style to contributors guide 2021-04-21 14:04:09 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add flow API features tables 2021-05-18 19:06:56 +02:00
.travis.yml eal: handle compressed firmware 2021-07-07 16:41:53 +02:00
ABI_VERSION version: 21.08-rc0 2021-05-21 20:07:04 +02:00
MAINTAINERS crypto/cnxk: add driver skeleton 2021-07-07 21:15:08 +02:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt lib: allow disabling optional libraries 2021-04-21 14:17:29 +02:00
meson.build lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 21.08-rc0 2021-05-21 20:07:04 +02:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org