[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1745416242-1162653-1-git-send-email-moshe@nvidia.com>
Date: Wed, 23 Apr 2025 16:50:37 +0300
From: Moshe Shemesh <moshe@...dia.com>
To: <netdev@...r.kernel.org>, "David S. Miller" <davem@...emloft.net>, "Eric
Dumazet" <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, Simon Horman <horms@...nel.org>, Donald Hunter
<donald.hunter@...il.com>, Jiri Pirko <jiri@...nulli.us>, Jonathan Corbet
<corbet@....net>, Andrew Lunn <andrew+netdev@...n.ch>
CC: Tariq Toukan <tariqt@...dia.com>, Saeed Mahameed <saeedm@...dia.com>,
"Leon Romanovsky" <leonro@...dia.com>, Mark Bloch <mbloch@...dia.com>, Moshe
Shemesh <moshe@...dia.com>
Subject: [RFC net-next 0/5] devlink: Add unique identifier to devlink port function
A function unique identifier (UID) is a vendor defined string of
arbitrary length that universally identifies a function. The function
UID can be reported by device drivers via devlink dev info command.
This patch set adds UID attribute to devlink port function that reports
the UID of the function that pertains to the devlink port. Code is also
added to mlx5 as the first user to implement this attribute.
The main purpose of adding this attribute is to allow users to
unambiguously map between a function and the devlink port that manages
it, which might be on another host.
For example, one can retrieve the UID of a function using the "devlink
dev info" command and then search for the same UID in the output of
"devlink port show" command.
The "devlink dev info" support for UID of a function is added by a
separate patchset [1]. This patchset is submitted as an RFC to
illustrate the other side of the solution.
Other existing identifiers such as serial_number or board.serial_number
are not good enough as they don't guarantee uniqueness per function. For
example, in a multi-host NIC all PFs report the same value.
Example output:
$ devlink port show pci/0000:03:00.0/327680 -jp
{
"port": {
"pci/0000:03:00.0/327680": {
"type": "eth",
"netdev": "pf0hpf",
"flavour": "pcipf",
"controller": 1,
"pfnum": 0,
"external": true,
"splittable": false,
"function": {
"hw_addr": "5c:25:73:37:70:5a",
"roce": "enable",
"max_io_eqs": 120,
"uid":
"C6A76AD20605BE026D23C14E70B90704F4A5F5B3F304D83B37000732BF861D48MLNXS0D0F0"
}
}
}
}
[1] https://lore.kernel.org/netdev/20250416214133.10582-1-jiri@resnulli.us/
Avihai Horon (5):
devlink: Add unique identifier to devlink port function
net/mlx5: Move mlx5_cmd_query_vuid() from IB to core
net/mlx5: Add vhca_id argument to mlx5_core_query_vuid()
net/mlx5: Add define for max VUID string size
net/mlx5: Expose unique identifier in devlink port function
Documentation/netlink/specs/devlink.yaml | 3 ++
.../networking/devlink/devlink-port.rst | 12 +++++++
drivers/infiniband/hw/mlx5/cmd.c | 21 ------------
drivers/infiniband/hw/mlx5/cmd.h | 2 --
drivers/infiniband/hw/mlx5/main.c | 5 +--
.../mellanox/mlx5/core/esw/devlink_port.c | 2 ++
.../net/ethernet/mellanox/mlx5/core/eswitch.h | 2 ++
.../mellanox/mlx5/core/eswitch_offloads.c | 34 +++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 22 ++++++++++++
include/linux/mlx5/driver.h | 3 ++
include/net/devlink.h | 8 +++++
include/uapi/linux/devlink.h | 1 +
net/devlink/port.c | 32 +++++++++++++++++
13 files changed, 122 insertions(+), 25 deletions(-)
--
2.27.0
Powered by blists - more mailing lists