OSDN Git Service

mptcp: add netlink-based PM
authorPaolo Abeni <pabeni@redhat.com>
Fri, 27 Mar 2020 21:48:51 +0000 (14:48 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 30 Mar 2020 05:14:49 +0000 (22:14 -0700)
commit01cacb00b35cb62b139f07d5f84bcf0eeda8eff6
tree8d96829b4d6ca609c66fadf6d4f84a30f8380b81
parentfc518953bc9c8d7d33c6ab261995f5038f3c87f9
mptcp: add netlink-based PM

Expose a new netlink family to userspace to control the PM, setting:

 - list of local addresses to be signalled.
 - list of local addresses used to created subflows.
 - maximum number of add_addr option to react

When the msk is fully established, the PM netlink attempts to
announce the 'signal' list via the ADD_ADDR option. Since we
currently lack the ADD_ADDR echo (and related event) only the
first addr is sent.

After exhausting the 'announce' list, the PM tries to create
subflow for each addr in 'local' list, waiting for each
connection to be completed before attempting the next one.

Idea is to add an additional PM hook for ADD_ADDR echo, to allow
the PM netlink announcing multiple addresses, in sequence.

Co-developed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/mptcp.h
net/mptcp/Makefile
net/mptcp/pm.c
net/mptcp/pm_netlink.c [new file with mode: 0644]
net/mptcp/protocol.h