On Sun, Feb 16, 2025 at 10:33:59AM +0100, Zhu Yanjun wrote: > 在 2025/2/5 19:20, Leon Romanovsky 写道: > > From: Leon Romanovsky <leonro@xxxxxxxxxx> > > > > 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@xxxxxxxxxx> > > --- > > 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 implement > > In 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." > > of --> should be "or" > > Thanks a lot. > Reviewed-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxx> Thanks > > Zhu Yanjun > > > +this callback, the stack provides reasonable defaults. > > Crypto offload mode: > > When ready to send, the driver needs to inspect the Tx packet for the > > diff --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)