On Tue, 8 Sep 2020 17:42:40 +0300 Parav Pandit wrote: > A devlink port may be for a controller consist of PCI device.
Humm? > A devlink instance holds ports of two types of controllers. > (1) controller discovered on same system where eswitch resides > This is the case where PCI PF/VF of a controller and devlink eswitch > instance both are located on a single system. > (2) controller located on external host system. > This is the case where a controller is located in one system and its > devlink eswitch ports are located in a different system. > > When a devlink eswitch instance serves the devlink ports of both > controllers together, PCI PF/VF numbers may overlap. > Due to this a unique phys_port_name cannot be constructed. > > For example in below such system controller-A and controller-B, each has > PCI PF pf0 whose eswitch ports are present in controller-A. > These results in phys_port_name as "pf0" for both. > Similar problem exists for VFs and upcoming Sub functions. > > An example view of two controller systems: > > ----------------------------------------------------- > | | > | --------- --------- | > ------------- | | vf(s) | | sf(s) | | > | server | | ------- ----/---- ---/----- ------- | > | pci rc |=====| pf0 |______/________/ | pf1 | | > | connection| | ------- ------- | > ------------- | | controller-B (no eswitch) (controller num=1)| > ------|---------------------------------------------- > (internal wire) > | > ----------------------------------------------------- > | devlink eswitch ports and reps | > | --------------------------------------------- | > | |ctrl-A | ctrl-B | ctrl-A | ctrl-B | ctrl-B | | > | |pf0 | pf0 | pf0vfN | pf0vfN | pf0sfN | | > | --------------------------------------------- | ^^^^^^^^ ctrl-A doesn't have VFs, but sfs below. pf1 reprs are not listed. Perhaps it'd be clearer if controllers where not interleaved? > | | > | --------- | > | | sf(s) | | > | ------- ---/----- ------- | > | | pf0 |_____/ | pf1 | | > | ------- ------- | > | | > | local controller-A (eswitch) (controller num=0) | > -----------------------------------------------------