mptcp: really share subflow snd_wnd
authorPaolo Abeni <pabeni@redhat.com>
Wed, 4 May 2022 21:54:04 +0000 (14:54 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 6 May 2022 02:00:14 +0000 (19:00 -0700)
commitb713d0067574e15cddd08ee7f25acd535b7437cf
tree2379e67d7914fc6b133835c13d985ab337b74369
parent10b4a11fe70f295426fb4ebbb8b20370885c3806
mptcp: really share subflow snd_wnd

As per RFC, mptcp subflows use a "shared" snd_wnd: the effective
window is the maximum among the current values received on all
subflows. Without such feature a data transfer using multiple
subflows could block.

Window sharing is currently implemented in the RX side:
__tcp_select_window uses the mptcp-level receive buffer to compute
the announced window.

That is not enough: the TCP stack will stick to the window size
received on the given subflow; we need to propagate the msk window
value on each subflow at xmit time.

Change the packet scheduler to ignore the subflow level window
and use instead the msk level one

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/protocol.c