| @@ -21,7 +21,7 @@ struct pm_nl_pernet { · 20 unmodified lines |
| 21 | unsigned int addrs; | 21 | unsigned int addrs; |
| 22 | unsigned int stale_loss_cnt; | 22 | unsigned int stale_loss_cnt; |
| 23 | unsigned int endp_signal_max; | 23 | unsigned int endp_signal_max; |
| 24 | unsigned int add_addr_accept_max; | 24 | unsigned int limit_add_addr_accepted; |
| 25 | unsigned int local_addr_max; | 25 | unsigned int local_addr_max; |
| 26 | unsigned int limit_extra_subflows; | 26 | unsigned int limit_extra_subflows; |
| 27 | unsigned int next_id; | 27 | unsigned int next_id; |
| @@ -54,13 +54,13 @@ unsigned int mptcp_pm_get_endp_signal_max(const struct mptcp_sock *msk) · 26 unmodified lines |
| 54 | } | 54 | } |
| 55 | EXPORT_SYMBOL_GPL(mptcp_pm_get_endp_signal_max); | 55 | EXPORT_SYMBOL_GPL(mptcp_pm_get_endp_signal_max); |
| 56 | | 56 | |
| 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) |
| 58 | { | 58 | { |
| 59 | struct pm_nl_pernet *pernet = pm_nl_get_pernet_from_msk(msk); | 59 | struct pm_nl_pernet *pernet = pm_nl_get_pernet_from_msk(msk); |
| 60 | | 60 | |
| 61 | return READ_ONCE(pernet->add_addr_accept_max); | 61 | return READ_ONCE(pernet->limit_add_addr_accepted); |
| 62 | } | 62 | } |
| 63 | EXPORT_SYMBOL_GPL(mptcp_pm_get_add_addr_accept_max); | 63 | EXPORT_SYMBOL_GPL(mptcp_pm_get_limit_add_addr_accepted); |
| 64 | | 64 | |
| 65 | unsigned int mptcp_pm_get_limit_extra_subflows(const struct mptcp_sock *msk) | 65 | unsigned int mptcp_pm_get_limit_extra_subflows(const struct mptcp_sock *msk) |
| 66 | { | 66 | { |
| @@ -547,16 +547,16 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk) · 480 unmodified lines |
| 547 | struct mptcp_pm_local locals[MPTCP_PM_ADDR_MAX]; | 547 | struct mptcp_pm_local locals[MPTCP_PM_ADDR_MAX]; |
| 548 | struct sock *sk = (struct sock *)msk; | 548 | struct sock *sk = (struct sock *)msk; |
| 549 | unsigned int limit_extra_subflows; | 549 | unsigned int limit_extra_subflows; |
| 550 | unsigned int add_addr_accept_max; | 550 | unsigned int limit_add_addr_accepted; |
| 551 | struct mptcp_addr_info remote; | 551 | struct mptcp_addr_info remote; |
| 552 | bool sf_created = false; | 552 | bool sf_created = false; |
| 553 | int i, nr; | 553 | int i, nr; |
| 554 | | 554 | |
| 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); |
| 556 | limit_extra_subflows = mptcp_pm_get_limit_extra_subflows(msk); | 556 | limit_extra_subflows = mptcp_pm_get_limit_extra_subflows(msk); |
| 557 | | 557 | |
| 558 | pr_debug("accepted %d:%d remote family %d\n", | 558 | 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, |
| 560 | msk->pm.remote.family); | 560 | msk->pm.remote.family); |
| 561 | | 561 | |
| 562 | remote = msk->pm.remote; | 562 | remote = msk->pm.remote; |
| @@ -587,7 +587,7 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk) · 24 unmodified lines |
| 587 | /* add_addr_accepted is not decr for ID 0 */ | 587 | /* add_addr_accepted is not decr for ID 0 */ |
| 588 | if (remote.id) | 588 | if (remote.id) |
| 589 | msk->pm.add_addr_accepted++; | 589 | 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 || |
| 591 | msk->pm.extra_subflows >= limit_extra_subflows) | 591 | msk->pm.extra_subflows >= limit_extra_subflows) |
| 592 | WRITE_ONCE(msk->pm.accept_addr, false); | 592 | WRITE_ONCE(msk->pm.accept_addr, false); |
| 593 | } | 593 | } |
| @@ -596,10 +596,13 @@ static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk) · 2 unmodified lines |
| 596 | void mptcp_pm_nl_rm_addr(struct mptcp_sock *msk, u8 rm_id) | 596 | void mptcp_pm_nl_rm_addr(struct mptcp_sock *msk, u8 rm_id) |
| 597 | { | 597 | { |
| 598 | if (rm_id && WARN_ON_ONCE(msk->pm.add_addr_accepted == 0)) { | 598 | 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 | |
| 599 | /* Note: if the subflow has been closed before, this | 602 | /* Note: if the subflow has been closed before, this |
| 600 | * add_addr_accepted counter will not be decremented. | 603 | * add_addr_accepted counter will not be decremented. |
| 601 | */ | 604 | */ |
| 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) |
| 603 | WRITE_ONCE(msk->pm.accept_addr, true); | 606 | WRITE_ONCE(msk->pm.accept_addr, true); |
| 604 | } | 607 | } |
| 605 | } | 608 | } |
| @@ -1282,7 +1285,7 @@ int mptcp_pm_nl_set_limits_doit(struct sk_buff *skb, struct genl_info *info) · 676 unmodified lines |
| 1282 | int ret; | 1285 | int ret; |
| 1283 | | 1286 | |
| 1284 | spin_lock_bh(&pernet->lock); | 1287 | spin_lock_bh(&pernet->lock); |
| 1285 | rcv_addrs = pernet->add_addr_accept_max; | 1288 | rcv_addrs = pernet->limit_add_addr_accepted; |
| 1286 | ret = parse_limit(info, MPTCP_PM_ATTR_RCV_ADD_ADDRS, &rcv_addrs); | 1289 | ret = parse_limit(info, MPTCP_PM_ATTR_RCV_ADD_ADDRS, &rcv_addrs); |
| 1287 | if (ret) | 1290 | if (ret) |
| 1288 | goto unlock; | 1291 | goto unlock; |
| @@ -1292,7 +1295,7 @@ int mptcp_pm_nl_set_limits_doit(struct sk_buff *skb, struct genl_info *info) · 3 unmodified lines |
| 1292 | if (ret) | 1295 | if (ret) |
| 1293 | goto unlock; | 1296 | goto unlock; |
| 1294 | | 1297 | |
| 1295 | WRITE_ONCE(pernet->add_addr_accept_max, rcv_addrs); | 1298 | WRITE_ONCE(pernet->limit_add_addr_accepted, rcv_addrs); |
| 1296 | WRITE_ONCE(pernet->limit_extra_subflows, subflows); | 1299 | WRITE_ONCE(pernet->limit_extra_subflows, subflows); |
| 1297 | | 1300 | |
| 1298 | unlock: | 1301 | unlock: |
| @@ -1316,7 +1319,7 @@ int mptcp_pm_nl_get_limits_doit(struct sk_buff *skb, struct genl_info *info) · 17 unmodified lines |
| 1316 | goto fail; | 1319 | goto fail; |
| 1317 | | 1320 | |
| 1318 | if (nla_put_u32(msg, MPTCP_PM_ATTR_RCV_ADD_ADDRS, | 1321 | 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))) |
| 1320 | goto fail; | 1323 | goto fail; |
| 1321 | | 1324 | |
| 1322 | if (nla_put_u32(msg, MPTCP_PM_ATTR_SUBFLOWS, | 1325 | if (nla_put_u32(msg, MPTCP_PM_ATTR_SUBFLOWS, |