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 v2 0/12] pm netlink: followup and fixes
Date: Thu, 05 Mar 2020 15:46:37 +0100	[thread overview]
Message-ID: <cover.1583418571.git.pabeni@redhat.com> (raw)

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

This series bring some fixes and improvement related to the PM netlink,
specifically:

- renames 4th_ack subflow field to 'fully_established':
  this is hopefully more accurate
- implements support to enforce the maximum number of subflows per msk
- implements MP_JOIN 3rd ack retransmission and 4th ack delivery:
  this [ab]use the TCP delack timer. I personally think the idea is nice and
  avoids changes to the core TCP stack, but I guess it could be disputed
- more accurare 'fully established' accounting as per RFC
- drop the msk level 'fully_established' field, as we can use the first subflow
  status without additional locking instead. This simplify core PM event
  handling
- adds more MP_JOIN related mib counters
- update the PM netlink to enforce a configurable maximum number of subflows
  per msk
- extend the pm netlink self-tests to check the above APIs
- uses amost all the above to fix the currently disable mp join self-tests and
 re-enable them

Note: mp join self tests are still unstable, e.g. can fail randomly, due to an
old race between mptcp_token_update_accept() and mptcp_token_get_sock(): e.g.
a client may legitly try to create a subflow after that the first one is fully
established but before the server has accepted the initial socket:
mptcp_token_get_sock() will fail and MP_JOIN will fail too, incrementing
MPTCP_MIB_JOINNOTOKEN.
I think the above should be addressed in a separate series - otherwise this one
will be too big.

The up2date branch for this series (v2) is available here:

https://github.com/pabeni/mptcp/tree/mptcp_net-next_part3_7 

v1 -> v2:
 - comments and readability changes in patch 04

 include/uapi/linux/mptcp.h                      |   23 ++-
 net/mptcp/diag.c                                |    4 
 net/mptcp/mib.c                                 |    3 
 net/mptcp/mib.h                                 |    3 
 net/mptcp/options.c                             |  141 +++++++++++++++++-------
 net/mptcp/pm.c                                  |   35 ++++-
 net/mptcp/pm_netlink.c                          |   93 +++++++++++----
 net/mptcp/protocol.c                            |   23 ++-
 net/mptcp/protocol.h                            |    8 +
 net/mptcp/subflow.c                             |    9 +
 tools/testing/selftests/net/mptcp/mptcp_join.sh |  100 +++++++++++++----
 tools/testing/selftests/net/mptcp/pm_netlink.sh |   17 ++
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c   |   46 ++++---
 13 files changed, 364 insertions(+), 141 deletions(-)

                 reply	other threads:[~2020-03-05 14:46 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.1583418571.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.