netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mat Martineau <mathew.j.martineau@linux.intel.com>
To: netdev@vger.kernel.org
Cc: Mat Martineau <mathew.j.martineau@linux.intel.com>,
	eric.dumazet@gmail.com
Subject: [PATCH net-next v3 00/17] Multipath TCP part 3: Multiple subflows and path management
Date: Fri, 27 Mar 2020 14:48:36 -0700	[thread overview]
Message-ID: <20200327214853.140669-1-mathew.j.martineau@linux.intel.com> (raw)

v2 -> v3: Remove 'inline' in .c files, fix uapi bit macros, and rebase.

v1 -> v2: Rebase on current net-next, fix for netlink limit setting,
and update .gitignore for selftest.

This patch set allows more than one TCP subflow to be established and
used for a multipath TCP connection. Subflows are added to an existing
connection using the MP_JOIN option during the 3-way handshake. With
multiple TCP subflows available, sent data is now stored in the MPTCP
socket so it may be retransmitted on any TCP subflow if there is no
DATA_ACK before a timeout. If an MPTCP-level timeout occurs, data is
retransmitted using an available subflow. Storing this sent data
requires the addition of memory accounting at the MPTCP level, which was
previously delegated to the single subflow. Incoming DATA_ACKs now free
data from the MPTCP-level retransmit buffer.

IP addresses available for new subflow connections can now be advertised
and received with the ADD_ADDR option, and the corresponding REMOVE_ADDR
option likewise advertises that an address is no longer available.

The MPTCP path manager netlink interface has commands to set in-kernel
limits for the number of concurrent subflows and control the
advertisement of IP addresses between peers.

To track and debug MPTCP connections there are new MPTCP MIB counters,
and subflow context can be requested using inet_diag. The MPTCP
self-tests now validate multiple-subflow operation and the netlink path
manager interface.

Clone/fetch:
https://github.com/multipath-tcp/mptcp_net-next.git (tag: netdev-for-5.7-part3-v3)

Browse:
https://github.com/multipath-tcp/mptcp_net-next/tree/netdev-for-5.7-part3-v3

Thank you for your review. You can find us at mptcp@lists.01.org and
https://is.gd/mptcp_upstream


Davide Caratti (1):
  mptcp: allow dumping subflow context to userspace

Florian Westphal (2):
  mptcp: allow partial cleaning of rtx head dfrag
  mptcp: add and use MIB counter infrastructure

Paolo Abeni (9):
  mptcp: update per unacked sequence on pkt reception
  mptcp: queue data for mptcp level retransmission
  mptcp: introduce MPTCP retransmission timer
  mptcp: implement memory accounting for mptcp rtx queue
  mptcp: rework mptcp_sendmsg_frag to accept optional dfrag
  mptcp: implement and use MPTCP-level retransmission
  mptcp: add netlink-based PM
  selftests: add PM netlink functional tests
  selftests: add test-cases for MPTCP MP_JOIN

Peter Krystad (5):
  mptcp: Add ADD_ADDR handling
  mptcp: Add path manager interface
  mptcp: Add handling of incoming MP_JOIN requests
  mptcp: Add handling of outgoing MP_JOIN requests
  mptcp: Implement path manager interface commands

 MAINTAINERS                                   |   1 +
 include/linux/tcp.h                           |  26 +-
 include/net/mptcp.h                           |  26 +
 include/net/netns/mib.h                       |   3 +
 include/uapi/linux/inet_diag.h                |   1 +
 include/uapi/linux/mptcp.h                    |  89 ++
 net/ipv4/af_inet.c                            |   4 +
 net/ipv4/proc.c                               |   2 +
 net/ipv4/tcp_minisocks.c                      |   6 +
 net/mptcp/Makefile                            |   3 +-
 net/mptcp/crypto.c                            |  17 +-
 net/mptcp/diag.c                              | 104 +++
 net/mptcp/mib.c                               |  69 ++
 net/mptcp/mib.h                               |  40 +
 net/mptcp/options.c                           | 515 ++++++++++-
 net/mptcp/pm.c                                | 242 +++++
 net/mptcp/pm_netlink.c                        | 857 ++++++++++++++++++
 net/mptcp/protocol.c                          | 588 ++++++++++--
 net/mptcp/protocol.h                          | 187 +++-
 net/mptcp/subflow.c                           | 337 ++++++-
 net/mptcp/token.c                             |  27 +
 tools/testing/selftests/net/mptcp/.gitignore  |   1 +
 tools/testing/selftests/net/mptcp/Makefile    |   7 +-
 .../selftests/net/mptcp/mptcp_connect.c       |  28 +-
 .../testing/selftests/net/mptcp/mptcp_join.sh | 357 ++++++++
 .../testing/selftests/net/mptcp/pm_netlink.sh | 130 +++
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 616 +++++++++++++
 27 files changed, 4158 insertions(+), 125 deletions(-)
 create mode 100644 include/uapi/linux/mptcp.h
 create mode 100644 net/mptcp/diag.c
 create mode 100644 net/mptcp/mib.c
 create mode 100644 net/mptcp/mib.h
 create mode 100644 net/mptcp/pm.c
 create mode 100644 net/mptcp/pm_netlink.c
 create mode 100755 tools/testing/selftests/net/mptcp/mptcp_join.sh
 create mode 100755 tools/testing/selftests/net/mptcp/pm_netlink.sh
 create mode 100644 tools/testing/selftests/net/mptcp/pm_nl_ctl.c


base-commit: 5bb7357f45315138f623d08a615d23dd6ac26cf3
-- 
2.26.0


             reply	other threads:[~2020-03-27 21:49 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-27 21:48 Mat Martineau [this message]
2020-03-27 21:48 ` [PATCH net-next v3 01/17] mptcp: Add ADD_ADDR handling Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 02/17] mptcp: Add path manager interface Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 03/17] mptcp: Add handling of incoming MP_JOIN requests Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 04/17] mptcp: Add handling of outgoing " Mat Martineau
2021-10-27  0:54   ` Eric Dumazet
2021-10-27  8:45     ` Paolo Abeni
2021-10-27 15:06       ` Paolo Abeni
2021-10-27 20:38       ` Eric Dumazet
2020-03-27 21:48 ` [PATCH net-next v3 05/17] mptcp: Implement path manager interface commands Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 06/17] mptcp: update per unacked sequence on pkt reception Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 07/17] mptcp: queue data for mptcp level retransmission Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 08/17] mptcp: introduce MPTCP retransmission timer Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 09/17] mptcp: implement memory accounting for mptcp rtx queue Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 10/17] mptcp: allow partial cleaning of rtx head dfrag Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 11/17] mptcp: rework mptcp_sendmsg_frag to accept optional dfrag Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 12/17] mptcp: implement and use MPTCP-level retransmission Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 13/17] mptcp: allow dumping subflow context to userspace Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 14/17] mptcp: add and use MIB counter infrastructure Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 15/17] mptcp: add netlink-based PM Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 16/17] selftests: add PM netlink functional tests Mat Martineau
2020-03-27 21:48 ` [PATCH net-next v3 17/17] selftests: add test-cases for MPTCP MP_JOIN Mat Martineau
2020-03-30  5:15 ` [PATCH net-next v3 00/17] Multipath TCP part 3: Multiple subflows and path management David Miller

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=20200327214853.140669-1-mathew.j.martineau@linux.intel.com \
    --to=mathew.j.martineau@linux.intel.com \
    --cc=eric.dumazet@gmail.com \
    --cc=netdev@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).