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) |
> -----------------------------------------------------