SubFunction [1] is a portion of the PCI device, a SF netdev has its own dedicated queues(txq, rxq). A SF shares PCI level resources with other SFs and/or with its parent PCI function. Auxiliary bus is the fundamental of SF.
This patch set introduces SubFunction support for mlx5 PMD driver including class net, regex, vdpa and compress. Depends-on: series-16904 ("bus/auxiliary: introduce auxiliary bus") Version history: RFC: initial version [1] SubFunction in kernel: https://lore.kernel.org/netdev/20201112192424.2742-1-pa...@nvidia.com/ [2] Auxiliary bus: http://patchwork.dpdk.org/project/dpdk/patch/20210510134732.2174-1-xuemi...@nvidia.com/ Thomas Monjalon (5): common/mlx5: move description of PCI sysfs functions vdpa/mlx5: fix driver name vdpa/mlx5: remove PCI specifics common/mlx5: get PCI device address from any bus vdpa/mlx5: support SubFunction Xueming Li (9): common/mlx5: add common device driver net/mlx5: remove PCI dependency net/mlx5: migrate to bus-agnostic common driver regex/mlx5: migrate to common driver compress/mlx5: migrate to common driver common/mlx5: clean up legacy PCI bus driver bus/auxiliary: introduce auxiliary bus common/mlx5: support auxiliary bus net/mlx5: support SubFunction MAINTAINERS | 5 + doc/guides/nics/mlx5.rst | 339 ++++++++++- drivers/bus/auxiliary/auxiliary_common.c | 408 +++++++++++++ drivers/bus/auxiliary/auxiliary_params.c | 58 ++ drivers/bus/auxiliary/linux/auxiliary.c | 147 +++++ drivers/bus/auxiliary/meson.build | 11 + drivers/bus/auxiliary/private.h | 120 ++++ drivers/bus/auxiliary/rte_bus_auxiliary.h | 199 +++++++ drivers/bus/auxiliary/version.map | 10 + drivers/bus/meson.build | 1 + drivers/common/mlx5/linux/meson.build | 3 + .../common/mlx5/linux/mlx5_common_auxiliary.c | 188 ++++++ drivers/common/mlx5/linux/mlx5_common_os.c | 53 +- drivers/common/mlx5/linux/mlx5_common_os.h | 4 - drivers/common/mlx5/linux/mlx5_common_verbs.c | 24 +- drivers/common/mlx5/mlx5_common.c | 340 ++++++++++- drivers/common/mlx5/mlx5_common.h | 176 +++++- drivers/common/mlx5/mlx5_common_pci.c | 554 ++++-------------- drivers/common/mlx5/mlx5_common_pci.h | 77 --- drivers/common/mlx5/mlx5_common_private.h | 50 ++ drivers/common/mlx5/version.map | 14 +- drivers/compress/mlx5/mlx5_compress.c | 71 +-- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 14 +- drivers/net/mlx5/linux/mlx5_os.c | 193 ++++-- drivers/net/mlx5/linux/mlx5_os.h | 5 +- drivers/net/mlx5/mlx5.c | 97 +-- drivers/net/mlx5/mlx5.h | 12 +- drivers/net/mlx5/mlx5_ethdev.c | 2 +- drivers/net/mlx5/mlx5_mr.c | 46 +- drivers/net/mlx5/mlx5_rxmode.c | 8 +- drivers/net/mlx5/mlx5_rxtx.h | 9 +- drivers/net/mlx5/mlx5_trigger.c | 14 +- drivers/net/mlx5/mlx5_txq.c | 2 +- drivers/net/mlx5/windows/mlx5_os.c | 20 +- drivers/regex/mlx5/mlx5_regex.c | 49 +- drivers/regex/mlx5/mlx5_regex.h | 1 - drivers/vdpa/mlx5/mlx5_vdpa.c | 128 ++-- drivers/vdpa/mlx5/mlx5_vdpa.h | 1 - 38 files changed, 2532 insertions(+), 921 deletions(-) create mode 100644 drivers/bus/auxiliary/auxiliary_common.c create mode 100644 drivers/bus/auxiliary/auxiliary_params.c create mode 100644 drivers/bus/auxiliary/linux/auxiliary.c create mode 100644 drivers/bus/auxiliary/meson.build create mode 100644 drivers/bus/auxiliary/private.h create mode 100644 drivers/bus/auxiliary/rte_bus_auxiliary.h create mode 100644 drivers/bus/auxiliary/version.map create mode 100644 drivers/common/mlx5/linux/mlx5_common_auxiliary.c delete mode 100644 drivers/common/mlx5/mlx5_common_pci.h create mode 100644 drivers/common/mlx5/mlx5_common_private.h -- 2.25.1