Thread (14 messages) 14 messages, 2 authors, 2025-11-18

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.rst
b/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 moderate
compression 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 versions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.h
b/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>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help