All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni at redhat.com>
To: mptcp at lists.01.org
Subject: [MPTCP] [PATCH net-next v2 00/13] mptcp: improve multiple xmit streams support
Date: Thu, 12 Nov 2020 18:45:20 +0100	[thread overview]
Message-ID: <cover.1605199807.git.pabeni@redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2023 bytes --]

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.

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   | 969 ++++++++++++++++++++++++-----------------
 net/mptcp/protocol.h   |  72 ++-
 net/mptcp/subflow.c    |  33 +-
 8 files changed, 758 insertions(+), 487 deletions(-)

-- 
2.26.2

WARNING: multiple messages have this Message-ID (diff)
From: Paolo Abeni <pabeni@redhat.com>
To: netdev@vger.kernel.org
Cc: Eric Dumazet <edumazet@google.com>,
	mptcp@lists.01.org, Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net-next v2 00/13] mptcp: improve multiple xmit streams support
Date: Thu, 12 Nov 2020 18:45:20 +0100	[thread overview]
Message-ID: <cover.1605199807.git.pabeni@redhat.com> (raw)

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.

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   | 969 ++++++++++++++++++++++++-----------------
 net/mptcp/protocol.h   |  72 ++-
 net/mptcp/subflow.c    |  33 +-
 8 files changed, 758 insertions(+), 487 deletions(-)

-- 
2.26.2


             reply	other threads:[~2020-11-12 17:45 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-12 17:45 Paolo Abeni [this message]
2020-11-12 17:45 ` [PATCH net-next v2 00/13] mptcp: improve multiple xmit streams support Paolo Abeni
  -- strict thread matches above, loose matches on Subject: below --
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 01/13] tcp: factor out tcp_build_frag() Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 02/13] mptcp: use tcp_build_frag() Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 03/13] tcp: factor out __tcp_close() helper Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 04/13] mptcp: introduce mptcp_schedule_work Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 05/13] mptcp: reduce the arguments of mptcp_sendmsg_frag Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 06/13] mptcp: add accounting for pending data Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 07/13] mptcp: introduce MPTCP snd_nxt Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 08/13] mptcp: refactor shutdown and close Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 09/13] mptcp: move page frag allocation in mptcp_sendmsg() Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 10/13] mptcp: try to push pending data on snd una updates Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 11/13] mptcp: rework poll+nospace handling Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 12/13] mptcp: keep track of advertised windows right edge Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 17:45 [MPTCP] [PATCH net-next v2 13/13] mptcp: send explicit ack on delayed ack_seq incr Paolo Abeni
2020-11-12 17:45 ` Paolo Abeni
2020-11-12 23:08 [MPTCP] Re: [PATCH net-next v2 01/13] tcp: factor out tcp_build_frag() Jakub Kicinski
2020-11-12 23:08 ` Jakub Kicinski
2020-11-12 23:12 [MPTCP] " Jakub Kicinski
2020-11-12 23:12 ` Jakub Kicinski
2020-11-13 10:38 [MPTCP] " Paolo Abeni
2020-11-13 10:38 ` Paolo Abeni
2020-11-14 21:02 [MPTCP] " Jakub Kicinski
2020-11-14 21:02 ` Jakub Kicinski
2020-11-14 21:05 [MPTCP] Re: [PATCH net-next v2 00/13] mptcp: improve multiple xmit streams support Jakub Kicinski
2020-11-14 21:05 ` Jakub Kicinski
2020-11-15 15:46 [MPTCP] " Paolo Abeni
2020-11-15 15:46 ` Paolo Abeni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1605199807.git.pabeni@redhat.com \
    --to=unknown@example.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.