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] [RFC PATCH 0/5] mptcp: fallback socket cleanup
Date: Fri, 06 Dec 2019 13:22:42 +0100	[thread overview]
Message-ID: <cover.1575634848.git.pabeni@redhat.com> (raw)

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

This is a quite early RFC to acquire as early feedback as possible.
I did self-tests a few times on 3/5 and on patch 5/5 without failure, but
likely some bugs are still present.

The first 3 patches in this series:
- clarify and cleanup the TCP fallback handling
- fixes setsockopt()/getsockopt() for connected/unbound sockets

The last 2 patches do more aggressive/invasive cleanup:
- drop the 'fallback' field so that we always use the conn_list
- drop the nested socket in mptcp_finish_connect()
- remove the lock/lookup/get/unlock dance in most case (due the the above)

After all the above, performance for connection fallen back to plain TCP should
be almost the same of TCP connection on unpacked kernel.

Addittionally 'nc' and 'netperf' now run successfully when forced to MPTCP.
The latter still report a non fatal error at connection closing time as it
performs:

getsockopt(4, SOL_TCP, TCP_MAXSEG, //...);
getsockopt(4, SOL_TCP, TCP_INFO, //...);

which is still unsupported after that the mp capable handshake is started.

For the records on the debug build I'm using netperf scores better result
with MPTCP that with plain TCP ;) [agreed, completely irrelevant, still nice]

The series applies at selftests and is unsquashed - will require quite a bit
of work there and more work to rebase/adjust the patches after kselftest.
I'll start that after the pending patches are in.

_Any_ feedback _very_ welcome!

Paolo Abeni (5):
  mptcp: clear 'is_tcp' socket flag when the MP_CAPABLE handshake fails
  mptcp: pass subflow to mptcp_finish_connect()
  mptcp: cleanup fallback handling
  mptcp: remove 'fallback' field
  mptcp: avoid acquiring the msk lock in mptcp_finisch_connect()

 net/mptcp/options.c  |   3 +
 net/mptcp/protocol.c | 342 +++++++++++++++++++++++--------------------
 net/mptcp/protocol.h |   4 +-
 net/mptcp/subflow.c  |   4 +-
 4 files changed, 189 insertions(+), 164 deletions(-)

-- 
2.21.0

                 reply	other threads:[~2019-12-06 12:22 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.1575634848.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.