[PATCH mptcp-next 0/3] mptcp: support disabling Nagle's algorithm

Maxim Galaganov posted 3 patches 2 years, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20211123070708.2897469-1-max@internet.ru
Maintainers: Eric Dumazet <edumazet@google.com>, Matthieu Baerts <matthieu.baerts@tessares.net>, Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>, Mat Martineau <mathew.j.martineau@linux.intel.com>, David Ahern <dsahern@kernel.org>, Jakub Kicinski <kuba@kernel.org>, "David S. Miller" <davem@davemloft.net>
include/linux/tcp.h  |  2 ++
net/ipv4/tcp.c       |  4 +--
net/mptcp/protocol.c |  2 +-
net/mptcp/protocol.h |  5 +++-
net/mptcp/sockopt.c  | 70 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 79 insertions(+), 4 deletions(-)
[PATCH mptcp-next 0/3] mptcp: support disabling Nagle's algorithm
Posted by Maxim Galaganov 2 years, 4 months ago
Clients for MPTCP-enabled transparent proxies may experience unwanted
delays when Nagle's algorithm combines small packets into larger ones.

This series adds support for TCP_NODELAY socket option in [gs]etsockopt
for MPTCP sockets. It also adds TCP_CORK support since the two are
closely coupled.

Patch 1 exposes __tcp_sock_set_cork() and __tcp_sock_set_nodelay() for
use in patch 3.

Patch 2 exposes mptcp_check_and_set_pending() for setting the
MPTCP_PUSH_PENDING bit when cork is cleared or nodelay is set.

Patch 3 adds support for getting and setting the cork and nodelay
sockopts.

Maxim Galaganov (3):
  tcp: expose __tcp_sock_set_cork and __tcp_sock_set_nodelay
  mptcp: expose mptcp_check_and_set_pending
  mptcp: support TCP_CORK and TCP_NODELAY

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

-- 
2.33.1


Re: [PATCH mptcp-next 0/3] mptcp: support disabling Nagle's algorithm
Posted by Matthieu Baerts 2 years, 4 months ago
Hi Maxim, Paolo,

On 23/11/2021 08:07, Maxim Galaganov wrote:
> Clients for MPTCP-enabled transparent proxies may experience unwanted
> delays when Nagle's algorithm combines small packets into larger ones.
> 
> This series adds support for TCP_NODELAY socket option in [gs]etsockopt
> for MPTCP sockets. It also adds TCP_CORK support since the two are
> closely coupled.
> 
> Patch 1 exposes __tcp_sock_set_cork() and __tcp_sock_set_nodelay() for
> use in patch 3.
> 
> Patch 2 exposes mptcp_check_and_set_pending() for setting the
> MPTCP_PUSH_PENDING bit when cork is cleared or nodelay is set.
> 
> Patch 3 adds support for getting and setting the cork and nodelay
> sockopts.

Thank you for the patches, the new test and the review!

This series is now in our tree (features for net-next) with Paolo's Ack
and my RvB tags:

- 46bc37d252e9: tcp: expose __tcp_sock_set_cork and __tcp_sock_set_nodelay

- 6d902bda5f72: mptcp: expose mptcp_check_and_set_pending

- 54c2d9725869: mptcp: support TCP_CORK and TCP_NODELAY

- Results: 2cb2e25a2eea..ca3b812b57ae

Builds and tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20211129T162606
https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net