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
v3 -> v4:
-refactor mptcp_pm_add_addr_received() and
mptcp_event_addr_announced() to eliminate a param
-add and use new internal API mptcp_pm_is_kernel()
-bypass accounting fo non-kernel PM managed connections
-call lsk_list_find() after a failed lsk_list_find_or_create()
for a chance to retrieve a recently created lsk by a simultaneous
call
v4 -> v5:
-Fixed error: implicit declaration of function
'mptcp_pm_nl_create_listen_socket'
Kishen Maloor (8):
mptcp: bypass in-kernel PM restrictions for 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 | 12 +-
net/mptcp/pm_netlink.c | 222 ++++++++++++++++++++++++++++++++-----
net/mptcp/protocol.c | 5 +-
net/mptcp/protocol.h | 21 +++-
net/mptcp/subflow.c | 4 +-
7 files changed, 228 insertions(+), 42 deletions(-)
base-commit: a6d509111fdeec203af494abc83af6e746d3519f
--
2.31.1