SubFunction [1] is a portion of the PCI device, a SF netdev has its own dedicated queues(txq, rxq). A SF netdev supports eswitch representation offload similar to existing PF and VF representors. A SF shares PCI level resources with other SFs and/or with its parent PCI function.
>From SmartNIC perspective, when PCI device is shared for multi-host, representors for host controller and host PF is required. This patch set introduces new representor types in addtion to existing VF representor. Syntax: [[c#]pf#]vf#: VF port representor/s from controller/pf [[c#]pf#]sf#: SF port representor/s from controller/pf #: VF representor - for backwards compatibility "#" is number instance, list or range, valid examples: 1, [1,3,5], [0-3], [0,2-4,6] For flexibility, this patch also introduces new netdev capability to indicate the capability to support new representor types. [1]: https://lore.kernel.org/netdev/20201112192424.2742-1-pa...@nvidia.com/ Xueming Li (7): ethdev: support sub function representor ethdev: support multi-host representor devarg: change reprsentor ID to bitmap ethdev: capability for new representor syntax kvargs: update parser for new representor syntax common/mlx5: update representor name parsing net/mlx5: support representor of sub function 0000-cover-letter.patch | 44 ++++++ config/rte_config.h | 1 + drivers/common/mlx5/linux/mlx5_common_os.c | 32 ++-- drivers/common/mlx5/linux/mlx5_nl.c | 2 + drivers/common/mlx5/mlx5_common.h | 2 + drivers/net/mlx5/linux/mlx5_ethdev_os.c | 5 + drivers/net/mlx5/linux/mlx5_os.c | 69 ++++++++- drivers/net/mlx5/mlx5_ethdev.c | 2 + lib/librte_ethdev/ethdev_private.c | 164 ++++++++++++++------- lib/librte_ethdev/ethdev_private.h | 3 - lib/librte_ethdev/rte_class_eth.c | 7 +- lib/librte_ethdev/rte_ethdev.c | 5 +- lib/librte_ethdev/rte_ethdev.h | 2 + lib/librte_ethdev/rte_ethdev_driver.h | 35 +++++ lib/librte_kvargs/rte_kvargs.c | 82 +++++++---- 15 files changed, 351 insertions(+), 104 deletions(-) create mode 100644 0000-cover-letter.patch -- 2.25.1