diff options
author | Jakub Kicinski <kuba@kernel.org> | 2022-09-29 04:52:11 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-09-29 04:52:11 +0300 |
commit | 30b172ee56658b9c297c6d73f0a5c32ed1470dd0 (patch) | |
tree | a81b3f200ee0f5da3c84a31be5ea1e5566fbfc4f /net/ipv4 | |
parent | 63a8bf85568b30438431d4d78afb2fde4a280760 (diff) | |
parent | a42cf9d18278a172ff2dcdf51b8772462d2fa5a5 (diff) | |
download | linux-30b172ee56658b9c297c6d73f0a5c32ed1470dd0.tar.xz |
Merge branch 'mptcp-mptcp-support-for-tcp_fastopen_connect'
Mat Martineau says:
====================
mptcp: MPTCP support for TCP_FASTOPEN_CONNECT
RFC 8684 appendix B describes how to use TCP Fast Open with MPTCP. This
series allows TFO use with MPTCP using the TCP_FASTOPEN_CONNECT socket
option. The scope here is limited to the initiator of the connection -
support for MSG_FASTOPEN and the listener side of the connection will be
in a separate series. The preexisting TCP fastopen code does most of the
work, so these changes mostly involve plumbing MPTCP through to those
TCP functions.
Patch 1 changes the MPTCP socket option code to pass the
TCP_FASTOPEN_CONNECT option through to the initial unconnected subflow.
Patch 2 exports the existing tcp_sendmsg_fastopen() function from tcp.c
Patch 3 adds the call to tcp_sendmsg_fastopen() from the MPTCP send
function.
Patch 4 modifies mptcp_poll() to handle the deferred TFO connection.
====================
Link: https://lore.kernel.org/r/20220926232739.76317-1-mathew.j.martineau@linux.intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index a109a4cb1e47..648b5c54bb32 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1162,9 +1162,8 @@ void tcp_free_fastopen_req(struct tcp_sock *tp) } } -static int tcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg, - int *copied, size_t size, - struct ubuf_info *uarg) +int tcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg, int *copied, + size_t size, struct ubuf_info *uarg) { struct tcp_sock *tp = tcp_sk(sk); struct inet_sock *inet = inet_sk(sk); |