mptcp: remove multi subflows in PM
This patch dealt with removing multi subflows in PM: In mptcp_pm_remove_subflow, changed the input parameter local_id as an list of removing address ids, and passed the list to mptcp_pm_nl_rm_subflow_received. In mptcp_pm_nl_rm_subflow_received, iterated each address id from the received ids list. Then shut down and closed each address id's subsocket. In mptcp_nl_remove_subflow_and_signal_addr, put the single address id into an ids list, and passed it to mptcp_pm_remove_subflow. Signed-off-by: Geliang Tang <geliangtang@gmail.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
d0b698ca9a
commit
ddd14bb85d
@@ -56,12 +56,12 @@ int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mptcp_pm_remove_subflow(struct mptcp_sock *msk, u8 local_id)
|
||||
int mptcp_pm_remove_subflow(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list)
|
||||
{
|
||||
pr_debug("msk=%p, local_id=%d", msk, local_id);
|
||||
pr_debug("msk=%p, rm_list_nr=%d", msk, rm_list->nr);
|
||||
|
||||
spin_lock_bh(&msk->pm.lock);
|
||||
mptcp_pm_nl_rm_subflow_received(msk, local_id);
|
||||
mptcp_pm_nl_rm_subflow_received(msk, rm_list);
|
||||
spin_unlock_bh(&msk->pm.lock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user