On Thu, 24 Sep 2020, Geliang Tang wrote:

This patch implements the remove announced addr and subflow logic in PM
netlink.

When the PM netlink removes an address, we traverse all the existing msk
sockets to find the relevant sockets.

We add a new list named anno_list in mptcp_pm_data, to record all the
announced addrs. In the traversing, we check if it has been recorded.
If it has been, we trigger the RM_ADDR signal.

We also check if this address is in conn_list. If it is, we remove the
subflow which using this local address.

Since we call mptcp_pm_free_anno_list in mptcp_destroy, we need to move
__mptcp_init_sock before the mptcp_is_enabled check in mptcp_init_sock.

Suggested-by: Matthieu Baerts <[email protected]>
Suggested-by: Paolo Abeni <[email protected]>
Suggested-by: Mat Martineau <[email protected]>
Acked-by: Paolo Abeni <[email protected]>
Signed-off-by: Geliang Tang <[email protected]>
---
net/mptcp/pm.c         |   7 ++-
net/mptcp/pm_netlink.c | 122 +++++++++++++++++++++++++++++++++++++++--
net/mptcp/protocol.c   |   9 +--
net/mptcp/protocol.h   |   2 +
net/mptcp/subflow.c    |   1 +
5 files changed, 130 insertions(+), 11 deletions(-)

Reviewed-by: Mat Martineau <[email protected]>

--
Mat Martineau
Intel

Reply via email to