RE: [PATCH net-next v4 4/6] net/mlx5: implement swp_l4_csum_mode via devlink params
From: Loktionov, Aleksandr <hidden>
Date: 2025-11-18 07:18:46
Also in:
linux-doc, linux-rdma
quoted hunk ↗ jump to hunk
-----Original Message----- From: Daniel Zahka <daniel.zahka@gmail.com> Sent: Tuesday, November 18, 2025 1:25 AM To: Jiri Pirko <jiri@resnulli.us>; David S. Miller [off-list ref]; Eric Dumazet [off-list ref]; Jakub Kicinski [off-list ref]; Paolo Abeni [off-list ref]; Simon Horman [off-list ref]; Jonathan Corbet [off-list ref]; Srujana Challa [off-list ref]; Bharat Bhushan [off-list ref]; Herbert Xu [off-list ref]; Brett Creeley [off-list ref]; Andrew Lunn [off-list ref]; Michael Chan [off-list ref]; Pavan Chebbi [off-list ref]; Nguyen, Anthony L [off-list ref]; Kitszel, Przemyslaw [off-list ref]; Goutham, Sunil Kovvuri [off-list ref]; Linu Cherian [off-list ref]; Geetha sowjanya [off-list ref]; Jerin Jacob [off-list ref]; hariprasad [off-list ref]; Subbaraya Sundeep [off-list ref]; Tariq Toukan [off-list ref]; Saeed Mahameed [off-list ref]; Leon Romanovsky [off-list ref]; Mark Bloch [off-list ref]; Ido Schimmel [off-list ref]; Petr Machata [off-list ref]; Manish Chopra [off-list ref]; Maxime Coquelin [off-list ref]; Alexandre Torgue [off-list ref]; Siddharth Vadapalli <s- vadapalli@ti.com>; Roger Quadros [off-list ref]; Loic Poulain [off-list ref]; Sergey Ryazanov [off-list ref]; Johannes Berg [off-list ref]; Vladimir Oltean [off-list ref]; Michal Swiatkowski [off-list ref]; Loktionov, Aleksandr [off-list ref]; Ertman, David M [off-list ref]; Vlad Dumitrescu [off-list ref]; Russell King (Oracle) [off-list ref]; Alexander Sverdlin [off-list ref]; Lorenzo Bianconi [off-list ref] Cc: netdev@vger.kernel.org; linux-doc@vger.kernel.org; linux- rdma@vger.kernel.org Subject: [PATCH net-next v4 4/6] net/mlx5: implement swp_l4_csum_mode via devlink params swp_l4_csum_mode controls how L4 transmit checksums are computed when using Software Parser (SWP) hints for header locations. Supported values: 1. default: device will choose between full_csum or l4_only. Driver will discover the device's choice during initialization. 2. full_csum: calculate L4 checksum with the pseudo-header. 3. l4_only: calculate L4 checksum without the pseudo-header. Only available when swp_l4_csum_mode_l4_only is set in mlx5_ifc_nv_sw_offload_cap_bits. Note that 'default' might be returned from the device and passed to userspace, and it might also be set during a devlink_param::reset_default() call, but attempts to set a value of default directly with param-set will be rejected. The l4_only setting is a dependency for PSP initialization in mlx5e_psp_init(). Signed-off-by: Daniel Zahka <daniel.zahka@gmail.com> --- Notes: v4: - rename device_default to default - implement get_default and reset_default handlers - don't allow user to request "default" in set cmd v2: - use extack in mlx5_nv_param_devlink_swp_l4_csum_mode_get() - fix indentation issue in mlx5.rst entry Documentation/networking/devlink/mlx5.rst | 14 ++ .../net/ethernet/mellanox/mlx5/core/devlink.h | 3 +- .../mellanox/mlx5/core/lib/nv_param.c | 229 ++++++++++++++++++ 3 files changed, 245 insertions(+), 1 deletion(-)diff --git a/Documentation/networking/devlink/mlx5.rstb/Documentation/networking/devlink/mlx5.rst index 0e5f9c76e514..4bba4d780a4a 100644--- a/Documentation/networking/devlink/mlx5.rst +++ b/Documentation/networking/devlink/mlx5.rst@@ -218,6 +218,20 @@ parameters. * ``balanced`` : Merges fewer CQEs, resulting in a moderatecompression ratio but maintaining a balance between bandwidth savings and performance * ``aggressive`` : Merges more CQEs into a single entry, achieving a higher compression rate and maximizing performance, particularly under high traffic loads + * - ``swp_l4_csum_mode`` + - string + - permanent + - Configure how the L4 checksum is calculated by the device when using + Software Parser (SWP) hints for header locations. + + * ``default`` : Use the device's default checksum calculation + mode. The driver will discover during init whether or + full_csum or l4_only is in use. Setting this value explicitly + from userspace is not allowed, but some firmware versions may + return this value on param read. + * ``full_csum`` : Calculate full checksum including the pseudo-header + * ``l4_only`` : Calculate L4-only checksum, excluding the + pseudo-header + The ``mlx5`` driver supports reloading via ``DEVLINK_CMD_RELOAD`` Info versionsdiff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.hb/drivers/net/ethernet/mellanox/mlx5/core/devlink.h index c9555119a661..43b9bf8829cf 100644--- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.h@@ -26,7 +26,8 @@ enum mlx5_devlink_param_id {
...
-- 2.47.3
Reviewed-by: Aleksandr Loktionov <redacted>