Re: [PATCH ipsec-next 4/5] xfrm: provide common xdo_dev_offload_ok callback implementation
From: Zhu Yanjun <hidden>
Date: 2025-02-16 12:36:35
Also in:
intel-wired-lan, linux-rdma, netdev
在 2025/2/16 12:07, Leon Romanovsky 写道:
On Sun, Feb 16, 2025 at 10:33:59AM +0100, Zhu Yanjun wrote:quoted
在 2025/2/5 19:20, Leon Romanovsky 写道:quoted
From: Leon Romanovsky <leonro@nvidia.com> Almost all drivers except bond and nsim had same check if device can perform XFRM offload on that specific packet. The check was that packet doesn't have IPv4 options and IPv6 extensions. In NIC drivers, the IPv4 HELEN comparison was slightly different, but the intent was to check for the same conditions. So let's chose more strict variant as a common base. Signed-off-by: Leon Romanovsky <leonro@nvidia.com> --- Documentation/networking/xfrm_device.rst | 3 ++- drivers/net/bonding/bond_main.c | 16 +++++--------- .../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 21 ------------------- .../inline_crypto/ch_ipsec/chcr_ipsec.c | 16 -------------- .../net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 21 ------------------- drivers/net/ethernet/intel/ixgbevf/ipsec.c | 21 ------------------- .../marvell/octeontx2/nic/cn10k_ipsec.c | 15 ------------- .../mellanox/mlx5/core/en_accel/ipsec.c | 16 -------------- .../net/ethernet/netronome/nfp/crypto/ipsec.c | 11 ---------- drivers/net/netdevsim/ipsec.c | 11 ---------- drivers/net/netdevsim/netdevsim.h | 1 - net/xfrm/xfrm_device.c | 15 +++++++++++++ 12 files changed, 22 insertions(+), 145 deletions(-)diff --git a/Documentation/networking/xfrm_device.rst b/Documentation/networking/xfrm_device.rst index 66f6e9a9b59a..39bb98939d1f 100644 --- a/Documentation/networking/xfrm_device.rst +++ b/Documentation/networking/xfrm_device.rst@@ -126,7 +126,8 @@ been setup for offload, it first calls into xdo_dev_offload_ok() with the skb and the intended offload state to ask the driver if the offload will serviceable. This can check the packet information to be sure the offload can be supported (e.g. IPv4 or IPv6, no IPv4 options, etc) and -return true of false to signify its support. +return true of false to signify its support. In case driver doesn't implementIn this commit, remove the functions cxgb4_ipsec_offload_ok, ch_ipsec_offload_ok, ixgbe_ipsec_offload_ok, ixgbevf_ipsec_offload_ok, cn10k_ipsec_offload_ok, mlx5e_ipsec_offload_ok, nfp_net_ipsec_offload_ok and nsim_ipsec_offload_ok, use the function xfrm_dev_offload_ok to do the same work. But in the file xfrm_device.rst, "return true or false to signify its support"?This sentence continued in the xfrm_device.rst: "... In case driver doesn't implement this callback, the stack provides reasonable defaults."
Got it. I mean "... and return true of false to signify its support..." ^^ should be "... and return true or false to signify its support..." ^_^ Zhu Yanjun
quoted
of --> should be "or" Thanks a lot. Reviewed-by: Zhu Yanjun <redacted>Thanksquoted
Zhu Yanjunquoted
+this callback, the stack provides reasonable defaults. Crypto offload mode: When ready to send, the driver needs to inspect the Tx packet for thediff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index e45bba240cbc..bfb55c23380b 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c@@ -676,22 +676,16 @@ static void bond_ipsec_free_sa(struct xfrm_state *xs) static bool bond_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs)
-- Best Regards, Yanjun.Zhu