<snip>
>> The patch of device SF capability, but seems I misunderstood your suggestion.
>> Let me explain process to create a SF:
>> 1. SF can be created on the fly with scripts, unlike VF which is statically
>> pre-created.
>
>Is there a maximum index and maximum total number of SF's created? How to find
>it?
The maximum index is defined by firmware configuration, all SF's information
could be found
from sysfs. To create a SF, both PCI and sfnum have to be specified.
>
>> 2. SF is created on a PF with a SF number. SF number is named per PF,
>> different PF may have same SF number.
>> 3. For standalone PF, hot plug to DPDK using "PF#_BDF,representor=sf#", no
>> need to use pf#sf# here.
>> 4. For bonding netdev, hot plug to DPDK using "PF0_BDF,representor=pf#sf#"
>> If using new api to return all representor IDs, need some way locate
>> the new created SF by PF and SF number, that's why "pf#sf#" is used in this
>> patch set.
>
>I think the API should simply reserve/report space for maximum number of SFs.
>So, IDs are stable across restart/reboot in assumption
>that NIC is not reconfigured (changed maximum number of VF or maximum number
>of SFs of any PF).
Yes, IDs should be stable as long as no NIC firmware configuration change.
Just clarify, this api should be common enough to report all devices that a bus
device supports:
1. name, might contains controller and pf info, example:
"eth:representor:c0pf1vf"
2. ID range, example: 0-127
The api describes ID ranges for each sub device type, users have to query the
api and choose representor ID to probe.
Prototype:
struct rte_bus_device_range {
char name[64];
uint32_t base;
uint32_t number;
}
/* return number of ranges filled, or number of ranges if list is NULL. */
int rte_bus_ dev_range_get(struct rte_bus_device_range *list, int n);
>
<snip>