This patch series contains fixes and enhancements related to
path management over MPTCP connections, particularly in support of
out-of-kernel PMs. The changes ensure that the required bits of
information are conveyed through MPTCP netlink events which
would be consumed by a path manager in making decisions, more
flexibility in establishing paths from either end of an MPTCP
connection, and better handling of listening sockets which serve
in MPJ handshakes.
v1 -> v2:
-fixed formatting
-check_fully_established: check for 3rd ACK retransmission only on passive
side of the MPJ handshake
v2 -> v3:
-subflow_simultaneous_connect: check for active subflow socket
-new helper lsk_list_find_or_create()
-updated mptcp_pm_nl_create_listen_socket() to take struct net* as param
-new addr flag MPTCP_PM_ADDR_FLAG_NO_LISTEN to skip creating a
listening socket in the kernel during an ADD_ADDR request
-reflect the pm.server_side attribute in the MPTCP_EVENT_CREATED
and MPTCP_EVENT_ESTABLISHED events
Kishen Maloor (8):
mptcp: do not restrict subflows with non-kernel PMs
mptcp: store remote id from MP_JOIN SYN/ACK in local ctx
mptcp: reflect remote port (not 0) in ANNOUNCED events
mptcp: establish subflows from either end of connection
mptcp: netlink: store per namespace list of refcounted listen socks
mptcp: netlink: store lsk ref in mptcp_pm_addr_entry
mptcp: attempt to add listening sockets for announced addrs
mptcp: expose server_side attribute in MPTCP netlink events
include/uapi/linux/mptcp.h | 2 +
net/mptcp/options.c | 4 +-
net/mptcp/pm.c | 8 +-
net/mptcp/pm_netlink.c | 210 ++++++++++++++++++++++++++++++++-----
net/mptcp/protocol.c | 5 +-
net/mptcp/protocol.h | 14 ++-
net/mptcp/subflow.c | 4 +-
7 files changed, 209 insertions(+), 38 deletions(-)
base-commit: 05854a699d27b11d8fb3217ec2e0dbf28ecb58e8
--
2.31.1