Re: [PATCH net-next 2/8] devlink: add PF and VF port flavours

Jiri Pirko
2019-03-21T12:37:23Z

Wed, Mar 20, 2019 at 06:29:44PM CET, akeem.g.abodunrin@intel.com wrote:
>
>
>> -----Original Message-----
>> From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
>> On Behalf Of Jiri Pirko
>> Sent: Sunday, March 03, 2019 11:30 PM
>> To: Parav Pandit <parav@mellanox.com>
>> Cc: Jakub Kicinski <jakub.kicinski@netronome.com>; davem@davemloft.net;
>> oss-drivers@netronome.com; netdev@vger.kernel.org
>> Subject: Re: [PATCH net-next 2/8] devlink: add PF and VF port flavours
>>
>> Mon, Mar 04, 2019 at 05:59:04AM CET, parav@mellanox.com wrote:
>> >
>> >
>> >> -----Original Message-----
>> >> From: netdev-owner@vger.kernel.org <netdev-owner@vger.kernel.org> On
>> >> Behalf Of Jiri Pirko
>> >> Sent: Wednesday, February 27, 2019 6:17 AM
>> >> To: Jakub Kicinski <jakub.kicinski@netronome.com>
>> >> Cc: davem@davemloft.net; oss-drivers@netronome.com;
>> >> netdev@vger.kernel.org
>> >> Subject: Re: [PATCH net-next 2/8] devlink: add PF and VF port
>> >> flavours
>> >>
>> >> Tue, Feb 26, 2019 at 07:24:30PM CET, jakub.kicinski@netronome.com wrote:
>> >> >Current port flavours cover simple switches and DSA. Add PF and VF
>> >> >flavours to cover "switchdev" SR-IOV NICs.
>> >> >
>> >> >Example devlink user space output:
>> >> >
>> >> >$ devlink port
>> >> >pci/0000:82:00.0/0: type eth netdev p4p1 flavour physical
>> >> >pci/0000:82:00.0/10000: type eth netdev eth0 flavour pcie_pf pf 0
>> >> >pci/0000:82:00.0/10001: type eth netdev eth1 flavour pcie_vf pf 0 vf
>> >> >0
>> >> >pci/0000:82:00.0/10002: type eth netdev eth2 flavour pcie_vf pf 0 vf
>> >> >1
>> >>
>> >A given port is of its parent device.
>> >In current scenario, its PF or VF.
>> >Hence it should be device attribute and not a port attribute.
>>
>> I think that this works. You have VF_rep ports, PF_rep ports and PHYSICAL ports.
>> In mlxsw for example, there are only PHYSICAL ports.
>> In sr-iov world, there is also a PHYSICAL port on the eswitch. The others are
>> either facing PF of VF. Looks accurate. I don't see any need for "devlink dev"
>> flavour.
>
>I see what you're trying to do here, with VF_rep ports being independent of PF_rep ports and PHYSICAL ports - however, my question is how do you categorize VF_rep ports of the same parent PF physical ports (say you have multi-port device, with 2 or more PFs), at least for identification purposes per physical port? Do we need to have pci_vf_number appended to physical port number?

Please wrap your messages at 80 cols.

>
>Thanks,
>~Akeem
>>
>>
>> >So devlink dev show command have to show what device flavour is.
>> >Is it well known PCI VF or PF or something else.
>> >It will show subdev device attribute and its parent PCI (PF/VF) devlink device.
>> >So we should have device flovour as PCI_PF or PCI_VF or SUBDEV.
>> >
>> >Again VF number showcasing here is very restrictive model.
>> >Every PF/VF/Subdev represents its own 'port' and it is connected to eswitch
>> 'port'.
>> >Instead of showing VF here, it must be this 'port' or 'link' number that gives
>> right view.
>> >Which netdev represents which VF is already linked in the VF rep-netdev sysfs
>> property.
>>
>> I think you confuse the eswtich ports (in Jakub's output it's them) and the actual
>> VF.
>>
>>
>> >
>> >So flavour should be something like 'hostport' and when port is registered for
>> the eswitch side it should be 'switchport'.
>> >With this there is very clear picture of which hostport is connected to which
>> eswitch port.
>> >Just like how we see in the physical world.
>> >