Subject: [PATCH v5 ipsec-next 0/3] xfrm: Support GRO decapsulation for ESP in UDP encapsulation

From: Antony Antony <[email-masked]>
Date: Tue, 26 Sep 2023 12:14:34 +0200

Hi,

I have rebased the patch set to latest ipsec-next. There was a big change to udp socket encapsulation data structure.

Eyal, would please review patch set quickly? focus specifically chages due to

70a36f571362 ("udp: annotate data-races around udp->encap_type")
ac9a7f4ce5dd ("udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO")
I hope I incorprated these changes correctly.

v1->v2 fixed error path added skb_push
        use is_fou instead of holding sk in skb.
        user configurable option to enable GRO; using UDP_GRO

v2->v3 only support GRO for UDP_ENCAP_ESPINUDP and not
        UDP_ENCAP_ESPINUDP_NON_IKE. The _NON_IKE is an IETF early draft
        version and not widly used.

v3->v4 removed refactoring since refactored function is only used once
        removed refcount on sk, sk is not used any more.
        fixed encap_type as Eyal recommended.
        removed un-necessary else since there is a goto before that.

v4->v5 removed extra code/checks that accidently got added.

v5->v6 rebased to ipsec-next chages due lockless scket udp
       encapsulation options

Steffen Klassert (3):
  xfrm: Use the XFRM_GRO to indicate a GRO call on input
  xfrm: Support GRO for IPv4 ESP in UDP encapsulation
  xfrm: Support GRO for IPv6 ESP in UDP encapsulation

 include/net/gro.h        |  2 +-
 include/net/ipv6_stubs.h |  3 ++
 include/net/xfrm.h       |  4 ++
 net/ipv4/esp4_offload.c  |  6 ++-
 net/ipv4/udp.c           | 16 +++++++
 net/ipv4/xfrm4_input.c   | 94 ++++++++++++++++++++++++++++++++--------
 net/ipv6/af_inet6.c      |  1 +
 net/ipv6/esp6_offload.c  | 10 ++++-
 net/ipv6/xfrm6_input.c   | 94 ++++++++++++++++++++++++++++++++--------
 net/xfrm/xfrm_input.c    |  6 +--
 10 files changed, 192 insertions(+), 44 deletions(-)

--
2.30.2