summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorGeliang Tang <geliangtang@gmail.com>2021-03-13 02:16:14 +0100
committerDavid S. Miller <davem@davemloft.net>2021-03-13 02:47:45 +0100
commitb5c55f334c7f75b59b2d14be0abb7c827a016059 (patch)
tree2a52fbd03b79b484ab502ccc63c89fdbe1c6f806 /net
parentmptcp: add rm_list in mptcp_options_received (diff)
downloadlinux-b5c55f334c7f75b59b2d14be0abb7c827a016059.tar.xz
linux-b5c55f334c7f75b59b2d14be0abb7c827a016059.zip
mptcp: add rm_list_rx in mptcp_pm_data
This patch added a new member rm_list_rx for struct mptcp_pm_data as an list of the removing address ids on the incoming direction. Initialized its nr field to zero in mptcp_pm_data_init. In mptcp_pm_rm_addr_received, set it as the input rm_list. 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>
Diffstat (limited to 'net')
-rw-r--r--net/mptcp/pm.c3
-rw-r--r--net/mptcp/protocol.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index 7553f82076ca..a47436205d88 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -218,7 +218,7 @@ void mptcp_pm_rm_addr_received(struct mptcp_sock *msk,
spin_lock_bh(&pm->lock);
mptcp_pm_schedule_work(msk, MPTCP_PM_RM_ADDR_RECEIVED);
- pm->rm_id = rm_list->ids[0];
+ pm->rm_list_rx = *rm_list;
spin_unlock_bh(&pm->lock);
}
@@ -300,6 +300,7 @@ void mptcp_pm_data_init(struct mptcp_sock *msk)
msk->pm.local_addr_used = 0;
msk->pm.subflows = 0;
msk->pm.rm_list_tx.nr = 0;
+ msk->pm.rm_list_rx.nr = 0;
WRITE_ONCE(msk->pm.work_pending, false);
WRITE_ONCE(msk->pm.addr_signal, 0);
WRITE_ONCE(msk->pm.accept_addr, false);
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index d7daf7e0d5d2..82a63abf2c7e 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -208,6 +208,7 @@ struct mptcp_pm_data {
u8 subflows;
u8 status;
struct mptcp_rm_list rm_list_tx;
+ struct mptcp_rm_list rm_list_rx;
u8 rm_id;
};