Lines Matching refs:msk
163 struct mptcp_sock *msk) in select_local_address() argument
166 struct sock *sk = (struct sock *)msk; in select_local_address()
168 msk_owned_by_me(msk); in select_local_address()
171 __mptcp_flush_join_list(msk); in select_local_address()
189 if (!lookup_subflow_by_saddr(&msk->conn_list, &entry->addr)) { in select_local_address()
222 unsigned int mptcp_pm_get_add_addr_signal_max(struct mptcp_sock *msk) in mptcp_pm_get_add_addr_signal_max() argument
226 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id); in mptcp_pm_get_add_addr_signal_max()
231 unsigned int mptcp_pm_get_add_addr_accept_max(struct mptcp_sock *msk) in mptcp_pm_get_add_addr_accept_max() argument
235 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id); in mptcp_pm_get_add_addr_accept_max()
240 unsigned int mptcp_pm_get_subflows_max(struct mptcp_sock *msk) in mptcp_pm_get_subflows_max() argument
244 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id); in mptcp_pm_get_subflows_max()
249 unsigned int mptcp_pm_get_local_addr_max(struct mptcp_sock *msk) in mptcp_pm_get_local_addr_max() argument
253 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id); in mptcp_pm_get_local_addr_max()
258 static void check_work_pending(struct mptcp_sock *msk) in check_work_pending() argument
260 if (msk->pm.add_addr_signaled == mptcp_pm_get_add_addr_signal_max(msk) && in check_work_pending()
261 (msk->pm.local_addr_used == mptcp_pm_get_local_addr_max(msk) || in check_work_pending()
262 msk->pm.subflows == mptcp_pm_get_subflows_max(msk))) in check_work_pending()
263 WRITE_ONCE(msk->pm.work_pending, false); in check_work_pending()
267 mptcp_lookup_anno_list_by_saddr(struct mptcp_sock *msk, in mptcp_lookup_anno_list_by_saddr() argument
272 lockdep_assert_held(&msk->pm.lock); in mptcp_lookup_anno_list_by_saddr()
274 list_for_each_entry(entry, &msk->pm.anno_list, list) { in mptcp_lookup_anno_list_by_saddr()
282 bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk) in mptcp_pm_sport_in_anno_list() argument
290 spin_lock_bh(&msk->pm.lock); in mptcp_pm_sport_in_anno_list()
291 list_for_each_entry(entry, &msk->pm.anno_list, list) { in mptcp_pm_sport_in_anno_list()
299 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_sport_in_anno_list()
306 struct mptcp_sock *msk = entry->sock; in mptcp_pm_add_timer() local
307 struct sock *sk = (struct sock *)msk; in mptcp_pm_add_timer()
309 pr_debug("msk=%p", msk); in mptcp_pm_add_timer()
311 if (!msk) in mptcp_pm_add_timer()
320 if (mptcp_pm_should_add_signal_addr(msk)) { in mptcp_pm_add_timer()
325 spin_lock_bh(&msk->pm.lock); in mptcp_pm_add_timer()
327 if (!mptcp_pm_should_add_signal_addr(msk)) { in mptcp_pm_add_timer()
329 mptcp_pm_announce_addr(msk, &entry->addr, false); in mptcp_pm_add_timer()
330 mptcp_pm_add_addr_send_ack(msk); in mptcp_pm_add_timer()
338 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_add_timer()
341 mptcp_pm_subflow_established(msk); in mptcp_pm_add_timer()
348 mptcp_pm_del_add_timer(struct mptcp_sock *msk, in mptcp_pm_del_add_timer() argument
352 struct sock *sk = (struct sock *)msk; in mptcp_pm_del_add_timer()
354 spin_lock_bh(&msk->pm.lock); in mptcp_pm_del_add_timer()
355 entry = mptcp_lookup_anno_list_by_saddr(msk, addr); in mptcp_pm_del_add_timer()
358 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_del_add_timer()
366 static bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, in mptcp_pm_alloc_anno_list() argument
370 struct sock *sk = (struct sock *)msk; in mptcp_pm_alloc_anno_list()
373 lockdep_assert_held(&msk->pm.lock); in mptcp_pm_alloc_anno_list()
375 if (mptcp_lookup_anno_list_by_saddr(msk, &entry->addr)) in mptcp_pm_alloc_anno_list()
382 list_add(&add_entry->list, &msk->pm.anno_list); in mptcp_pm_alloc_anno_list()
385 add_entry->sock = msk; in mptcp_pm_alloc_anno_list()
395 void mptcp_pm_free_anno_list(struct mptcp_sock *msk) in mptcp_pm_free_anno_list() argument
398 struct sock *sk = (struct sock *)msk; in mptcp_pm_free_anno_list()
401 pr_debug("msk=%p", msk); in mptcp_pm_free_anno_list()
403 spin_lock_bh(&msk->pm.lock); in mptcp_pm_free_anno_list()
404 list_splice_init(&msk->pm.anno_list, &free_list); in mptcp_pm_free_anno_list()
405 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_free_anno_list()
429 static unsigned int fill_remote_addresses_vec(struct mptcp_sock *msk, bool fullmesh, in fill_remote_addresses_vec() argument
432 struct sock *sk = (struct sock *)msk, *ssk; in fill_remote_addresses_vec()
438 subflows_max = mptcp_pm_get_subflows_max(msk); in fill_remote_addresses_vec()
445 msk->pm.subflows++; in fill_remote_addresses_vec()
448 mptcp_for_each_subflow(msk, subflow) { in fill_remote_addresses_vec()
452 msk->pm.subflows < subflows_max) { in fill_remote_addresses_vec()
453 msk->pm.subflows++; in fill_remote_addresses_vec()
462 static void mptcp_pm_create_subflow_or_signal_addr(struct mptcp_sock *msk) in mptcp_pm_create_subflow_or_signal_addr() argument
464 struct sock *sk = (struct sock *)msk; in mptcp_pm_create_subflow_or_signal_addr()
473 add_addr_signal_max = mptcp_pm_get_add_addr_signal_max(msk); in mptcp_pm_create_subflow_or_signal_addr()
474 local_addr_max = mptcp_pm_get_local_addr_max(msk); in mptcp_pm_create_subflow_or_signal_addr()
475 subflows_max = mptcp_pm_get_subflows_max(msk); in mptcp_pm_create_subflow_or_signal_addr()
478 msk->pm.local_addr_used, local_addr_max, in mptcp_pm_create_subflow_or_signal_addr()
479 msk->pm.add_addr_signaled, add_addr_signal_max, in mptcp_pm_create_subflow_or_signal_addr()
480 msk->pm.subflows, subflows_max); in mptcp_pm_create_subflow_or_signal_addr()
483 if (msk->pm.add_addr_signaled < add_addr_signal_max) { in mptcp_pm_create_subflow_or_signal_addr()
485 msk->pm.add_addr_signaled); in mptcp_pm_create_subflow_or_signal_addr()
488 if (mptcp_pm_alloc_anno_list(msk, local)) { in mptcp_pm_create_subflow_or_signal_addr()
489 msk->pm.add_addr_signaled++; in mptcp_pm_create_subflow_or_signal_addr()
490 mptcp_pm_announce_addr(msk, &local->addr, false); in mptcp_pm_create_subflow_or_signal_addr()
491 mptcp_pm_nl_addr_send_ack(msk); in mptcp_pm_create_subflow_or_signal_addr()
495 msk->pm.local_addr_used = add_addr_signal_max; in mptcp_pm_create_subflow_or_signal_addr()
498 check_work_pending(msk); in mptcp_pm_create_subflow_or_signal_addr()
502 if (msk->pm.local_addr_used < local_addr_max && in mptcp_pm_create_subflow_or_signal_addr()
503 msk->pm.subflows < subflows_max && in mptcp_pm_create_subflow_or_signal_addr()
504 !READ_ONCE(msk->pm.remote_deny_join_id0)) { in mptcp_pm_create_subflow_or_signal_addr()
505 local = select_local_address(pernet, msk); in mptcp_pm_create_subflow_or_signal_addr()
511 msk->pm.local_addr_used++; in mptcp_pm_create_subflow_or_signal_addr()
512 check_work_pending(msk); in mptcp_pm_create_subflow_or_signal_addr()
513 nr = fill_remote_addresses_vec(msk, fullmesh, addrs); in mptcp_pm_create_subflow_or_signal_addr()
514 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_create_subflow_or_signal_addr()
517 spin_lock_bh(&msk->pm.lock); in mptcp_pm_create_subflow_or_signal_addr()
522 msk->pm.local_addr_used = local_addr_max; in mptcp_pm_create_subflow_or_signal_addr()
523 check_work_pending(msk); in mptcp_pm_create_subflow_or_signal_addr()
527 static void mptcp_pm_nl_fully_established(struct mptcp_sock *msk) in mptcp_pm_nl_fully_established() argument
529 mptcp_pm_create_subflow_or_signal_addr(msk); in mptcp_pm_nl_fully_established()
532 static void mptcp_pm_nl_subflow_established(struct mptcp_sock *msk) in mptcp_pm_nl_subflow_established() argument
534 mptcp_pm_create_subflow_or_signal_addr(msk); in mptcp_pm_nl_subflow_established()
540 static unsigned int fill_local_addresses_vec(struct mptcp_sock *msk, in fill_local_addresses_vec() argument
543 struct sock *sk = (struct sock *)msk; in fill_local_addresses_vec()
551 subflows_max = mptcp_pm_get_subflows_max(msk); in fill_local_addresses_vec()
554 __mptcp_flush_join_list(msk); in fill_local_addresses_vec()
569 if (msk->pm.subflows < subflows_max) { in fill_local_addresses_vec()
570 msk->pm.subflows++; in fill_local_addresses_vec()
581 local.family = msk->pm.remote.family; in fill_local_addresses_vec()
583 msk->pm.subflows++; in fill_local_addresses_vec()
590 static void mptcp_pm_nl_add_addr_received(struct mptcp_sock *msk) in mptcp_pm_nl_add_addr_received() argument
593 struct sock *sk = (struct sock *)msk; in mptcp_pm_nl_add_addr_received()
599 add_addr_accept_max = mptcp_pm_get_add_addr_accept_max(msk); in mptcp_pm_nl_add_addr_received()
600 subflows_max = mptcp_pm_get_subflows_max(msk); in mptcp_pm_nl_add_addr_received()
603 msk->pm.add_addr_accepted, add_addr_accept_max, in mptcp_pm_nl_add_addr_received()
604 msk->pm.remote.family); in mptcp_pm_nl_add_addr_received()
606 if (lookup_subflow_by_daddr(&msk->conn_list, &msk->pm.remote)) in mptcp_pm_nl_add_addr_received()
612 remote = msk->pm.remote; in mptcp_pm_nl_add_addr_received()
615 nr = fill_local_addresses_vec(msk, addrs); in mptcp_pm_nl_add_addr_received()
617 msk->pm.add_addr_accepted++; in mptcp_pm_nl_add_addr_received()
618 if (msk->pm.add_addr_accepted >= add_addr_accept_max || in mptcp_pm_nl_add_addr_received()
619 msk->pm.subflows >= subflows_max) in mptcp_pm_nl_add_addr_received()
620 WRITE_ONCE(msk->pm.accept_addr, false); in mptcp_pm_nl_add_addr_received()
622 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_add_addr_received()
625 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_add_addr_received()
628 mptcp_pm_announce_addr(msk, &msk->pm.remote, true); in mptcp_pm_nl_add_addr_received()
629 mptcp_pm_nl_addr_send_ack(msk); in mptcp_pm_nl_add_addr_received()
632 void mptcp_pm_nl_addr_send_ack(struct mptcp_sock *msk) in mptcp_pm_nl_addr_send_ack() argument
636 msk_owned_by_me(msk); in mptcp_pm_nl_addr_send_ack()
637 lockdep_assert_held(&msk->pm.lock); in mptcp_pm_nl_addr_send_ack()
639 if (!mptcp_pm_should_add_signal(msk) && in mptcp_pm_nl_addr_send_ack()
640 !mptcp_pm_should_rm_signal(msk)) in mptcp_pm_nl_addr_send_ack()
643 __mptcp_flush_join_list(msk); in mptcp_pm_nl_addr_send_ack()
644 subflow = list_first_entry_or_null(&msk->conn_list, typeof(*subflow), node); in mptcp_pm_nl_addr_send_ack()
648 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_addr_send_ack()
650 mptcp_pm_should_add_signal(msk) ? "add_addr" : "rm_addr"); in mptcp_pm_nl_addr_send_ack()
653 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_addr_send_ack()
657 static int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk, in mptcp_pm_nl_mp_prio_send_ack() argument
665 mptcp_for_each_subflow(msk, subflow) { in mptcp_pm_nl_mp_prio_send_ack()
667 struct sock *sk = (struct sock *)msk; in mptcp_pm_nl_mp_prio_send_ack()
679 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_mp_prio_send_ack()
682 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_mp_prio_send_ack()
690 static void mptcp_pm_nl_rm_addr_or_subflow(struct mptcp_sock *msk, in mptcp_pm_nl_rm_addr_or_subflow() argument
695 struct sock *sk = (struct sock *)msk; in mptcp_pm_nl_rm_addr_or_subflow()
701 msk_owned_by_me(msk); in mptcp_pm_nl_rm_addr_or_subflow()
709 if (list_empty(&msk->conn_list)) in mptcp_pm_nl_rm_addr_or_subflow()
713 list_for_each_entry_safe(subflow, tmp, &msk->conn_list, node) { in mptcp_pm_nl_rm_addr_or_subflow()
727 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_rm_addr_or_subflow()
730 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_rm_addr_or_subflow()
733 msk->pm.add_addr_accepted--; in mptcp_pm_nl_rm_addr_or_subflow()
734 WRITE_ONCE(msk->pm.accept_addr, true); in mptcp_pm_nl_rm_addr_or_subflow()
736 msk->pm.local_addr_used--; in mptcp_pm_nl_rm_addr_or_subflow()
738 msk->pm.subflows--; in mptcp_pm_nl_rm_addr_or_subflow()
744 static void mptcp_pm_nl_rm_addr_received(struct mptcp_sock *msk) in mptcp_pm_nl_rm_addr_received() argument
746 mptcp_pm_nl_rm_addr_or_subflow(msk, &msk->pm.rm_list_rx, MPTCP_MIB_RMADDR); in mptcp_pm_nl_rm_addr_received()
749 void mptcp_pm_nl_rm_subflow_received(struct mptcp_sock *msk, in mptcp_pm_nl_rm_subflow_received() argument
752 mptcp_pm_nl_rm_addr_or_subflow(msk, rm_list, MPTCP_MIB_RMSUBFLOW); in mptcp_pm_nl_rm_subflow_received()
755 void mptcp_pm_nl_work(struct mptcp_sock *msk) in mptcp_pm_nl_work() argument
757 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_nl_work()
759 msk_owned_by_me(msk); in mptcp_pm_nl_work()
761 spin_lock_bh(&msk->pm.lock); in mptcp_pm_nl_work()
763 pr_debug("msk=%p status=%x", msk, pm->status); in mptcp_pm_nl_work()
766 mptcp_pm_nl_add_addr_received(msk); in mptcp_pm_nl_work()
770 mptcp_pm_nl_addr_send_ack(msk); in mptcp_pm_nl_work()
774 mptcp_pm_nl_rm_addr_received(msk); in mptcp_pm_nl_work()
778 mptcp_pm_nl_fully_established(msk); in mptcp_pm_nl_work()
782 mptcp_pm_nl_subflow_established(msk); in mptcp_pm_nl_work()
785 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_nl_work()
864 struct mptcp_sock *msk; in mptcp_pm_nl_create_listen_socket() local
874 msk = mptcp_sk(entry->lsk->sk); in mptcp_pm_nl_create_listen_socket()
875 if (!msk) { in mptcp_pm_nl_create_listen_socket()
880 ssock = __mptcp_nmpc_socket(msk); in mptcp_pm_nl_create_listen_socket()
907 int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *skc) in mptcp_pm_nl_get_local_id() argument
915 if (WARN_ON_ONCE(!msk)) in mptcp_pm_nl_get_local_id()
921 local_address((struct sock_common *)msk, &msk_local); in mptcp_pm_nl_get_local_id()
929 pernet = net_generic(sock_net((struct sock *)msk), pm_nl_pernet_id); in mptcp_pm_nl_get_local_id()
960 void mptcp_pm_nl_data_init(struct mptcp_sock *msk) in mptcp_pm_nl_data_init() argument
962 struct mptcp_pm_data *pm = &msk->pm; in mptcp_pm_nl_data_init()
965 subflows = !!mptcp_pm_get_subflows_max(msk); in mptcp_pm_nl_data_init()
966 WRITE_ONCE(pm->work_pending, (!!mptcp_pm_get_local_addr_max(msk) && subflows) || in mptcp_pm_nl_data_init()
967 !!mptcp_pm_get_add_addr_signal_max(msk)); in mptcp_pm_nl_data_init()
968 WRITE_ONCE(pm->accept_addr, !!mptcp_pm_get_add_addr_accept_max(msk) && subflows); in mptcp_pm_nl_data_init()
1001 void mptcp_pm_nl_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk) in mptcp_pm_nl_subflow_chk_stale() argument
1004 struct sock *sk = (struct sock *)msk; in mptcp_pm_nl_subflow_chk_stale()
1016 mptcp_for_each_subflow(msk, iter) { in mptcp_pm_nl_subflow_chk_stale()
1131 struct mptcp_sock *msk; in mptcp_nl_add_subflow_or_signal_addr() local
1134 while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { in mptcp_nl_add_subflow_or_signal_addr()
1135 struct sock *sk = (struct sock *)msk; in mptcp_nl_add_subflow_or_signal_addr()
1137 if (!READ_ONCE(msk->fully_established)) in mptcp_nl_add_subflow_or_signal_addr()
1141 spin_lock_bh(&msk->pm.lock); in mptcp_nl_add_subflow_or_signal_addr()
1142 mptcp_pm_create_subflow_or_signal_addr(msk); in mptcp_nl_add_subflow_or_signal_addr()
1143 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_add_subflow_or_signal_addr()
1227 static bool remove_anno_list_by_saddr(struct mptcp_sock *msk, in remove_anno_list_by_saddr() argument
1232 entry = mptcp_pm_del_add_timer(msk, addr, false); in remove_anno_list_by_saddr()
1242 static bool mptcp_pm_remove_anno_addr(struct mptcp_sock *msk, in mptcp_pm_remove_anno_addr() argument
1251 ret = remove_anno_list_by_saddr(msk, addr); in mptcp_pm_remove_anno_addr()
1253 spin_lock_bh(&msk->pm.lock); in mptcp_pm_remove_anno_addr()
1254 mptcp_pm_remove_addr(msk, &list); in mptcp_pm_remove_anno_addr()
1255 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_remove_anno_addr()
1263 struct mptcp_sock *msk; in mptcp_nl_remove_subflow_and_signal_addr() local
1271 while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { in mptcp_nl_remove_subflow_and_signal_addr()
1272 struct sock *sk = (struct sock *)msk; in mptcp_nl_remove_subflow_and_signal_addr()
1275 if (list_empty(&msk->conn_list)) { in mptcp_nl_remove_subflow_and_signal_addr()
1276 mptcp_pm_remove_anno_addr(msk, addr, false); in mptcp_nl_remove_subflow_and_signal_addr()
1281 remove_subflow = lookup_subflow_by_saddr(&msk->conn_list, addr); in mptcp_nl_remove_subflow_and_signal_addr()
1282 mptcp_pm_remove_anno_addr(msk, addr, remove_subflow); in mptcp_nl_remove_subflow_and_signal_addr()
1284 mptcp_pm_remove_subflow(msk, &list); in mptcp_nl_remove_subflow_and_signal_addr()
1308 struct mptcp_sock *msk; in mptcp_nl_remove_id_zero_address() local
1312 while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { in mptcp_nl_remove_id_zero_address()
1313 struct sock *sk = (struct sock *)msk; in mptcp_nl_remove_id_zero_address()
1316 if (list_empty(&msk->conn_list)) in mptcp_nl_remove_id_zero_address()
1319 local_address((struct sock_common *)msk, &msk_local); in mptcp_nl_remove_id_zero_address()
1324 spin_lock_bh(&msk->pm.lock); in mptcp_nl_remove_id_zero_address()
1325 mptcp_pm_remove_addr(msk, &list); in mptcp_nl_remove_id_zero_address()
1326 mptcp_pm_nl_rm_subflow_received(msk, &list); in mptcp_nl_remove_id_zero_address()
1327 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_remove_id_zero_address()
1386 static void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk, in mptcp_pm_remove_addrs_and_subflows() argument
1393 if (lookup_subflow_by_saddr(&msk->conn_list, &entry->addr) && in mptcp_pm_remove_addrs_and_subflows()
1398 } else if (remove_anno_list_by_saddr(msk, &entry->addr) && in mptcp_pm_remove_addrs_and_subflows()
1405 spin_lock_bh(&msk->pm.lock); in mptcp_pm_remove_addrs_and_subflows()
1406 mptcp_pm_remove_addr(msk, &alist); in mptcp_pm_remove_addrs_and_subflows()
1407 spin_unlock_bh(&msk->pm.lock); in mptcp_pm_remove_addrs_and_subflows()
1410 mptcp_pm_remove_subflow(msk, &slist); in mptcp_pm_remove_addrs_and_subflows()
1417 struct mptcp_sock *msk; in mptcp_nl_remove_addrs_list() local
1422 while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { in mptcp_nl_remove_addrs_list()
1423 struct sock *sk = (struct sock *)msk; in mptcp_nl_remove_addrs_list()
1426 mptcp_pm_remove_addrs_and_subflows(msk, rm_list); in mptcp_nl_remove_addrs_list()
1683 struct mptcp_sock *msk; in mptcp_nl_addr_backup() local
1686 while ((msk = mptcp_token_iter_next(net, &s_slot, &s_num)) != NULL) { in mptcp_nl_addr_backup()
1687 struct sock *sk = (struct sock *)msk; in mptcp_nl_addr_backup()
1689 if (list_empty(&msk->conn_list)) in mptcp_nl_addr_backup()
1693 spin_lock_bh(&msk->pm.lock); in mptcp_nl_addr_backup()
1694 ret = mptcp_pm_nl_mp_prio_send_ack(msk, addr, bkup); in mptcp_nl_addr_backup()
1695 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_addr_backup()
1792 const struct mptcp_sock *msk, in mptcp_event_put_token_and_ssk() argument
1795 const struct sock *sk = (const struct sock *)msk; in mptcp_event_put_token_and_ssk()
1799 if (nla_put_u32(skb, MPTCP_ATTR_TOKEN, msk->token)) in mptcp_event_put_token_and_ssk()
1825 const struct mptcp_sock *msk, in mptcp_event_sub_established() argument
1828 return mptcp_event_put_token_and_ssk(skb, msk, ssk); in mptcp_event_sub_established()
1832 const struct mptcp_sock *msk, in mptcp_event_sub_closed() argument
1837 if (mptcp_event_put_token_and_ssk(skb, msk, ssk)) in mptcp_event_sub_closed()
1854 const struct mptcp_sock *msk, in mptcp_event_created() argument
1857 int err = nla_put_u32(skb, MPTCP_ATTR_TOKEN, msk->token); in mptcp_event_created()
1865 void mptcp_event_addr_removed(const struct mptcp_sock *msk, uint8_t id) in mptcp_event_addr_removed() argument
1867 struct net *net = sock_net((const struct sock *)msk); in mptcp_event_addr_removed()
1882 if (nla_put_u32(skb, MPTCP_ATTR_TOKEN, msk->token)) in mptcp_event_addr_removed()
1896 void mptcp_event_addr_announced(const struct mptcp_sock *msk, in mptcp_event_addr_announced() argument
1899 struct net *net = sock_net((const struct sock *)msk); in mptcp_event_addr_announced()
1915 if (nla_put_u32(skb, MPTCP_ATTR_TOKEN, msk->token)) in mptcp_event_addr_announced()
1948 void mptcp_event(enum mptcp_event_type type, const struct mptcp_sock *msk, in mptcp_event() argument
1951 struct net *net = sock_net((const struct sock *)msk); in mptcp_event()
1972 if (mptcp_event_created(skb, msk, ssk) < 0) in mptcp_event()
1976 if (nla_put_u32(skb, MPTCP_ATTR_TOKEN, msk->token) < 0) in mptcp_event()
1986 if (mptcp_event_sub_established(skb, msk, ssk) < 0) in mptcp_event()
1990 if (mptcp_event_sub_closed(skb, msk, ssk) < 0) in mptcp_event()