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 0/3] mptcp: just another recvmsg refactor
Date: Tue, 15 Oct 2019 17:44:41 +0200	[thread overview]
Message-ID: <cover.1571152990.git.pabeni@redhat.com> (raw)

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

This start constructing the instrucutre to support pulling data from 
multiple subflow. At the current stage uses a very simply approach, dropping
any out-of-order data and reading from any subflow with valid data.

The above should work quite nicely in active backup scenario and possibly
even with multiple subflows sending data concurrently - with a low bwidth and
a huge number of retransmissions.

Note that this rewrite completely the recvmsg() main loop to mirror more closely
the TCP recvmsg() main loop, likely fixing some bug in respect to signal and
error condition handling.

I think this 3 patches should be squashed into
"mptcp: Implement MPTCP receive path", but the resulting one will be likely
too huge; possibly splitting the resulting code in 2 different patches would
be nicer. Additionally "mptcp: Implement MPTCP receive path" has some chunks
that should be likely moved to some other patches (e.g. ULP RCU fixes).

What if - after the eventuall accept - I publish the resulting code of the 
above squashing somewhere?


RFC -> v1
 - address Mat's comment on patch 2/3, see individual changelog for the details

Paolo Abeni (3):
  mptcp: move some helper into the header file
  mptcp: flush duplicate data at data_ready() time
  mptcp: recvmsg() can drain data from multiple subflows

 net/mptcp/protocol.c | 360 +++++++++++++------------------------------
 net/mptcp/protocol.h |  31 +++-
 net/mptcp/subflow.c  | 289 +++++++++++++++++++++++++++++++++-
 3 files changed, 422 insertions(+), 258 deletions(-)

-- 
2.21.0

                 reply	other threads:[~2019-10-15 15:44 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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.1571152990.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.