ethdev: add helper function to get representor ID
authorXueming Li <xuemingl@nvidia.com>
Thu, 11 Mar 2021 13:13:32 +0000 (13:13 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 17 Mar 2021 18:12:09 +0000 (19:12 +0100)
commitdf7547a6a2cc75fbf993f36a844c156d13696874
treecac46becb542b7c184113a6a49ab1b5cf442aedc
parent85e1588ca72f0f7bc16cef35d003cbb7936a411f
ethdev: add helper function to get representor ID

The NIC can have multiple PCIe links and can be attached to multiple
hosts, for example the same single NIC can be shared for multiple server
units in the rack. On each PCIe link NIC can provide multiple PFs and
VFs/SFs based on these ones. The full representor identifier consists of
three indices - controller index, PF index, and VF or SF index (if any).

SR-IOV and SubFunction are created on top of PF. PF index is introduced
because there might be multiple PFs in the bonding configuration and
only bonding device is probed.

In eth representor comparator callback, ethdev representor ID was
compared with devarg. Since controller index and PF index not compared,
callback returned representor from other PF or controller.

This patch adds new API to get representor ID from controller, pf and
vf/sf index. Representor comparer callback get representor ID then
compare with device representor ID.

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
lib/librte_ethdev/ethdev_driver.h
lib/librte_ethdev/rte_class_eth.c
lib/librte_ethdev/rte_ethdev.c
lib/librte_ethdev/version.map