History

mptcp: pm: in-kernel: rename 'add_addr_accept_max' to 'limit_add_addr_accepted'

A few variables linked to the in-kernel Path-Manager are confusing, and it would help current and future developers, to clarify them. One of them is 'add_addr_accept_max', which in fact represents the limit of ADD_ADDR that can be accepted: the limit set via 'ip mptcp limit add_addr_accepted X' for example. It is not linked to the maximum number of accepted ADD_ADDR. While at it, add an additional name for the corresponding variable in MPTCP INFO: mptcpi_limit_add_addr_accepted. Not to break the current uAPI, the new name is added as a 'define' pointing to the former name. This will then also help userspace devs. No functional changes intended.

Matthieu Baerts (NGI0) committed 1 year ago

Commit 37712d81 parent 45cae575 files · +21 −17Browse files

Unified · Split

5 files
  1. include/uapi/linux/mptcp.h +1 −0
  2. net/mptcp/pm.c +1 −1
  3. net/mptcp/pm_kernel.c +15 −12
  4. net/mptcp/protocol.h +2 −2
  5. net/mptcp/sockopt.c +2 −2
include/uapi/linux/mptcp.h+1−0
@@ -50,6 +50,7 @@ struct mptcp_info { · 49 unmodified lines
5050 __u8 mptcpi_add_addr_signal_max;
5151 #define mptcpi_endp_signal_max mptcpi_add_addr_signal_max
5252 __u8 mptcpi_add_addr_accepted_max;
53+ #define mptcpi_limit_add_addr_accepted mptcpi_add_addr_accepted_max
5354 __u32 mptcpi_flags;
5455 __u32 mptcpi_token;
5556 __u64 mptcpi_write_seq;
net/mptcp/pm.c+1−1
@@ -1039,7 +1039,7 @@ void mptcp_pm_data_reset(struct mptcp_sock *msk) · 1038 unmodified lines
10391039 subflows_allowed) ||
10401040 !!mptcp_pm_get_endp_signal_max(msk));
10411041 WRITE_ONCE(pm->accept_addr,
1042− !!mptcp_pm_get_add_addr_accept_max(msk) &&
1042+ !!mptcp_pm_get_limit_add_addr_accepted(msk) &&
10431043 subflows_allowed);
10441044 WRITE_ONCE(pm->accept_subflow, subflows_allowed);
10451045
net/mptcp/pm_kernel.c+15−12
@@ -21,7 +21,7 @@ struct pm_nl_pernet { · 20 unmodified lines
2121 unsigned int addrs;
2222 unsigned int stale_loss_cnt;
2323 unsigned int endp_signal_max;
24− unsigned int add_addr_accept_max;
24+ unsigned int limit_add_addr_accepted;
2525 unsigned int local_addr_max;
2626 unsigned int limit_extra_subflows;
2727 unsigned int next_id;
@@ -54,13 +54,13 @@ unsigned int mptcp_pm_get_endp_signal_max(const struct mptcp_sock *msk) · 26 unmodified lines
5454 }
5555 EXPORT_SYMBOL_GPL(mptcp_pm_get_endp_signal_max);
5656
57−unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk)
57+unsigned int mptcp_pm_get_limit_add_addr_accepted(const struct mptcp_sock *msk)
5858 {
5959 struct pm_nl_pernet *pernet = pm_nl_get_pernet_from_msk(msk);
6060
61− return READ_ONCE(pernet->add_addr_accept_max);
61+ return READ_ONCE(pernet->limit_add_addr_accepted);
6262 }
63−EXPORT_SYMBOL_GPL(mptcp_pm_get_add_addr_accept_max);
63+EXPORT_SYMBOL_GPL(mptcp_pm_get_limit_add_addr_accepted);
6464
6565 unsigned int mptcp_pm_get_limit_extra_subflows(const struct mptcp_sock *msk)
6666 {
@@ -547,16 +547,16 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk) · 480 unmodified lines
547547 struct mptcp_pm_local locals[MPTCP_PM_ADDR_MAX];
548548 struct sock *sk = (struct sock *)msk;
549549 unsigned int limit_extra_subflows;
550− unsigned int add_addr_accept_max;
550+ unsigned int limit_add_addr_accepted;
551551 struct mptcp_addr_info remote;
552552 bool sf_created = false;
553553 int i, nr;
554554
555− add_addr_accept_max = mptcp_pm_get_add_addr_accept_max(msk);
555+ limit_add_addr_accepted = mptcp_pm_get_limit_add_addr_accepted(msk);
556556 limit_extra_subflows = mptcp_pm_get_limit_extra_subflows(msk);
557557
558558 pr_debug("accepted %d:%d remote family %d\n",
559− msk->pm.add_addr_accepted, add_addr_accept_max,
559+ msk->pm.add_addr_accepted, limit_add_addr_accepted,
560560 msk->pm.remote.family);
561561
562562 remote = msk->pm.remote;
@@ -587,7 +587,7 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk) · 24 unmodified lines
587587 /* add_addr_accepted is not decr for ID 0 */
588588 if (remote.id)
589589 msk->pm.add_addr_accepted++;
590− if (msk->pm.add_addr_accepted >= add_addr_accept_max ||
590+ if (msk->pm.add_addr_accepted >= limit_add_addr_accepted ||
591591 msk->pm.extra_subflows >= limit_extra_subflows)
592592 WRITE_ONCE(msk->pm.accept_addr, false);
593593 }
@@ -596,10 +596,13 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk) · 2 unmodified lines
596596 void mptcp_pm_nl_rm_addr(struct mptcp_sock *msk, u8 rm_id)
597597 {
598598 if (rm_id && WARN_ON_ONCE(msk->pm.add_addr_accepted == 0)) {
599+ unsigned int limit_add_addr_accepted =
600+ mptcp_pm_get_limit_add_addr_accepted(msk);
601+
599602 /* Note: if the subflow has been closed before, this
600603 * add_addr_accepted counter will not be decremented.
601604 */
602− if (--msk->pm.add_addr_accepted < mptcp_pm_get_add_addr_accept_max(msk))
605+ if (--msk->pm.add_addr_accepted < limit_add_addr_accepted)
603606 WRITE_ONCE(msk->pm.accept_addr, true);
604607 }
605608 }
@@ -1282,7 +1285,7 @@ int mptcp_pm_nl_set_limits_doit(struct sk_buff *skb, struct genl_info *info) · 676 unmodified lines
12821285 int ret;
12831286
12841287 spin_lock_bh(&pernet->lock);
1285− rcv_addrs = pernet->add_addr_accept_max;
1288+ rcv_addrs = pernet->limit_add_addr_accepted;
12861289 ret = parse_limit(info, MPTCP_PM_ATTR_RCV_ADD_ADDRS, &rcv_addrs);
12871290 if (ret)
12881291 goto unlock;
@@ -1292,7 +1295,7 @@ int mptcp_pm_nl_set_limits_doit(struct sk_buff *skb, struct genl_info *info) · 3 unmodified lines
12921295 if (ret)
12931296 goto unlock;
12941297
1295− WRITE_ONCE(pernet->add_addr_accept_max, rcv_addrs);
1298+ WRITE_ONCE(pernet->limit_add_addr_accepted, rcv_addrs);
12961299 WRITE_ONCE(pernet->limit_extra_subflows, subflows);
12971300
12981301 unlock:
@@ -1316,7 +1319,7 @@ int mptcp_pm_nl_get_limits_doit(struct sk_buff *skb, struct genl_info *info) · 17 unmodified lines
13161319 goto fail;
13171320
13181321 if (nla_put_u32(msg, MPTCP_PM_ATTR_RCV_ADD_ADDRS,
1319− READ_ONCE(pernet->add_addr_accept_max)))
1322+ READ_ONCE(pernet->limit_add_addr_accepted)))
13201323 goto fail;
13211324
13221325 if (nla_put_u32(msg, MPTCP_PM_ATTR_SUBFLOWS,
net/mptcp/protocol.h+2−2
@@ -1181,7 +1181,7 @@ void __init mptcp_pm_nl_init(void); · 1180 unmodified lines
11811181 void mptcp_pm_worker(struct mptcp_sock *msk);
11821182 void __mptcp_pm_kernel_worker(struct mptcp_sock *msk);
11831183 unsigned int mptcp_pm_get_endp_signal_max(const struct mptcp_sock *msk);
1184−unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk);
1184+unsigned int mptcp_pm_get_limit_add_addr_accepted(const struct mptcp_sock *msk);
11851185 unsigned int mptcp_pm_get_limit_extra_subflows(const struct mptcp_sock *msk);
11861186 unsigned int mptcp_pm_get_local_addr_max(const struct mptcp_sock *msk);
11871187
@@ -1203,7 +1203,7 @@ static inline bool mptcp_pm_add_addr_c_flag_case(struct mptcp_sock *msk) · 15 unmodified lines
12031203 {
12041204 return READ_ONCE(msk->pm.remote_deny_join_id0) &&
12051205 msk->pm.local_addr_used == 0 &&
1206− mptcp_pm_get_add_addr_accept_max(msk) == 0 &&
1206+ mptcp_pm_get_limit_add_addr_accepted(msk) == 0 &&
12071207 msk->pm.extra_subflows < mptcp_pm_get_limit_extra_subflows(msk);
12081208 }
12091209
net/mptcp/sockopt.c+2−2
@@ -976,8 +976,8 @@ void mptcp_diag_fill_info(struct mptcp_sock *msk, struct mptcp_info *info) · 975 unmodified lines
976976 mptcp_pm_get_limit_extra_subflows(msk);
977977 info->mptcpi_endp_signal_max =
978978 mptcp_pm_get_endp_signal_max(msk);
979− info->mptcpi_add_addr_accepted_max =
980− mptcp_pm_get_add_addr_accept_max(msk);
979+ info->mptcpi_limit_add_addr_accepted =
980+ mptcp_pm_get_limit_add_addr_accepted(msk);
981981 info->mptcpi_local_addr_max =
982982 mptcp_pm_get_local_addr_max(msk);
983983 }