Lines Matching refs:pm
134 if (!test_bit(entry->addr.id, msk->pm.id_avail_bitmap)) in select_local_address()
162 if (!test_bit(entry->addr.id, msk->pm.id_avail_bitmap)) in select_signal_address()
183 bool deny_id0 = READ_ONCE(msk->pm.remote_deny_join_id0); in fill_remote_addr()
195 msk->pm.extra_subflows++; in fill_remote_addr()
207 bool deny_id0 = READ_ONCE(msk->pm.remote_deny_join_id0); in fill_remote_addresses_fullmesh()
236 msk->pm.extra_subflows++; in fill_remote_addresses_fullmesh()
239 if (msk->pm.extra_subflows >= limit_extra_subflows) in fill_remote_addresses_fullmesh()
305 if (likely(msk->pm.status & BIT(MPTCP_PM_MPC_ENDPOINT_ACCOUNTED)) || in mptcp_mpc_endpoint_setup()
316 __clear_bit(entry->addr.id, msk->pm.id_avail_bitmap); in mptcp_mpc_endpoint_setup()
326 msk->pm.status |= BIT(MPTCP_PM_MPC_ENDPOINT_ACCOUNTED); in mptcp_mpc_endpoint_setup()
344 msk->pm.local_addr_used, endp_subflow_max, in mptcp_pm_create_subflow_or_signal_addr()
345 msk->pm.add_addr_signaled, endp_signal_max, in mptcp_pm_create_subflow_or_signal_addr()
346 msk->pm.extra_subflows, limit_extra_subflows); in mptcp_pm_create_subflow_or_signal_addr()
349 if (msk->pm.add_addr_signaled < endp_signal_max) { in mptcp_pm_create_subflow_or_signal_addr()
357 if (msk->pm.addr_signal & BIT(MPTCP_ADD_ADDR_SIGNAL)) in mptcp_pm_create_subflow_or_signal_addr()
369 __clear_bit(local.addr.id, msk->pm.id_avail_bitmap); in mptcp_pm_create_subflow_or_signal_addr()
370 msk->pm.add_addr_signaled++; in mptcp_pm_create_subflow_or_signal_addr()
389 while (msk->pm.local_addr_used < endp_subflow_max && in mptcp_pm_create_subflow_or_signal_addr()
390 msk->pm.extra_subflows < limit_extra_subflows) { in mptcp_pm_create_subflow_or_signal_addr()
402 __clear_bit(local.addr.id, msk->pm.id_avail_bitmap); in mptcp_pm_create_subflow_or_signal_addr()
408 msk->pm.local_addr_used++; in mptcp_pm_create_subflow_or_signal_addr()
414 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_create_subflow_or_signal_addr()
417 spin_lock_bh(&msk->pm.lock); in mptcp_pm_create_subflow_or_signal_addr()
466 __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); in fill_local_addresses_vec_fullmesh()
469 msk->pm.local_addr_used++; in fill_local_addresses_vec_fullmesh()
476 msk->pm.extra_subflows++; in fill_local_addresses_vec_fullmesh()
479 if (msk->pm.extra_subflows >= limit_extra_subflows) in fill_local_addresses_vec_fullmesh()
532 __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); in fill_local_laminar_endp()
535 msk->pm.local_addr_used++; in fill_local_laminar_endp()
538 msk->pm.extra_subflows++; in fill_local_laminar_endp()
559 while (msk->pm.local_addr_used < endp_subflow_max) { in fill_local_addresses_vec_c_flag()
565 __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); in fill_local_addresses_vec_c_flag()
573 msk->pm.local_addr_used++; in fill_local_addresses_vec_c_flag()
574 msk->pm.extra_subflows++; in fill_local_addresses_vec_c_flag()
577 if (msk->pm.extra_subflows >= limit_extra_subflows) in fill_local_addresses_vec_c_flag()
601 msk->pm.extra_subflows++; in fill_local_address_any()
645 msk->pm.add_addr_accepted, limit_add_addr_accepted, in mptcp_pm_nl_add_addr_received()
646 msk->pm.remote.family); in mptcp_pm_nl_add_addr_received()
648 remote = msk->pm.remote; in mptcp_pm_nl_add_addr_received()
667 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_add_addr_received()
671 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_add_addr_received()
676 msk->pm.add_addr_accepted++; in mptcp_pm_nl_add_addr_received()
677 if (msk->pm.add_addr_accepted >= limit_add_addr_accepted || in mptcp_pm_nl_add_addr_received()
678 msk->pm.extra_subflows >= limit_extra_subflows) in mptcp_pm_nl_add_addr_received()
679 WRITE_ONCE(msk->pm.accept_addr, false); in mptcp_pm_nl_add_addr_received()
685 if (rm_id && !WARN_ON_ONCE(msk->pm.add_addr_accepted == 0)) { in mptcp_pm_nl_rm_addr()
692 if (--msk->pm.add_addr_accepted < limit_add_addr_accepted) in mptcp_pm_nl_rm_addr()
693 WRITE_ONCE(msk->pm.accept_addr, true); in mptcp_pm_nl_rm_addr()
956 spin_lock_bh(&msk->pm.lock); in mptcp_nl_add_subflow_or_signal_addr()
960 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_add_subflow_or_signal_addr()
1058 spin_lock_bh(&msk->pm.lock); in mptcp_pm_remove_anno_addr()
1060 __set_bit(addr->id, msk->pm.id_avail_bitmap); in mptcp_pm_remove_anno_addr()
1061 msk->pm.add_addr_signaled--; in mptcp_pm_remove_anno_addr()
1064 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_remove_anno_addr()
1072 if (!__test_and_set_bit(id ? : msk->mpc_endpoint_id, msk->pm.id_avail_bitmap) && in __mark_subflow_endp_available()
1073 id && !WARN_ON_ONCE(msk->pm.local_addr_used == 0)) in __mark_subflow_endp_available()
1074 msk->pm.local_addr_used--; in __mark_subflow_endp_available()
1101 spin_lock_bh(&msk->pm.lock); in mptcp_nl_remove_subflow_and_signal_addr()
1103 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_remove_subflow_and_signal_addr()
1107 spin_lock_bh(&msk->pm.lock); in mptcp_nl_remove_subflow_and_signal_addr()
1109 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_remove_subflow_and_signal_addr()
1145 spin_lock_bh(&msk->pm.lock); in mptcp_nl_remove_id_zero_address()
1149 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_remove_id_zero_address()
1237 spin_lock_bh(&msk->pm.lock); in mptcp_pm_flush_addrs_and_subflows()
1239 msk->pm.add_addr_signaled -= alist.nr; in mptcp_pm_flush_addrs_and_subflows()
1245 bitmap_fill(msk->pm.id_avail_bitmap, MPTCP_PM_MAX_ADDR_ID + 1); in mptcp_pm_flush_addrs_and_subflows()
1246 msk->pm.local_addr_used = 0; in mptcp_pm_flush_addrs_and_subflows()
1247 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_flush_addrs_and_subflows()
1443 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_fullmesh()
1447 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_fullmesh()
1545 if (msk->pm.extra_subflows == mptcp_pm_get_limit_extra_subflows(msk) || in mptcp_pm_nl_check_work_pending()
1546 (find_next_and_bit(pernet->id_bitmap, msk->pm.id_avail_bitmap, in mptcp_pm_nl_check_work_pending()
1548 WRITE_ONCE(msk->pm.work_pending, false); in mptcp_pm_nl_check_work_pending()
1557 struct mptcp_pm_data *pm = &msk->pm; in __mptcp_pm_kernel_worker() local
1559 if (pm->status & BIT(MPTCP_PM_ADD_ADDR_RECEIVED)) { in __mptcp_pm_kernel_worker()
1560 pm->status &= ~BIT(MPTCP_PM_ADD_ADDR_RECEIVED); in __mptcp_pm_kernel_worker()
1563 if (pm->status & BIT(MPTCP_PM_ESTABLISHED)) { in __mptcp_pm_kernel_worker()
1564 pm->status &= ~BIT(MPTCP_PM_ESTABLISHED); in __mptcp_pm_kernel_worker()
1567 if (pm->status & BIT(MPTCP_PM_SUBFLOW_ESTABLISHED)) { in __mptcp_pm_kernel_worker()
1568 pm->status &= ~BIT(MPTCP_PM_SUBFLOW_ESTABLISHED); in __mptcp_pm_kernel_worker()