lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ