[PATCH mptcp-next v3 0/4] mptcp: add support for TCP_FASTOPEN_CONNECT, sender side only

Benjamin Hesmans posted 4 patches 1 year, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20220923121913.2135229-1-benjamin.hesmans@tessares.net
Maintainers: Eric Dumazet <edumazet@google.com>, "David S. Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>, David Ahern <dsahern@kernel.org>, Mat Martineau <mathew.j.martineau@linux.intel.com>, Matthieu Baerts <matthieu.baerts@tessares.net>
include/net/tcp.h    |  2 ++
net/ipv4/tcp.c       |  5 ++---
net/mptcp/protocol.c | 26 ++++++++++++++++++++++++++
net/mptcp/sockopt.c  | 19 ++++++++++++++++++-
4 files changed, 48 insertions(+), 4 deletions(-)
[PATCH mptcp-next v3 0/4] mptcp: add support for TCP_FASTOPEN_CONNECT, sender side only
Posted by Benjamin Hesmans 1 year, 6 months ago
The series only considers the sender side.

Compared to the previous RFC patches, these ones focus on
the sender side only. It corresponds to the 4 first patches from the RFC
series.

The sending part is less complex and even if it looks like we are
converging for the receive part, there are still discussions on-going
there.

Again, thank you Dmytro for the previous work done. As already discussed
on the ML and meeting, this approach was slightly different from what
Dmytro originally proposed. Here tcp_sendmsg_fastopen() is exported and
re-used and TCP_FASTOPEN_CONNECT is supported.

MSG_FASTOPEN will be handled by Dmytro's patches.

Individual changelogs have been added per patch.

We would like to credit Sébastien Barré, Gregory Detal, Olivier
Bonaventure and Christoph Paasch for the original idea of supporting TFO
in MPTCP, see https://datatracker.ietf.org/doc/draft-barre-mptcp-tfo/

It would be very nice to have these patches accepted in the future
kernel 6.1 which will be the next LTS picked by many vendors: the
modifications are quite small, well isolated and re-using what is done
in TCP for years.

v3:
- Add Dmytro SoB as kindly asked at the last meeting, the code is still
  the same.

v2:
- Drop support for MSG_FASTOPEN because we were not sure that it was the
  correct way to do it.
- latest patch of the series: apply comment from Paolo concerning
  mptcp_poll()

Benjamin Hesmans (3):
  mptcp: add TCP_FASTOPEN_CONNECT socket option
  tcp: export tcp_sendmsg_fastopen
  mptcp: poll allow write call before actual connect

Dmytro Shytyi (1):
  mptcp: handle defer connect in mptcp_sendmsg

 include/net/tcp.h    |  2 ++
 net/ipv4/tcp.c       |  5 ++---
 net/mptcp/protocol.c | 26 ++++++++++++++++++++++++++
 net/mptcp/sockopt.c  | 19 ++++++++++++++++++-
 4 files changed, 48 insertions(+), 4 deletions(-)

-- 
2.25.1


-- 


Disclaimer: https://www.tessares.net/mail-disclaimer/ 
<https://www.tessares.net/mail-disclaimer/>
Re: [PATCH mptcp-next v3 0/4] mptcp: add support for TCP_FASTOPEN_CONNECT, sender side only
Posted by Matthieu Baerts 1 year, 6 months ago
Hi Benjamin, Paolo,

On 23/09/2022 14:19, Benjamin Hesmans wrote:
> The series only considers the sender side.
> 
> Compared to the previous RFC patches, these ones focus on
> the sender side only. It corresponds to the 4 first patches from the RFC
> series.
> 
> The sending part is less complex and even if it looks like we are
> converging for the receive part, there are still discussions on-going
> there.
> 
> Again, thank you Dmytro for the previous work done. As already discussed
> on the ML and meeting, this approach was slightly different from what
> Dmytro originally proposed. Here tcp_sendmsg_fastopen() is exported and
> re-used and TCP_FASTOPEN_CONNECT is supported.
> 
> MSG_FASTOPEN will be handled by Dmytro's patches.
> 
> Individual changelogs have been added per patch.
> 
> We would like to credit Sébastien Barré, Gregory Detal, Olivier
> Bonaventure and Christoph Paasch for the original idea of supporting TFO
> in MPTCP, see https://datatracker.ietf.org/doc/draft-barre-mptcp-tfo/
> 
> It would be very nice to have these patches accepted in the future
> kernel 6.1 which will be the next LTS picked by many vendors: the
> modifications are quite small, well isolated and re-using what is done
> in TCP for years.

Thank you for the v3 and the review!

Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>

Now in our tree (feat. for net-next) without a small typo
(s/Signed-of-by/Signed-off-by/) before Paolo's patches to propagate the
FastClose errors (an extra patch has been added to modify Paolo's series
to take into account the new code from TFO):

New patches for t/upstream:
- 663904b20bf3: mptcp: add TCP_FASTOPEN_CONNECT socket option
- 9b4ba0258cd4: tcp: export tcp_sendmsg_fastopen
- 7ee00b1a8316: mptcp: handle defer connect in mptcp_sendmsg
- 91b572e341d3: mptcp: poll allow write call before actual connect

- e203d313c6a9: Squash to "mptcp: propagate fastclose error": use
'do_error' defined in this patch from Paolo

- Results: 617e33bdd07f..7830189b084e (export)


Tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20220923T174545

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
Re: [PATCH mptcp-next v3 0/4] mptcp: add support for TCP_FASTOPEN_CONNECT, sender side only
Posted by Paolo Abeni 1 year, 6 months ago
On Fri, 2022-09-23 at 14:19 +0200, Benjamin Hesmans wrote:
> The series only considers the sender side.
> 
> Compared to the previous RFC patches, these ones focus on
> the sender side only. It corresponds to the 4 first patches from the RFC
> series.
> 
> The sending part is less complex and even if it looks like we are
> converging for the receive part, there are still discussions on-going
> there.
> 
> Again, thank you Dmytro for the previous work done. As already discussed
> on the ML and meeting, this approach was slightly different from what
> Dmytro originally proposed. Here tcp_sendmsg_fastopen() is exported and
> re-used and TCP_FASTOPEN_CONNECT is supported.
> 
> MSG_FASTOPEN will be handled by Dmytro's patches.
> 
> Individual changelogs have been added per patch.
> 
> We would like to credit Sébastien Barré, Gregory Detal, Olivier
> Bonaventure and Christoph Paasch for the original idea of supporting TFO
> in MPTCP, see https://datatracker.ietf.org/doc/draft-barre-mptcp-tfo/
> 
> It would be very nice to have these patches accepted in the future
> kernel 6.1 which will be the next LTS picked by many vendors: the
> modifications are quite small, well isolated and re-using what is done
> in TCP for years.
> 
> v3:
> - Add Dmytro SoB as kindly asked at the last meeting, the code is still
>   the same.
> 
> v2:
> - Drop support for MSG_FASTOPEN because we were not sure that it was the
>   correct way to do it.
> - latest patch of the series: apply comment from Paolo concerning
>   mptcp_poll()
> 
> Benjamin Hesmans (3):
>   mptcp: add TCP_FASTOPEN_CONNECT socket option
>   tcp: export tcp_sendmsg_fastopen
>   mptcp: poll allow write call before actual connect
> 
> Dmytro Shytyi (1):
>   mptcp: handle defer connect in mptcp_sendmsg
> 
>  include/net/tcp.h    |  2 ++
>  net/ipv4/tcp.c       |  5 ++---
>  net/mptcp/protocol.c | 26 ++++++++++++++++++++++++++
>  net/mptcp/sockopt.c  | 19 ++++++++++++++++++-
>  4 files changed, 48 insertions(+), 4 deletions(-)

As noted in last public mtg code-wise LGTM, thanks!

Acked-by: Paolo Abeni <pabeni@redhat.com>