Lines Matching refs:msk

10 void mptcp_free_local_addr_list(struct mptcp_sock *msk)  in mptcp_free_local_addr_list()  argument
13 struct sock *sk = (struct sock *)msk; in mptcp_free_local_addr_list()
16 if (!mptcp_pm_is_userspace(msk)) in mptcp_free_local_addr_list()
19 spin_lock_bh(&msk->pm.lock); in mptcp_free_local_addr_list()
20 list_splice_init(&msk->pm.userspace_pm_local_addr_list, &free_list); in mptcp_free_local_addr_list()
21 spin_unlock_bh(&msk->pm.lock); in mptcp_free_local_addr_list()
28 int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, in mptcp_userspace_pm_append_new_local_addr() argument
33 struct sock *sk = (struct sock *)msk; in mptcp_userspace_pm_append_new_local_addr()
41 spin_lock_bh(&msk->pm.lock); in mptcp_userspace_pm_append_new_local_addr()
42 list_for_each_entry(e, &msk->pm.userspace_pm_local_addr_list, list) { in mptcp_userspace_pm_append_new_local_addr()
62 spin_unlock_bh(&msk->pm.lock); in mptcp_userspace_pm_append_new_local_addr()
71 list_add_tail_rcu(&e->list, &msk->pm.userspace_pm_local_addr_list); in mptcp_userspace_pm_append_new_local_addr()
77 spin_unlock_bh(&msk->pm.lock); in mptcp_userspace_pm_append_new_local_addr()
81 int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk, in mptcp_userspace_pm_get_flags_and_ifindex_by_id() argument
90 spin_lock_bh(&msk->pm.lock); in mptcp_userspace_pm_get_flags_and_ifindex_by_id()
91 list_for_each_entry(entry, &msk->pm.userspace_pm_local_addr_list, list) { in mptcp_userspace_pm_get_flags_and_ifindex_by_id()
97 spin_unlock_bh(&msk->pm.lock); in mptcp_userspace_pm_get_flags_and_ifindex_by_id()
106 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk, in mptcp_userspace_pm_get_local_id() argument
111 inet_sk((struct sock *)msk))->inet_sport; in mptcp_userspace_pm_get_local_id()
121 return mptcp_userspace_pm_append_new_local_addr(msk, &new_entry); in mptcp_userspace_pm_get_local_id()
129 struct mptcp_sock *msk; in mptcp_nl_cmd_announce() local
140 msk = mptcp_token_get_sock(sock_net(skb->sk), token_val); in mptcp_nl_cmd_announce()
141 if (!msk) { in mptcp_nl_cmd_announce()
146 if (!mptcp_pm_is_userspace(msk)) { in mptcp_nl_cmd_announce()
162 err = mptcp_userspace_pm_append_new_local_addr(msk, &addr_val); in mptcp_nl_cmd_announce()
168 lock_sock((struct sock *)msk); in mptcp_nl_cmd_announce()
169 spin_lock_bh(&msk->pm.lock); in mptcp_nl_cmd_announce()
171 if (mptcp_pm_alloc_anno_list(msk, &addr_val)) { in mptcp_nl_cmd_announce()
172 mptcp_pm_announce_addr(msk, &addr_val.addr, false); in mptcp_nl_cmd_announce()
173 mptcp_pm_nl_addr_send_ack(msk); in mptcp_nl_cmd_announce()
176 spin_unlock_bh(&msk->pm.lock); in mptcp_nl_cmd_announce()
177 release_sock((struct sock *)msk); in mptcp_nl_cmd_announce()
181 sock_put((struct sock *)msk); in mptcp_nl_cmd_announce()
191 struct mptcp_sock *msk; in mptcp_nl_cmd_remove() local
205 msk = mptcp_token_get_sock(sock_net(skb->sk), token_val); in mptcp_nl_cmd_remove()
206 if (!msk) { in mptcp_nl_cmd_remove()
211 if (!mptcp_pm_is_userspace(msk)) { in mptcp_nl_cmd_remove()
216 lock_sock((struct sock *)msk); in mptcp_nl_cmd_remove()
218 list_for_each_entry(entry, &msk->pm.userspace_pm_local_addr_list, list) { in mptcp_nl_cmd_remove()
227 release_sock((struct sock *)msk); in mptcp_nl_cmd_remove()
233 mptcp_pm_remove_addrs_and_subflows(msk, &free_list); in mptcp_nl_cmd_remove()
235 release_sock((struct sock *)msk); in mptcp_nl_cmd_remove()
238 sock_kfree_s((struct sock *)msk, match, sizeof(*match)); in mptcp_nl_cmd_remove()
243 sock_put((struct sock *)msk); in mptcp_nl_cmd_remove()
254 struct mptcp_sock *msk; in mptcp_nl_cmd_sf_create() local
266 msk = mptcp_token_get_sock(genl_info_net(info), token_val); in mptcp_nl_cmd_sf_create()
267 if (!msk) { in mptcp_nl_cmd_sf_create()
272 if (!mptcp_pm_is_userspace(msk)) { in mptcp_nl_cmd_sf_create()
294 sk = &msk->sk.icsk_inet.sk; in mptcp_nl_cmd_sf_create()
302 sock_put((struct sock *)msk); in mptcp_nl_cmd_sf_create()
306 static struct sock *mptcp_nl_find_ssk(struct mptcp_sock *msk, in mptcp_nl_find_ssk() argument
315 mptcp_for_each_subflow(msk, subflow) { in mptcp_nl_find_ssk()
361 struct mptcp_sock *msk; in mptcp_nl_cmd_sf_destroy() local
373 msk = mptcp_token_get_sock(genl_info_net(info), token_val); in mptcp_nl_cmd_sf_destroy()
374 if (!msk) { in mptcp_nl_cmd_sf_destroy()
379 if (!mptcp_pm_is_userspace(msk)) { in mptcp_nl_cmd_sf_destroy()
406 sk = &msk->sk.icsk_inet.sk; in mptcp_nl_cmd_sf_destroy()
408 ssk = mptcp_nl_find_ssk(msk, &addr_l, &addr_r); in mptcp_nl_cmd_sf_destroy()
422 sock_put((struct sock *)msk); in mptcp_nl_cmd_sf_destroy()
430 struct mptcp_sock *msk; in mptcp_userspace_pm_set_flags() local
436 msk = mptcp_token_get_sock(net, token_val); in mptcp_userspace_pm_set_flags()
437 if (!msk) in mptcp_userspace_pm_set_flags()
440 if (!mptcp_pm_is_userspace(msk)) in mptcp_userspace_pm_set_flags()
447 lock_sock((struct sock *)msk); in mptcp_userspace_pm_set_flags()
448 ret = mptcp_pm_nl_mp_prio_send_ack(msk, &loc->addr, &rem->addr, bkup); in mptcp_userspace_pm_set_flags()
449 release_sock((struct sock *)msk); in mptcp_userspace_pm_set_flags()
452 sock_put((struct sock *)msk); in mptcp_userspace_pm_set_flags()