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
next 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