Merge branch 'mptcp-improve-multiple-xmit-streams-support'
authorJakub Kicinski <kuba@kernel.org>
Mon, 16 Nov 2020 18:46:10 +0000 (10:46 -0800)
committerJakub Kicinski <kuba@kernel.org>
Mon, 16 Nov 2020 18:46:11 +0000 (10:46 -0800)
commit72308ecbf33b145641aba61071be31a85ebfd92c
tree99955cee5d38f5e3f121272f68d174d3529e8c92
parentc0a645a7f94409043b5b1d577590bee9b2ce5333
parent7ed90803a213736290bdcf971764ddb8ff3fa44f
Merge branch 'mptcp-improve-multiple-xmit-streams-support'

Paolo Abeni says:

====================
mptcp: improve multiple xmit streams support

This series improves MPTCP handling of multiple concurrent
xmit streams.

The to-be-transmitted data is enqueued to a subflow only when
the send window is open, keeping the subflows xmit queue shorter
and allowing for faster switch-over.

The above requires a more accurate msk socket state tracking
and some additional infrastructure to allow pushing the data
pending in the msk xmit queue as soon as the MPTCP's send window
opens (patches 6-10).

As a side effect, the MPTCP socket could enqueue data to subflows
after close() time - to completely spooling the data sitting in the
msk xmit queue. Dealing with the requires some infrastructure and
core TCP changes (patches 1-5)

Finally, patches 11-12 introduce a more accurate tracking of the other
end's receive window.

Overall this refactor the MPTCP xmit path, without introducing
new features - the new code is covered by the existing self-tests.

v2 -> v3:
 - rebased,
 - fixed checkpatch issue in patch 1/13
 - fixed some state tracking issues in patch 8/13

v1 -> v2:
 - this is just a repost, to cope with patchwork issues, no changes
   at all
====================

Link: https://lore.kernel.org/r/cover.1605458224.git.pabeni@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>