> From: Jakub Kicinski <k...@kernel.org>
> Sent: Wednesday, September 9, 2020 12:20 AM
>
> 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.
>
Right. Instead of showing too many overlapping devices in both controllers,
picked sf ports.
> pf1 reprs are not listed.
>
It was hard to cover replicate same topology as that of pf0, so It is omitted.
I guess I should put that note to avoid this confusion.
> Perhaps it'd be clearer if controllers where not interleaved?
Yes, Jiri also pointed out to get rid of naming A and B and use numbers.
Little older diagram got it. :-(
>
> > | |
> > | --------- |
> > | | sf(s) | |
> > | ------- ---/----- ------- |
> > | | pf0 |_____/ | pf1 | |
> > | ------- ------- |
> > | |
> > | local controller-A (eswitch) (controller num=0) |
> > -----------------------------------------------------