The branch stable/15 has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=fad7cad82c6691b8c633a595e777fbf00ffa9989

commit fad7cad82c6691b8c633a595e777fbf00ffa9989
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2026-01-28 05:32:53 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2026-03-04 01:15:59 +0000

    mlx5: report IPSEC offload capabilities whenever IPSEC_OFFLOAD is configured
    
    (cherry picked from commit de29fd0322254127c3ebaedbc91ee4f9620f5fdf)
---
 sys/dev/mlx5/mlx5_accel/ipsec.h      |  1 +
 sys/dev/mlx5/mlx5_accel/mlx5_ipsec.c | 19 ++++++++++++++-----
 sys/dev/mlx5/mlx5_en/mlx5_en_main.c  |  3 +++
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/sys/dev/mlx5/mlx5_accel/ipsec.h b/sys/dev/mlx5/mlx5_accel/ipsec.h
index c3f3a2372482..8685c07e84db 100644
--- a/sys/dev/mlx5/mlx5_accel/ipsec.h
+++ b/sys/dev/mlx5/mlx5_accel/ipsec.h
@@ -204,6 +204,7 @@ struct mlx5e_ipsec_pol_entry {
 /* This function doesn't really belong here, but let's put it here for now */
 void mlx5_object_change_event(struct mlx5_core_dev *dev, struct mlx5_eqe *eqe);
 
+void mlx5e_ipsec_report(struct mlx5e_priv *priv);
 int mlx5e_ipsec_init(struct mlx5e_priv *priv);
 void mlx5e_ipsec_cleanup(struct mlx5e_priv *priv);
 
diff --git a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec.c 
b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec.c
index 3f3c575c9dad..bdbad6a084d9 100644
--- a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec.c
+++ b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec.c
@@ -739,13 +739,14 @@ static const struct if_ipsec_accel_methods  
mlx5e_ipsec_funcs = {
        .if_hwassist = mlx5e_if_ipsec_hwassist,
 };
 
-int mlx5e_ipsec_init(struct mlx5e_priv *priv)
+void
+mlx5e_ipsec_report(struct mlx5e_priv *priv)
 {
-       struct mlx5_core_dev *mdev = priv->mdev;
-       struct mlx5e_ipsec *pipsec;
-       if_t ifp = priv->ifp;
-       int ret;
+       struct mlx5_core_dev *mdev;
 
+       if (!bootverbose)
+               return;
+       mdev = priv->mdev;
        mlx5_core_info(mdev, "ipsec "
            "offload %d log_max_dek %d gen_obj_types %d "
            "ipsec_encrypt %d ipsec_decrypt %d "
@@ -775,6 +776,14 @@ int mlx5e_ipsec_init(struct mlx5e_priv *priv)
            MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
                reformat_del_esp_transport_over_udp) != 0,
            MLX5_CAP_IPSEC(mdev, ipsec_esn) != 0);
+}
+
+int mlx5e_ipsec_init(struct mlx5e_priv *priv)
+{
+       struct mlx5_core_dev *mdev = priv->mdev;
+       struct mlx5e_ipsec *pipsec;
+       if_t ifp = priv->ifp;
+       int ret;
 
        if (!(mlx5_ipsec_device_caps(mdev) & MLX5_IPSEC_CAP_PACKET_OFFLOAD)) {
                mlx5_core_dbg(mdev, "Not an IPSec offload device\n");
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c 
b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
index f83506bda1aa..78663e75e2b9 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
@@ -4736,6 +4736,9 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev)
                goto err_rl_init;
        }
 
+#ifdef IPSEC_OFFLOAD
+       mlx5e_ipsec_report(priv);
+#endif
        if ((if_getcapenable2(ifp) & IFCAP2_BIT(IFCAP2_IPSEC_OFFLOAD)) != 0) {
                err = mlx5e_ipsec_init(priv);
                if (err) {

Reply via email to