Skip to content

mptcp: improve multiple xmit streams support

Paolo Abeni mptcp netdev 3 versions – Applied

Status from this message: This series was applied to netdev/net-next.git (refs/heads/master):

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest13 patches 1 replyApplied 13/13
  2. v213 patches 6 repliesSuperseded
  3. v113 patches 2 repliesSuperseded

Changes in v3 from the cover letter

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

Patches in v3 All 13 applied

#Subject and filesSizeRepliesApplied
1/13tcp: factor out tcp_build_frag()include/net/tcp.h net/ipv4/tcp.c+70 -520 repliesApplied
2/13mptcp: use tcp_build_frag()net/mptcp/protocol.c+8 -170 repliesApplied
3/13tcp: factor out __tcp_close() helperinclude/net/tcp.h net/ipv4/tcp.c+8 -20 repliesApplied
4/13mptcp: introduce mptcp_schedule_worknet/mptcp/pm.c net/mptcp/protocol.c net/mptcp/protocol.h+24 -160 repliesApplied
5/13mptcp: reduce the arguments of mptcp_sendmsg_fragnet/mptcp/protocol.c+29 -240 repliesApplied
6/13mptcp: add accounting for pending datanet/mptcp/protocol.c net/mptcp/protocol.h+36 -30 repliesApplied
7/13mptcp: introduce MPTCP snd_nxtnet/mptcp/options.c net/mptcp/protocol.c net/mptcp/protocol.h+16 -120 repliesApplied
8/13mptcp: refactor shutdown and closenet/mptcp/options.c net/mptcp/pm_netlink.c net/mptcp/protocol.c +2 more+273 -1100 repliesApplied
9/13mptcp: move page frag allocation in mptcp_sendmsg()net/mptcp/protocol.c+189 -2170 repliesApplied
10/13mptcp: try to push pending data on snd una updatesnet/mptcp/protocol.c+3 -00 repliesApplied
11/13mptcp: rework poll+nospace handlingnet/mptcp/protocol.c net/mptcp/protocol.h net/mptcp/subflow.c+54 -510 repliesApplied
12/13mptcp: keep track of advertised windows right edgenet/mptcp/options.c net/mptcp/protocol.c net/mptcp/protocol.h+69 -50 repliesApplied
13/13mptcp: send explicit ack on delayed ack_seq incrnet/mptcp/protocol.c+21 -130 repliesApplied

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCH net-next v3 00/13] 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 report, to cope with patchwork issues, no changes at all

Florian Westphal (2):
mptcp: rework poll+nospace handling
mptcp: keep track of advertised windows right edge

Paolo Abeni (11):
tcp: factor out tcp_build_frag()
mptcp: use tcp_build_frag()
tcp: factor out __tcp_close() helper
mptcp: introduce mptcp_schedule_work
mptcp: reduce the arguments of mptcp_sendmsg_frag
mptcp: add accounting for pending data
mptcp: introduce MPTCP snd_nxt
mptcp: refactor shutdown and close
mptcp: move page frag allocation in mptcp_sendmsg()
mptcp: try to push pending data on snd una updates
mptcp: send explicit ack on delayed ack_seq incr

 include/net/tcp.h      |   4 +
 net/ipv4/tcp.c         | 128 +++---
 net/mptcp/options.c    |  30 +-
 net/mptcp/pm.c         |   3 +-
 net/mptcp/pm_netlink.c |   6 +-
 net/mptcp/protocol.c   | 998 ++++++++++++++++++++++++-----------------
 net/mptcp/protocol.h   |  72 ++-
 net/mptcp/subflow.c    |  33 +-
 8 files changed, 776 insertions(+), 498 deletions(-)
Signature · 1 line
2.26.2