From: Sabrina Dubroca <sd@queasysnail.net> To: netdev@vger.kernel.org Cc: Herbert Xu <herbert@gondor.apana.org.au>, Steffen Klassert <steffen.klassert@secunet.com>, Sabrina Dubroca <sd@queasysnail.net> Subject: [PATCH ipsec-next v2 0/6] ipsec: add TCP encapsulation support (RFC 8229) Date: Wed, 11 Sep 2019 16:13:01 +0200 [thread overview] Message-ID: <cover.1568192824.git.sd@queasysnail.net> (raw) This patchset introduces support for TCP encapsulation of IKE and ESP messages, as defined by RFC 8229 [0]. It is an evolution of what Herbert Xu proposed in January 2018 [1] that addresses the main criticism against it, by not interfering with the TCP implementation at all. The networking stack now has infrastructure for this: TCP ULPs and Stream Parsers. The first patches are preparation and refactoring, and the final patch adds the feature. The main omission in this submission is IPv6 support. ESP encapsulation over UDP with IPv6 is currently not supported in the kernel either, as UDP encapsulation is aimed at NAT traversal, and NAT is not frequently used with IPv6. Some of the code is taken directly, or slightly modified, from Herbert Xu's original submission [1]. The ULP and strparser pieces are new. This work was presented and discussed at the IPsec workshop and netdev 0x13 conference [2] in Prague, last March. [0] https://tools.ietf.org/html/rfc8229 [1] https://patchwork.ozlabs.org/patch/859107/ [2] https://netdevconf.org/0x13/session.html?talk-ipsec-encap Changes since v1: - drop patch 1, already present in the tree as commit bd95e678e0f6 ("bpf: sockmap, fix use after free from sleep in psock backlog workqueue") - patch 1/6: fix doc error reported by kbuild test robot <lkp@intel.com> - patch 6/6, fix things reported by Steffen Klassert: - remove unneeded goto and improve error handling in esp_output_tcp_finish - clean up the ifdefs by providing dummy implementations of those functions - fix Kconfig select, missing NET_SOCK_MSG Sabrina Dubroca (6): net: add queue argument to __skb_wait_for_more_packets and __skb_{,try_}recv_datagram xfrm: introduce xfrm_trans_queue_net xfrm: add route lookup to xfrm4_rcv_encap esp4: prepare esp_input_done2 for non-UDP encapsulation esp4: split esp_output_udp_encap and introduce esp_output_encap xfrm: add espintcp (RFC 8229) include/linux/skbuff.h | 11 +- include/net/espintcp.h | 38 +++ include/net/xfrm.h | 4 + include/uapi/linux/udp.h | 1 + net/core/datagram.c | 27 +- net/ipv4/esp4.c | 264 ++++++++++++++++++-- net/ipv4/udp.c | 3 +- net/ipv4/xfrm4_protocol.c | 9 + net/unix/af_unix.c | 7 +- net/xfrm/Kconfig | 10 + net/xfrm/Makefile | 1 + net/xfrm/espintcp.c | 505 ++++++++++++++++++++++++++++++++++++++ net/xfrm/xfrm_input.c | 21 +- net/xfrm/xfrm_policy.c | 7 + net/xfrm/xfrm_state.c | 3 + 15 files changed, 865 insertions(+), 46 deletions(-) create mode 100644 include/net/espintcp.h create mode 100644 net/xfrm/espintcp.c -- 2.22.0
next reply other threads:[~2019-09-11 14:12 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-11 14:13 Sabrina Dubroca [this message] 2019-09-11 14:13 ` [PATCH ipsec-next v2 1/6] net: add queue argument to __skb_wait_for_more_packets and __skb_{,try_}recv_datagram Sabrina Dubroca 2019-09-11 14:13 ` [PATCH ipsec-next v2 2/6] xfrm: introduce xfrm_trans_queue_net Sabrina Dubroca 2019-09-11 14:13 ` [PATCH ipsec-next v2 3/6] xfrm: add route lookup to xfrm4_rcv_encap Sabrina Dubroca 2019-09-11 14:13 ` [PATCH ipsec-next v2 4/6] esp4: prepare esp_input_done2 for non-UDP encapsulation Sabrina Dubroca 2019-09-11 14:13 ` [PATCH ipsec-next v2 5/6] esp4: split esp_output_udp_encap and introduce esp_output_encap Sabrina Dubroca 2019-09-11 14:13 ` [PATCH ipsec-next v2 6/6] xfrm: add espintcp (RFC 8229) Sabrina Dubroca 2019-09-17 11:26 ` Steffen Klassert 2019-09-17 11:57 ` Sabrina Dubroca 2019-09-17 12:04 ` Steffen Klassert 2019-09-17 12:40 ` Sabrina Dubroca
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1568192824.git.sd@queasysnail.net \ --to=sd@queasysnail.net \ --cc=herbert@gondor.apana.org.au \ --cc=netdev@vger.kernel.org \ --cc=steffen.klassert@secunet.com \ --subject='Re: [PATCH ipsec-next v2 0/6] ipsec: add TCP encapsulation support (RFC 8229)' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).