MPTCP Linux Development
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: mptcp@lists.linux.dev
Subject: [PATCH v2 mptcp-next 00/13] mptcp: get rid of msk->subflow
Date: Fri, 14 Jul 2023 13:29:31 +0200	[thread overview]
Message-ID: <cover.1689334116.git.pabeni@redhat.com> (raw)

The mptcp protocol maintains an additional struct socket per connection,
mainly to be able to use easily tcp-level struct socket operations.

That lead to several ill side effects, beyond the quite unfortunate/
confusing field name
- active and passive sockets behavior is incosistent, as only active
  ones have not NULL msk->subflow, leading to different error handling
  (and different error code returned to the user-space) in several
  places.
- active sockets uses an unneeded, larger amount of memory
- passive sockets can't successfully go through accept()/disconnect()
  accept()

This series address all the above finally getting rid of the blamed
field. The first patch is a minor clean-up, in the next 11 patches
msk->subflow usage is sistematically removed from the mptcp protocol,
replacing it with direct msk->first usage, eventually introducing new
core helpers as needed.

The final patch finally dispose the field, and it's the only patch in
the series intened to produce functional changes.

v1 -> v2:
 - dropped first patch (already applied)
 - a bunch of typos and comments, the only patches with code changes
   are 7/13, 9/13, 13/13, see the individual changelog for the
   details.

Paolo Abeni (13):
  mptcp: avoid unneeded mptcp_token_destroy() calls
  mptcp: avoid additional __inet_stream_connect() call
  mptcp: avoid subflow socket usage in mptcp_get_port()
  net: factor out inet{,6}_bind_sk helpers
  mptcp: mptcp: avoid additional indirection in mptcp_bind()
  net: factor out __inet_listen_sk() helper
  mptcp: avoid additional indirection in mptcp_listen()
  mptcp: avoid additional indirection in mptcp_poll()
  mptcp: avoid unneeded indirection in mptcp_stream_accept()
  mptcp: avoid additional indirection in sockopt
  mptcp: avoid ssock usage in mptcp_pm_nl_create_listen_socket()
  mptcp: change the mpc check helper to return a sk
  mptcp: get rid of msk->subflow

 include/net/inet_common.h |   2 +
 include/net/ipv6.h        |   1 +
 net/ipv4/af_inet.c        |  46 ++++++----
 net/ipv6/af_inet6.c       |  10 ++-
 net/mptcp/pm_netlink.c    |  30 ++++---
 net/mptcp/protocol.c      | 177 +++++++++++++++++++-------------------
 net/mptcp/protocol.h      |  15 ++--
 net/mptcp/sockopt.c       |  65 +++++++-------
 8 files changed, 181 insertions(+), 165 deletions(-)

-- 
2.41.0


             reply	other threads:[~2023-07-14 11:29 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-14 11:29 Paolo Abeni [this message]
2023-07-14 11:29 ` [PATCH v2 mptcp-next 01/13] mptcp: avoid unneeded mptcp_token_destroy() calls Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 02/13] mptcp: avoid additional __inet_stream_connect() call Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 03/13] mptcp: avoid subflow socket usage in mptcp_get_port() Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 04/13] net: factor out inet{,6}_bind_sk helpers Paolo Abeni
2023-07-14 23:21   ` Mat Martineau
2023-07-14 11:29 ` [PATCH v2 mptcp-next 05/13] mptcp: mptcp: avoid additional indirection in mptcp_bind() Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 06/13] net: factor out __inet_listen_sk() helper Paolo Abeni
2023-07-14 23:21   ` Mat Martineau
2023-07-14 11:29 ` [PATCH v2 mptcp-next 07/13] mptcp: avoid additional indirection in mptcp_listen() Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 08/13] mptcp: avoid additional indirection in mptcp_poll() Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 09/13] mptcp: avoid unneeded indirection in mptcp_stream_accept() Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 10/13] mptcp: avoid additional indirection in sockopt Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 11/13] mptcp: avoid ssock usage in mptcp_pm_nl_create_listen_socket() Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 12/13] mptcp: change the mpc check helper to return a sk Paolo Abeni
2023-07-14 11:29 ` [PATCH v2 mptcp-next 13/13] mptcp: get rid of msk->subflow Paolo Abeni
2023-07-14 12:57   ` mptcp: get rid of msk->subflow: Tests Results MPTCP CI
2023-07-15  0:25   ` MPTCP CI
2023-07-14 23:20 ` [PATCH v2 mptcp-next 00/13] mptcp: get rid of msk->subflow Mat Martineau
2023-07-17 13:58 ` Matthieu Baerts

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.1689334116.git.pabeni@redhat.com \
    --to=pabeni@redhat.com \
    --cc=mptcp@lists.linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox