Merge branch 'mptcp-subflow-disconnected'
authorDavid S. Miller <davem@davemloft.net>
Wed, 31 Mar 2021 00:42:23 +0000 (17:42 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Mar 2021 00:42:23 +0000 (17:42 -0700)
commit65550f03e98b4dd9f5050ee8c463f30cae95ae90
tree9b5ae27e77ce92fd876dd7b6891cd9ca56c70229
parentb8128656a5edd23a91542c9da849cd878a54148d
parent5e287fe761495eb669b5e2543919bd5124edecf1
Merge branch 'mptcp-subflow-disconnected'

Mat Martineau says:

====================
MPTCP: Allow initial subflow to be disconnected

An MPTCP connection is aggregated from multiple TCP subflows, and can
involve multiple IP addresses on either peer. The addresses used in the
initial subflow connection are assigned address id 0 on each side of the
link. More addresses can be added and shared with the peer using address
IDs of 1 or larger. MPTCP in Linux shares non-zero address IDs across
all MPTCP connections in a net namespace, which allows userspace to
manage subflow connections across a number of sockets. However, this
makes the address with id 0 a special case, since the IP address
associated with id 0 is potentially different for each socket.

This patch set allows the initial subflow to be disconnected when
userspace specifies an address to remove using both id 0 and an IP
address, or when the peer sends an RM_ADDR for id 0.

Patches 1 and 3 implement the change for requests from the peer and
userspace, respectively.

Patch 2 consolidates some code for disconnecting subflows.

Patches 4-6 update the self tests to cover removal of subflows using
address id 0.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>