aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2026-01-28 05:32:53 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2026-02-25 17:19:36 +0000
commitde29fd0322254127c3ebaedbc91ee4f9620f5fdf (patch)
tree60c0812db1212739eaa5d065ae7770a4f15987b2
parent0e5caac7d543687d540fa83a7125726c7c9e6e58 (diff)
mlx5: report IPSEC offload capabilities whenever IPSEC_OFFLOAD is configured
Do it always for bootverbose if offload was enabled in the kernel config, not only if the device actually supports all required capabilities to do the offload. Otherwise, having the code to print the caps is pointless. Reviewed by: slavash Tested by: Wafa Hamzah <wafah@nvidia.com> Sponsored by: NVidia networking MFC after: 1 week
-rw-r--r--sys/dev/mlx5/mlx5_accel/ipsec.h1
-rw-r--r--sys/dev/mlx5/mlx5_accel/mlx5_ipsec.c19
-rw-r--r--sys/dev/mlx5/mlx5_en/mlx5_en_main.c3
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 daa98752c59b..0baeab31b100 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
@@ -4713,6 +4713,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) {