RE: [PATCH/RFC net-next 1/2] devlink: expose port function commands to assign VFs to multiple netdevs

Yinjun Zhang
2023-02-09T02:20:56Z

On Wed, 8 Feb 2023 16:55:12 -0800, Saeed Mahameed wrote:
> On 08 Feb 15:35, Jakub Kicinski wrote:
> >On Wed, 8 Feb 2023 13:37:08 -0800 Saeed Mahameed wrote:
> >> I don't understand the difference between the two modes,
> >> 1) "where VFs are associated with physical ports"
> >> 2) "another mode where all VFs are associated with one physical port"
> >>
> >> anyway here how it works for ConnectX devices, and i think the model
> should
> >> be generalized to others as it simplifies the user life in my opinion.
> >
> >I'm guessing the version of the NFP Simon posted this for behaves
> >much like CX3 / mlx4. One PF, multiple Ethernet ports.
>
> Then the question is, can they do PF per port and avoid such complex APIs ?
>

To answer your last question, it needs silicon support, so we can't for some old products.

Then let me clarify something more for this patch-set's purpose.
Indeed, one port per PF is current mainstream. In this case, all the VFs created from PF0
use physical port 0 as the uplink port(outlet to external world), and all the VFs from PF1
use p1 as the uplink port. Let me call them two switch-sets. And they're isolated, you can't
make the traffic input from VFs of PF0 output to p1 or VFs of PF1, right? Even with TC in
switchdev mode, the two switch-sets are still isolated, right? Correct me if I'm wrong here.
And the posted configuration in this patch-set is useless in this case, it's for one PF with
multi ports.

Let me take NFP implementation for example here, all the VFs created from the single PF
use p0 as the uplink port by default. In legacy mode, by no means we can choose other
ports as outlet. So what we're doing here is try to simulate one-port-per-PF case, to split
one switch-set to several switch-sets with every physical port as the uplink port respectively,
by grouping the VFs and assigning them to physical ports.