From nobody Thu Jul 17 09:36:50 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bjSVq3lxtz62kJj; Thu, 17 Jul 2025 09:36:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bjSVq0Vqrz49Ld; Thu, 17 Jul 2025 09:36:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752745011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mXJNDc/tPBoiAayzcP/Qx2dYx85RVr7Rf2a2KLCDaXE=; b=NO/WVM4EibBnUYnK0DoJShMsYPPLQjU1FdwLZNBoy/5/KO8h4uJjCPXtMaHG1sWFnqadvQ ycLVlVZZAqOQrWvrfHsmXh7x/R7XzsKalSkGuD4UcFxe1xwtwk09WNIY5gY7evrYBascP6 itd9pBXqfvrJT8TqFo+5WeyZP3EXxX06+7cP0+PcNTu1bQvGECD2M392d7chTRgrCFiRuZ cYLm9rA5jkPdb5DNmqjuObqfKO8C0TK04dha2X8Sh4WmK+HmEoQTY0S37UEFJgR86ANWim KjGDe6NlkDBEGFw9RJdJqU3hGWsgl+/FDl1K1qV/OhgWv/cXgVSyH3znkbkoEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752745011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mXJNDc/tPBoiAayzcP/Qx2dYx85RVr7Rf2a2KLCDaXE=; b=uGBdqWfmJJB+yEnGC7A2LB0lh9ak0Ye5UNC+KP/ctlMsmIxXileK/2HTqLVyvnvTbAckiC xyb4XlQ4fbUxNexwTnu+av/3yCem3Iy6n87zhp67gqc9O/Zpq68GwfDrnSioE8VB9GB1aK 3uGNZ48S5wKYztG+3BtiubJbNhLS8IAqL7RvNnK7vw1fO4plSO2Ozsn1+0EXRGpKzgr4iy MklPlgYso2h46k86R8pGaLy4KKM882Ke0FNq5X5Jsn7xTshBeR646pPy9NoJhYLmU9FraW iop2Nt2ILbO2+rAVW9ns7GrfuwXxl82rxQGSp62oPjdZZPfuCLd9Qm57PkRjHA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1752745011; a=rsa-sha256; cv=none; b=N8PVTyV+hRUIgM2OavQeh94WeOB39PGEXuYxLJqeL5oXBI/ogS/CmDWIEI7US4VhAEar51 VF2MWprDNPEXtUDJwdwflfLFtPq0PsOGwiI5rGj9J3+UVWHc2M2sgBwzByCDsJMbjalFH+ HK/JsVEuAQRoqcubqSU9ECA4Iwuu1A5TRt0Xdqd1T0aWecaFiRzkQP2WNtyZJahQFVFOuE t1XeKJrQAZUUUkSVL+43MXuDci3WiTBFKiNOyyn73JDZV0D5iLOZE03qYk+vG3Ya1uTNWp qmCwMsneZplQT8l+TTuXXCsMaLgp9VGGvwen542B6sN9wbRKPqdBx8XwORC5Bg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bjSVp6xNXzqSB; Thu, 17 Jul 2025 09:36:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 56H9aobo003488; Thu, 17 Jul 2025 09:36:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56H9aoEM003485; Thu, 17 Jul 2025 09:36:50 GMT (envelope-from git) Date: Thu, 17 Jul 2025 09:36:50 GMT Message-Id: <202507170936.56H9aoEM003485@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 72c9ad9331a9 - main - mlx5en ipsec offload: copy xform_history to the ipsec_accel_in_tag List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 72c9ad9331a9d0b80bdfe8c6d76c61aa336bb1e5 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=72c9ad9331a9d0b80bdfe8c6d76c61aa336bb1e5 commit 72c9ad9331a9d0b80bdfe8c6d76c61aa336bb1e5 Author: Konstantin Belousov AuthorDate: 2025-07-06 16:58:25 +0000 Commit: Konstantin Belousov CommitDate: 2025-07-17 09:36:26 +0000 mlx5en ipsec offload: copy xform_history to the ipsec_accel_in_tag Reviewed by: Ariel Ehrenberg , slavash Sponsored by: Nvidia networking --- sys/dev/mlx5/mlx5_accel/ipsec.h | 8 ++++---- sys/dev/mlx5/mlx5_accel/mlx5_ipsec_rxtx.c | 16 +++++++++++----- sys/dev/mlx5/mlx5_en/mlx5_en_rx.c | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/sys/dev/mlx5/mlx5_accel/ipsec.h b/sys/dev/mlx5/mlx5_accel/ipsec.h index 361b9f72d873..c3f3a2372482 100644 --- a/sys/dev/mlx5/mlx5_accel/ipsec.h +++ b/sys/dev/mlx5/mlx5_accel/ipsec.h @@ -260,8 +260,8 @@ int mlx5e_accel_ipsec_fs_rx_tables_create(struct mlx5e_priv *priv); void mlx5e_accel_ipsec_fs_rx_catchall_rules_destroy(struct mlx5e_priv *priv); int mlx5e_accel_ipsec_fs_rx_catchall_rules(struct mlx5e_priv *priv); int mlx5_accel_ipsec_rx_tag_add(if_t ifp, struct mlx5e_rq_mbuf *mr); -void mlx5e_accel_ipsec_handle_rx_cqe(struct mbuf *mb, struct mlx5_cqe64 *cqe, - struct mlx5e_rq_mbuf *mr); +void mlx5e_accel_ipsec_handle_rx_cqe(if_t ifp, struct mbuf *mb, + struct mlx5_cqe64 *cqe, struct mlx5e_rq_mbuf *mr); static inline int mlx5e_accel_ipsec_flow(struct mlx5_cqe64 *cqe) { @@ -269,12 +269,12 @@ static inline int mlx5e_accel_ipsec_flow(struct mlx5_cqe64 *cqe) } static inline void -mlx5e_accel_ipsec_handle_rx(struct mbuf *mb, struct mlx5_cqe64 *cqe, +mlx5e_accel_ipsec_handle_rx(if_t ifp, struct mbuf *mb, struct mlx5_cqe64 *cqe, struct mlx5e_rq_mbuf *mr) { u32 ipsec_meta_data = be32_to_cpu(cqe->ft_metadata); if (MLX5_IPSEC_METADATA_MARKER(ipsec_meta_data)) - mlx5e_accel_ipsec_handle_rx_cqe(mb, cqe, mr); + mlx5e_accel_ipsec_handle_rx_cqe(ifp, mb, cqe, mr); } #endif /* __MLX5_ACCEL_IPSEC_H__ */ diff --git a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_rxtx.c b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_rxtx.c index 0883cfb2d510..5dccb8bc2b87 100644 --- a/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_rxtx.c +++ b/sys/dev/mlx5/mlx5_accel/mlx5_ipsec_rxtx.c @@ -24,11 +24,14 @@ * */ +#include "opt_ipsec.h" + #include #include #include #include #include +#include #include #include #include @@ -48,7 +51,8 @@ mlx5_accel_ipsec_rx_tag_add(if_t ifp, struct mlx5e_rq_mbuf *mr) return (0); mtag = (struct ipsec_accel_in_tag *)m_tag_get( - PACKET_TAG_IPSEC_ACCEL_IN, sizeof(*mtag), M_NOWAIT); + PACKET_TAG_IPSEC_ACCEL_IN, sizeof(struct ipsec_accel_in_tag) - + __offsetof(struct ipsec_accel_in_tag, xh), M_NOWAIT); if (mtag == NULL) return (-ENOMEM); mr->ipsec_mtag = mtag; @@ -56,8 +60,8 @@ mlx5_accel_ipsec_rx_tag_add(if_t ifp, struct mlx5e_rq_mbuf *mr) } void -mlx5e_accel_ipsec_handle_rx_cqe(struct mbuf *mb, struct mlx5_cqe64 *cqe, - struct mlx5e_rq_mbuf *mr) +mlx5e_accel_ipsec_handle_rx_cqe(if_t ifp, struct mbuf *mb, + struct mlx5_cqe64 *cqe, struct mlx5e_rq_mbuf *mr) { struct ipsec_accel_in_tag *mtag; u32 drv_spi; @@ -65,10 +69,12 @@ mlx5e_accel_ipsec_handle_rx_cqe(struct mbuf *mb, struct mlx5_cqe64 *cqe, drv_spi = MLX5_IPSEC_METADATA_HANDLE(be32_to_cpu(cqe->ft_metadata)); mtag = mr->ipsec_mtag; WARN_ON(mtag == NULL); - mr->ipsec_mtag = NULL; if (mtag != NULL) { mtag->drv_spi = drv_spi; - m_tag_prepend(mb, &mtag->tag); + if (ipsec_accel_fill_xh(ifp, drv_spi, &mtag->xh)) { + m_tag_prepend(mb, &mtag->tag); + mr->ipsec_mtag = NULL; + } } } diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c b/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c index 6b53db6fea23..eb569488631a 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c @@ -467,7 +467,7 @@ mlx5e_build_rx_mbuf(struct mlx5_cqe64 *cqe, struct mlx5e_rq *rq, break; } - mlx5e_accel_ipsec_handle_rx(mb, cqe, mr); + mlx5e_accel_ipsec_handle_rx(ifp, mb, cqe, mr); } static inline void