Lines Matching full:pm
184 if (msk->pm.add_addr_signaled == msk->pm.add_addr_signal_max && in check_work_pending()
185 (msk->pm.local_addr_used == msk->pm.local_addr_max || in check_work_pending()
186 msk->pm.subflows == msk->pm.subflows_max)) in check_work_pending()
187 WRITE_ONCE(msk->pm.work_pending, false); in check_work_pending()
196 list_for_each_entry(entry, &msk->pm.anno_list, list) { in lookup_anno_list_by_saddr()
226 spin_lock_bh(&msk->pm.lock); in mptcp_pm_add_timer()
237 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_add_timer()
250 spin_lock_bh(&msk->pm.lock); in mptcp_pm_del_add_timer()
254 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_del_add_timer()
275 list_add(&add_entry->list, &msk->pm.anno_list); in mptcp_pm_alloc_anno_list()
295 spin_lock_bh(&msk->pm.lock); in mptcp_pm_free_anno_list()
296 list_splice_init(&msk->pm.anno_list, &free_list); in mptcp_pm_free_anno_list()
297 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_free_anno_list()
315 msk->pm.local_addr_used, msk->pm.local_addr_max, in mptcp_pm_create_subflow_or_signal_addr()
316 msk->pm.add_addr_signaled, msk->pm.add_addr_signal_max, in mptcp_pm_create_subflow_or_signal_addr()
317 msk->pm.subflows, msk->pm.subflows_max); in mptcp_pm_create_subflow_or_signal_addr()
320 if (msk->pm.add_addr_signaled < msk->pm.add_addr_signal_max) { in mptcp_pm_create_subflow_or_signal_addr()
322 msk->pm.add_addr_signaled); in mptcp_pm_create_subflow_or_signal_addr()
326 msk->pm.add_addr_signaled++; in mptcp_pm_create_subflow_or_signal_addr()
331 msk->pm.local_addr_used = msk->pm.add_addr_signal_max; in mptcp_pm_create_subflow_or_signal_addr()
338 if (msk->pm.local_addr_used < msk->pm.local_addr_max && in mptcp_pm_create_subflow_or_signal_addr()
339 msk->pm.subflows < msk->pm.subflows_max) { in mptcp_pm_create_subflow_or_signal_addr()
344 msk->pm.local_addr_used++; in mptcp_pm_create_subflow_or_signal_addr()
345 msk->pm.subflows++; in mptcp_pm_create_subflow_or_signal_addr()
347 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_create_subflow_or_signal_addr()
349 spin_lock_bh(&msk->pm.lock); in mptcp_pm_create_subflow_or_signal_addr()
354 msk->pm.local_addr_used = msk->pm.local_addr_max; in mptcp_pm_create_subflow_or_signal_addr()
376 msk->pm.add_addr_accepted, msk->pm.add_addr_accept_max, in mptcp_pm_nl_add_addr_received()
377 msk->pm.remote.family); in mptcp_pm_nl_add_addr_received()
378 msk->pm.add_addr_accepted++; in mptcp_pm_nl_add_addr_received()
379 msk->pm.subflows++; in mptcp_pm_nl_add_addr_received()
380 if (msk->pm.add_addr_accepted >= msk->pm.add_addr_accept_max || in mptcp_pm_nl_add_addr_received()
381 msk->pm.subflows >= msk->pm.subflows_max) in mptcp_pm_nl_add_addr_received()
382 WRITE_ONCE(msk->pm.accept_addr, false); in mptcp_pm_nl_add_addr_received()
387 remote = msk->pm.remote; in mptcp_pm_nl_add_addr_received()
393 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_add_addr_received()
395 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_add_addr_received()
405 pr_debug("address rm_id %d", msk->pm.rm_id); in mptcp_pm_nl_rm_addr_received()
407 if (!msk->pm.rm_id) in mptcp_pm_nl_rm_addr_received()
418 if (msk->pm.rm_id != subflow->remote_id) in mptcp_pm_nl_rm_addr_received()
421 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_rm_addr_received()
424 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_rm_addr_received()
426 msk->pm.add_addr_accepted--; in mptcp_pm_nl_rm_addr_received()
427 msk->pm.subflows--; in mptcp_pm_nl_rm_addr_received()
428 WRITE_ONCE(msk->pm.accept_addr, true); in mptcp_pm_nl_rm_addr_received()
457 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_rm_subflow_received()
460 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_rm_subflow_received()
462 msk->pm.local_addr_used--; in mptcp_pm_nl_rm_subflow_received()
463 msk->pm.subflows--; in mptcp_pm_nl_rm_subflow_received()
570 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_nl_data_init() local
576 pm->add_addr_signal_max = READ_ONCE(pernet->add_addr_signal_max); in mptcp_pm_nl_data_init()
577 pm->add_addr_accept_max = READ_ONCE(pernet->add_addr_accept_max); in mptcp_pm_nl_data_init()
578 pm->local_addr_max = READ_ONCE(pernet->local_addr_max); in mptcp_pm_nl_data_init()
579 pm->subflows_max = READ_ONCE(pernet->subflows_max); in mptcp_pm_nl_data_init()
580 subflows = !!pm->subflows_max; in mptcp_pm_nl_data_init()
581 WRITE_ONCE(pm->work_pending, (!!pm->local_addr_max && subflows) || in mptcp_pm_nl_data_init()
582 !!pm->add_addr_signal_max); in mptcp_pm_nl_data_init()
583 WRITE_ONCE(pm->accept_addr, !!pm->add_addr_accept_max && subflows); in mptcp_pm_nl_data_init()
584 WRITE_ONCE(pm->accept_subflow, subflows); in mptcp_pm_nl_data_init()
757 spin_lock_bh(&msk->pm.lock); in mptcp_pm_remove_anno_addr()
759 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_remove_anno_addr()
1135 panic("Failed to register MPTCP PM pernet subsystem.\n"); in mptcp_pm_nl_init()
1138 panic("Failed to register MPTCP PM netlink family\n"); in mptcp_pm_nl_init()