[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <kxyjur2elo3h2jkajuckkqg3fklnkmdewhch2npqnti6mylw6f@snsjaotsbdy2>
Date: Fri, 25 Apr 2025 09:27:19 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Jakub Kicinski <kuba@...nel.org>
Cc: netdev@...r.kernel.org, davem@...emloft.net, edumazet@...gle.com,
pabeni@...hat.com, tariqt@...dia.com, andrew+netdev@...n.ch, horms@...nel.org,
donald.hunter@...il.com, kalesh-anakkur.purayil@...adcom.com
Subject: Re: [PATCH net-next v3 2/3] devlink: add function unique identifier
to devlink dev info
Fri, Apr 25, 2025 at 12:06:29AM +0200, kuba@...nel.org wrote:
>On Thu, 24 Apr 2025 11:42:09 +0200 Jiri Pirko wrote:
>> This you see on the PF that is managing the eswitch. This devlink port
>> is a representor of another PF, let's call it PFx. PFx may or may not be
>> on a different host. It's a link from PF managed eswitch to PFx.
>>
>> So you have 2 PFs that are in hierarchy (one is on downlink of another),
>> each on different host.
>>
>> To find out how these 2 are connected together, you need to know some
>> identification, on both sides. On PF side, that is port.function.uid the
>> patchset mentioned above introduces. On PFx, the same value is listed
>> under devlink info, which is what my patch we are discussing here is
>> adding.
>
>Still not clear, sorry, can you show a diagram?
>"Downsteam" makes me think the NIC device itself is a PCIe switch?
No, in theory, the PF can manage a nested eswitch. That is not the case
atm if I'm not mistaken for any device.
Here's the diagram:
┌──────────────────────────────────────────────────┐ ┌────────────────────────────────────────────────┐
│ host A (DPU) │ │ host B (host) │
│ │ │ │
┌────────┼──────────────────────────────────────────────────┼─────┼──────────────────────────────────────────────┐ │
│ │ │ │ │ │
│ NIC │ ┌──────────────────────────────────────────┐ │ │ │ │
│ │ │ PF0_devlink info_fuid:A │ │ │ ┌──────────────────────────────────┐ │ │
──────┼────────┼───┼─phys_dl_port │ │ │ │ PFx_devlink info_fuid:C │ │ │
│ │ │ PFx_dl_port───┼───┼─────┼──┼─virt_dl_port │ │ │
│ │ │ fuid:C │ │ │ │ │ │ │
│ │ │ │ │ │ └──────────────────────────────────┘ │ │
│ │ │ VFx1_dl_port──┼───┼──┐ │ ┌──────────────────────────────────┐ │ │
│ │ │ fuid:D │ │ │ │ │ VFx1_devlink info_fuid:D │ │ │
│ │ └──────────────────────────────────────────┘ │ └──┼──┼─virt_dl_port │ │ │
│ │ ┌──────────────────────────────────────────┐ │ │ │ │ │ │
│ │ │ PF1_devlink info_fuid:B │ │ │ └──────────────────────────────────┘ │ │
──────┼────────┼───┼─phys_dl_port │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ └──────────────────────────────────────────┘ │ │ │ │
└────────┼──────────────────────────────────────────────────┼─────┼──────────────────────────────────────────────┘ │
│ │ │ │
└──────────────────────────────────────────────────┘ └────────────────────────────────────────────────┘
info_fuid is the devlink info function.uid I'm introducing.
the "fuid" under port is the port function uid attr from the RFC
patchset.
Is it clearer now? Should I extend the diagram by something you miss?
Thanks!
Powered by blists - more mailing lists