[PATCH net-next 0/7] mptcp: improve accept() and disconnect()

Paolo Abeni posted 7 patches 3 weeks, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1636545174.git.pabeni@redhat.com
Maintainers: Mat Martineau <mathew.j.martineau@linux.intel.com>, "David S. Miller" <davem@davemloft.net>, Shuah Khan <shuah@kernel.org>, Jakub Kicinski <kuba@kernel.org>, Matthieu Baerts <matthieu.baerts@tessares.net>
net/mptcp/options.c                           |  57 +++++--
net/mptcp/pm.c                                |  10 +-
net/mptcp/pm_netlink.c                        |   3 +
net/mptcp/protocol.c                          | 144 ++++++++++++------
net/mptcp/protocol.h                          |  16 +-
net/mptcp/subflow.c                           |   1 -
net/mptcp/token.c                             |   1 +
.../selftests/net/mptcp/mptcp_connect.c       | 119 +++++++++++++--
.../selftests/net/mptcp/mptcp_connect.sh      |  38 ++++-
9 files changed, 304 insertions(+), 85 deletions(-)

[PATCH net-next 0/7] mptcp: improve accept() and disconnect()

Posted by Paolo Abeni 3 weeks, 4 days ago
As outlined in the public mtg, mptcp_accept() is currently quite
suboptimal, both from performance and code complexity

This series tries to clean it up, enforcing a wider lifetime for
the initial subflow, so that we don't need to acquire additional
references there.

To reach such goal we need to properly define the disconnect()
behavior, which is currently quite incomplete. Additionally allow
user-space to really disconnect established connections.

Disconnect() needs in turn an egress FASTCLOSE implementation,
added here according to option R (reset - the simpler form).

Finally, the self-tests need as pre-req Florian's patches implementing
SIOCOUTQ

RFC -> v1:
 - added patches 1/7, 3/7, 6/7, 7/7
 - added a few missing bits in patch 4/7

Paolo Abeni (7):
  mptcp: keep snd_una updated for fallback socket
  mptcp: never allow the PM to close a listener subflow
  mptcp: implement fastclose xmit path
  mptcp: full disconnect implementation
  mptcp: cleanup accept and poll
  mptcp: implement support for user-space disconnect
  mptcp: add disconnect selftests

 net/mptcp/options.c                           |  57 +++++--
 net/mptcp/pm.c                                |  10 +-
 net/mptcp/pm_netlink.c                        |   3 +
 net/mptcp/protocol.c                          | 144 ++++++++++++------
 net/mptcp/protocol.h                          |  16 +-
 net/mptcp/subflow.c                           |   1 -
 net/mptcp/token.c                             |   1 +
 .../selftests/net/mptcp/mptcp_connect.c       | 119 +++++++++++++--
 .../selftests/net/mptcp/mptcp_connect.sh      |  38 ++++-
 9 files changed, 304 insertions(+), 85 deletions(-)

-- 
2.33.1