SubFunction [1] is a portion of the PCI device, a SF netdev has its own dedicated queues(txq, rxq). A SF netdev supports E-Switch 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.
This patch set introduces SubFunction representor support for mlx5 PMD driver. Version history: RFC: initial version [2] V2: - support bonding representor probe with new pf#vf# devargs - adapt EAL api V2 [3] changes - update document V3: - support list of representor PF section for bonding device: example: representor=pf[0,1]vf[0-3] - add bonding information to shared PMD data - fix setting VF MAC through representor - fix bonding xstats, sum xstats from PF members. V4: - combine unexpected patch, thanks Slava V5: - support new ethdev ops api to return representor info - new api to encode and decode representor ID - new patch to allow BF2 HPF(-1) probe with sf-1 [1] SubFunction in kernel: https://lore.kernel.org/netdev/20201112192424.2742-1-pa...@nvidia.com/ [2] RFC: http://patchwork.dpdk.org/project/dpdk/list/?series=14376 [3] V2: http://patchwork.dpdk.org/project/dpdk/list/?series=14560 [3] V3: http://patchwork.dpdk.org/project/dpdk/list/?series=14810 [3] V4: http://patchwork.dpdk.org/project/dpdk/list/?series=14836 Xueming Li (9): common/mlx5: sub-function representor port name parsing net/mlx5: support representor of sub function net/mlx5: revert setting bonding representor to first PF net/mlx5: refactor bonding representor probe net/mlx5: support list value of representor PF net/mlx5: save bonding member ports information net/mlx5: fix setting VF default MAC through representor net/mlx5: improve xstats of bonding port net/mlx5: probe host PF representor with SubFunction doc/guides/nics/mlx5.rst | 62 +++- drivers/common/mlx5/linux/mlx5_common_os.c | 32 +- drivers/common/mlx5/linux/mlx5_nl.c | 3 + drivers/common/mlx5/mlx5_common.h | 2 + drivers/net/mlx5/linux/mlx5_ethdev_os.c | 136 +++++-- drivers/net/mlx5/linux/mlx5_os.c | 395 ++++++++++++++------- drivers/net/mlx5/mlx5.c | 24 +- drivers/net/mlx5/mlx5.h | 35 +- drivers/net/mlx5/mlx5_defs.h | 4 - drivers/net/mlx5/mlx5_ethdev.c | 149 ++++++-- drivers/net/mlx5/mlx5_mac.c | 23 +- 11 files changed, 652 insertions(+), 213 deletions(-) -- 2.25.1