public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/4] mptcp: add TCP_NOTSENT_LOWAT sockopt support
@ 2024-03-01 17:43 Matthieu Baerts (NGI0)
  2024-03-01 17:43 ` [PATCH net-next 1/4] mptcp: cleanup writer wake-up Matthieu Baerts (NGI0)
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-03-01 17:43 UTC (permalink / raw)
  To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni
  Cc: netdev, linux-kernel, Matthieu Baerts (NGI0)

Patch 3 does the magic of adding TCP_NOTSENT_LOWAT support, all the
other ones are minor cleanup seen along when working on the new feature.

Note that this feature relies on the existing accounting for snd_nxt.
Such accounting is not 110% accurate as it tracks the most recent
sequence number queued to any subflow, and not the actual sequence
number sent on the wire. Paolo experimented a lot, trying to implement
the latter, and in the end it proved to be both "too complex" and "not
necessary".

The complexity raises from the need for additional lock and a lot of
refactoring to introduce such protections without adding significant
overhead. Additionally, snd_nxt is currently used and exposed with the
current semantic by the internal packet scheduling. Introducing a
different tracking will still require us to keep the old one.

More interestingly, a more accurate tracking could be not strictly
necessary: as the MPTCP socket enqueues data to the subflows only up to
the available send window, any enqueue data is sent on the wire
instantly, without any blocking operation short or a drop in the tx path
at the nft or TC layer.

Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Paolo Abeni (4):
      mptcp: cleanup writer wake-up
      mptcp: avoid some duplicate code in socket option handling
      mptcp: implement TCP_NOTSENT_LOWAT support
      mptcp: cleanup SOL_TCP handling

 net/mptcp/protocol.c | 54 ++++++++++++++++++++++++++-------------
 net/mptcp/protocol.h | 42 +++++++++++++++++++++++--------
 net/mptcp/sockopt.c  | 71 +++++++++++++++++++++++-----------------------------
 3 files changed, 101 insertions(+), 66 deletions(-)
---
base-commit: e960825709330cb199d209740326cec37e8c419d
change-id: 20240301-upstream-net-next-20240301-mptcp-tcp_notsent_lowat-770cab93d253

Best regards,
-- 
Matthieu Baerts (NGI0) <matttbe@kernel.org>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-03-04 11:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-01 17:43 [PATCH net-next 0/4] mptcp: add TCP_NOTSENT_LOWAT sockopt support Matthieu Baerts (NGI0)
2024-03-01 17:43 ` [PATCH net-next 1/4] mptcp: cleanup writer wake-up Matthieu Baerts (NGI0)
2024-03-01 17:43 ` [PATCH net-next 2/4] mptcp: avoid some duplicate code in socket option handling Matthieu Baerts (NGI0)
2024-03-01 17:43 ` [PATCH net-next 3/4] mptcp: implement TCP_NOTSENT_LOWAT support Matthieu Baerts (NGI0)
2024-03-01 17:43 ` [PATCH net-next 4/4] mptcp: cleanup SOL_TCP handling Matthieu Baerts (NGI0)
2024-03-04 11:00 ` [PATCH net-next 0/4] mptcp: add TCP_NOTSENT_LOWAT sockopt support patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox