OSDN Git Service

mptcp: remote addresses fullmesh
authorGeliang Tang <geliangtang@xiaomi.com>
Tue, 17 Aug 2021 22:07:23 +0000 (15:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Aug 2021 09:10:01 +0000 (10:10 +0100)
commit2843ff6f36db7074e17bf5d637a14da08c54aed8
treeccb287b9b51a37e2be1ee291defc4885d95b2faf
parentee285257a9c1bc73ad095d8a3aa5d04b7da4990f
mptcp: remote addresses fullmesh

This patch added and managed a new per endpoint flag, named
MPTCP_PM_ADDR_FLAG_FULLMESH.

In mptcp_pm_create_subflow_or_signal_addr(), if such flag is set, instead
of:
        remote_address((struct sock_common *)sk, &remote);
fill a temporary allocated array of all known remote address. After
releaseing the pm lock loop on such array and create a subflow for each
remote address from the given local.

Note that the we could still use an array even for non 'fullmesh'
endpoint: with a single entry corresponding to the primary MPC subflow
remote address.

Suggested-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Geliang Tang <geliangtang@xiaomi.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/pm_netlink.c