Lines Matching refs:pernet

40 	/* protects pernet updates */
132 select_local_address(const struct pm_nl_pernet *pernet,
139 list_for_each_entry_rcu(entry, &pernet->local_addr_list, list) {
159 select_signal_address(struct pm_nl_pernet *pernet, unsigned int pos)
170 list_for_each_entry_rcu(entry, &pernet->local_addr_list, list) {
310 struct pm_nl_pernet *pernet;
312 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id);
321 local = select_signal_address(pernet,
342 local = select_local_address(pernet, msk);
478 static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet,
484 spin_lock_bh(&pernet->lock);
488 if (pernet->next_id > 255)
490 if (pernet->addrs >= MPTCP_PM_ADDR_MAX)
496 list_for_each_entry(cur, &pernet->local_addr_list, list) {
504 pernet->add_addr_signal_max++;
506 pernet->local_addr_max++;
508 entry->addr.id = pernet->next_id++;
509 pernet->addrs++;
510 list_add_tail_rcu(&entry->list, &pernet->local_addr_list);
514 spin_unlock_bh(&pernet->lock);
523 struct pm_nl_pernet *pernet;
540 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id);
543 list_for_each_entry_rcu(entry, &pernet->local_addr_list, list) {
561 ret = mptcp_pm_nl_append_new_local_addr(pernet, entry);
571 struct pm_nl_pernet *pernet;
574 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id);
576 pm->add_addr_signal_max = READ_ONCE(pernet->add_addr_signal_max);
577 pm->add_addr_accept_max = READ_ONCE(pernet->add_addr_accept_max);
578 pm->local_addr_max = READ_ONCE(pernet->local_addr_max);
579 pm->subflows_max = READ_ONCE(pernet->subflows_max);
697 struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
712 ret = mptcp_pm_nl_append_new_local_addr(pernet, entry);
723 __lookup_addr_by_id(struct pm_nl_pernet *pernet, unsigned int id)
727 list_for_each_entry(entry, &pernet->local_addr_list, list) {
799 struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
807 spin_lock_bh(&pernet->lock);
808 entry = __lookup_addr_by_id(pernet, addr.addr.id);
811 spin_unlock_bh(&pernet->lock);
815 pernet->add_addr_signal_max--;
817 pernet->local_addr_max--;
819 pernet->addrs--;
821 spin_unlock_bh(&pernet->lock);
829 static void __flush_addrs(struct pm_nl_pernet *pernet)
831 while (!list_empty(&pernet->local_addr_list)) {
834 cur = list_entry(pernet->local_addr_list.next,
841 static void __reset_counters(struct pm_nl_pernet *pernet)
843 pernet->add_addr_signal_max = 0;
844 pernet->add_addr_accept_max = 0;
845 pernet->local_addr_max = 0;
846 pernet->addrs = 0;
851 struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
853 spin_lock_bh(&pernet->lock);
854 __flush_addrs(pernet);
855 __reset_counters(pernet);
856 spin_unlock_bh(&pernet->lock);
900 struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
922 spin_lock_bh(&pernet->lock);
923 entry = __lookup_addr_by_id(pernet, addr.addr.id);
936 spin_unlock_bh(&pernet->lock);
940 spin_unlock_bh(&pernet->lock);
952 struct pm_nl_pernet *pernet;
956 pernet = net_generic(net, pm_nl_pernet_id);
958 spin_lock_bh(&pernet->lock);
959 list_for_each_entry(entry, &pernet->local_addr_list, list) {
977 spin_unlock_bh(&pernet->lock);
1001 struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
1005 spin_lock_bh(&pernet->lock);
1006 rcv_addrs = pernet->add_addr_accept_max;
1011 subflows = pernet->subflows_max;
1016 WRITE_ONCE(pernet->add_addr_accept_max, rcv_addrs);
1017 WRITE_ONCE(pernet->subflows_max, subflows);
1020 spin_unlock_bh(&pernet->lock);
1027 struct pm_nl_pernet *pernet = genl_info_pm_nl(info);
1041 READ_ONCE(pernet->add_addr_accept_max)))
1045 READ_ONCE(pernet->subflows_max)))
1104 struct pm_nl_pernet *pernet = net_generic(net, pm_nl_pernet_id);
1106 INIT_LIST_HEAD_RCU(&pernet->local_addr_list);
1107 __reset_counters(pernet);
1108 pernet->next_id = 1;
1109 spin_lock_init(&pernet->lock);
1135 panic("Failed to register MPTCP PM pernet subsystem.\n");