Subject: Re: [net-next 14/15] net/mlx5: Light probe local SFs

From: Jiri Pirko <[email-masked]>
Date: Tue, 27 Jun 2023 19:16:42 +0200

Tue, Jun 27, 2023 at 05:24:29PM CEST, [email-masked] wrote:
>On Tue, 27 Jun 2023 12:12:10 +0200 Jiri Pirko wrote:
>> $ sudo devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 103
>> pci/0000:08:00.0/32770: type eth netdev eth10 flavour pcisf controller 0 pfnum 0 sfnum 103 splittable false
>>   function:
>>     hw_addr 00:00:00:00:00:00 state inactive opstate detached
>> 
>> $ sudo devlink port function set pci/0000:08:00.0/32770 hw_addr AA:22:33:44:55:66 uuid SOMETHINGREALLYUNIQUE
>
>Why does the user have to set the uuid? I was expecting it'd pop up 
>on the port automatically, generated by the kernel, as a read-only
>attribute.

Hmm, how that could be generated by kernel if it should be really
unique? Consider an example scenario where you have 2 DPUS (smartnic
with CPUs) plugged into a single host.

1) On DPU 1 you do:
   $ sudo devlink port add pci/0000:08:00.0 flavour pcisf pfnum 1 sfnum 103
   pci/0000:08:00.0/32770: type eth netdev eth10 flavour pcisf controller 1 pfnum 0 sfnum 103 splittable false
       function:
       hw_addr 00:00:00:00:00:00 state inactive opstate detached uuid XXX

2) On DPU 2 you do:
   $ sudo devlink port add pci/0000:08:00.0 flavour pcisf pfnum 1 sfnum 103
   pci/0000:08:00.0/32770: type eth netdev eth10 flavour pcisf controller 1 pfnum 0 sfnum 103 splittable false
       function:
       hw_addr 00:00:00:00:00:00 state inactive opstate detached uuid XXX

There is no way to sync between kernel running in the DPUs.
Both SFs in this example would be externaly created on the host. The
host will see 2 devices with the same uuid XXX, collision.