Message ID | 20240301-upstream-net-next-20240301-mptcp-tcp_notsent_lowat-v1-0-415f0e8ed0e1@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | mptcp: add TCP_NOTSENT_LOWAT sockopt support | expand |
Hello: This series was applied to netdev/net-next.git (main) by David S. Miller <davem@davemloft.net>: On Fri, 01 Mar 2024 18:43:43 +0100 you wrote: > 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". > > [...] Here is the summary with links: - [net-next,1/4] mptcp: cleanup writer wake-up https://git.kernel.org/netdev/net-next/c/037db6ea57da - [net-next,2/4] mptcp: avoid some duplicate code in socket option handling https://git.kernel.org/netdev/net-next/c/a74762675f70 - [net-next,3/4] mptcp: implement TCP_NOTSENT_LOWAT support https://git.kernel.org/netdev/net-next/c/29b5e5ef8739 - [net-next,4/4] mptcp: cleanup SOL_TCP handling https://git.kernel.org/netdev/net-next/c/7f71a337b515 You are awesome, thank you!
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,