git: 8925ea58c206 - stable/14 - mlx5en: improve reporting of kernel TLS, IPSEC offload, and ratelimit caps
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 19 Nov 2024 05:20:16 UTC
The branch stable/14 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=8925ea58c20600fb740e5aa370af70b6b9b5febe
commit 8925ea58c20600fb740e5aa370af70b6b9b5febe
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-10-15 22:34:58 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-11-19 05:20:09 +0000
mlx5en: improve reporting of kernel TLS, IPSEC offload, and ratelimit caps
Sponsored by: NVidia networking
(cherry picked from commit de7a92756f0ab50e5e243ce9ac680e27f5c41370)
---
sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
index 55a4bc3cec79..4399af43b93b 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
@@ -4518,13 +4518,25 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev)
if_setcapabilitiesbit(ifp, IFCAP_TSO | IFCAP_VLAN_HWTSO, 0);
if_setcapabilitiesbit(ifp, IFCAP_HWSTATS | IFCAP_HWRXTSTMP, 0);
if_setcapabilitiesbit(ifp, IFCAP_MEXTPG, 0);
- if_setcapabilitiesbit(ifp, IFCAP_TXTLS4 | IFCAP_TXTLS6, 0);
+#ifdef KERN_TLS
+ if (MLX5_CAP_GEN(mdev, tls_tx) != 0 &&
+ MLX5_CAP_GEN(mdev, log_max_dek) != 0)
+ if_setcapabilitiesbit(ifp, IFCAP_TXTLS4 | IFCAP_TXTLS6, 0);
+ if (MLX5_CAP_GEN(mdev, tls_rx) != 0 &&
+ MLX5_CAP_GEN(mdev, log_max_dek) != 0 &&
+ MLX5_CAP_FLOWTABLE_NIC_RX(mdev,
+ ft_field_support.outer_ip_version) != 0)
+ if_setcapabilities2bit(ifp, IFCAP2_BIT(IFCAP2_RXTLS4) |
+ IFCAP2_BIT(IFCAP2_RXTLS6), 0);
+#endif
#ifdef RATELIMIT
- if_setcapabilitiesbit(ifp, IFCAP_TXRTLMT | IFCAP_TXTLS_RTLMT, 0);
+ if (MLX5_CAP_GEN(mdev, qos) &&
+ MLX5_CAP_QOS(mdev, packet_pacing))
+ if_setcapabilitiesbit(ifp, IFCAP_TXRTLMT | IFCAP_TXTLS_RTLMT,
+ 0);
#endif
if_setcapabilitiesbit(ifp, IFCAP_VXLAN_HWCSUM | IFCAP_VXLAN_HWTSO, 0);
- if_setcapabilities2bit(ifp, IFCAP2_BIT(IFCAP2_RXTLS4) |
- IFCAP2_BIT(IFCAP2_RXTLS6), 0);
+
if_setsndtagallocfn(ifp, mlx5e_snd_tag_alloc);
#ifdef RATELIMIT
if_setratelimitqueryfn(ifp, mlx5e_ratelimit_query);