Lines Matching defs:msk

15 void mptcp_userspace_pm_free_local_addr_list(struct mptcp_sock *msk)
18 struct sock *sk = (struct sock *)msk;
21 spin_lock_bh(&msk->pm.lock);
22 list_splice_init(&msk->pm.userspace_pm_local_addr_list, &free_list);
23 spin_unlock_bh(&msk->pm.lock);
31 mptcp_userspace_pm_lookup_addr(struct mptcp_sock *msk,
36 mptcp_for_each_userspace_pm_addr(msk, entry) {
43 static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
48 struct sock *sk = (struct sock *)msk;
56 spin_lock_bh(&msk->pm.lock);
57 mptcp_for_each_userspace_pm_addr(msk, e) {
81 list_add_tail_rcu(&e->list, &msk->pm.userspace_pm_local_addr_list);
82 msk->pm.local_addr_used++;
89 spin_unlock_bh(&msk->pm.lock);
98 static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
101 struct sock *sk = (struct sock *)msk;
104 entry = mptcp_userspace_pm_lookup_addr(msk, &addr->addr);
113 msk->pm.local_addr_used--;
118 mptcp_userspace_pm_lookup_addr_by_id(struct mptcp_sock *msk, unsigned int id)
122 mptcp_for_each_userspace_pm_addr(msk, entry) {
129 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk,
133 inet_sk((struct sock *)msk))->inet_sport;
136 spin_lock_bh(&msk->pm.lock);
137 entry = mptcp_userspace_pm_lookup_addr(msk, &skc->addr);
138 spin_unlock_bh(&msk->pm.lock);
145 return mptcp_userspace_pm_append_new_local_addr(msk, skc, true);
148 bool mptcp_userspace_pm_is_backup(struct mptcp_sock *msk,
154 spin_lock_bh(&msk->pm.lock);
155 entry = mptcp_userspace_pm_lookup_addr(msk, skc);
157 spin_unlock_bh(&msk->pm.lock);
164 struct mptcp_sock *msk;
171 msk = mptcp_token_get_sock(genl_info_net(info), nla_get_u32(token));
172 if (!msk) {
177 if (!mptcp_pm_is_userspace(msk)) {
180 sock_put((struct sock *)msk);
184 return msk;
190 struct mptcp_sock *msk;
198 msk = mptcp_userspace_pm_get_sock(info);
199 if (!msk)
202 sk = (struct sock *)msk;
221 err = mptcp_userspace_pm_append_new_local_addr(msk, &addr_val, false);
229 spin_lock_bh(&msk->pm.lock);
231 if (mptcp_pm_alloc_anno_list(msk, &addr_val.addr)) {
232 msk->pm.add_addr_signaled++;
233 mptcp_pm_announce_addr(msk, &addr_val.addr, false);
234 mptcp_pm_addr_send_ack(msk);
237 spin_unlock_bh(&msk->pm.lock);
246 static int mptcp_userspace_pm_remove_id_zero_address(struct mptcp_sock *msk)
250 struct sock *sk = (struct sock *)msk;
255 mptcp_for_each_subflow(msk, subflow) {
266 spin_lock_bh(&msk->pm.lock);
267 mptcp_pm_remove_addr(msk, &list);
268 spin_unlock_bh(&msk->pm.lock);
277 void mptcp_pm_remove_addr_entry(struct mptcp_sock *msk,
284 if (mptcp_remove_anno_list_by_saddr(msk, &entry->addr))
286 else if (!mptcp_lookup_subflow_by_saddr(&msk->conn_list, &entry->addr))
291 spin_lock_bh(&msk->pm.lock);
292 msk->pm.add_addr_signaled -= anno_nr;
293 mptcp_pm_remove_addr(msk, &alist);
294 spin_unlock_bh(&msk->pm.lock);
300 struct mptcp_sock *msk;
312 msk = mptcp_userspace_pm_get_sock(info);
313 if (!msk)
316 sk = (struct sock *)msk;
319 err = mptcp_userspace_pm_remove_id_zero_address(msk);
325 spin_lock_bh(&msk->pm.lock);
326 match = mptcp_userspace_pm_lookup_addr_by_id(msk, id_val);
328 spin_unlock_bh(&msk->pm.lock);
334 spin_unlock_bh(&msk->pm.lock);
336 mptcp_pm_remove_addr_entry(msk, match);
363 struct mptcp_sock *msk;
371 msk = mptcp_userspace_pm_get_sock(info);
372 if (!msk)
375 sk = (struct sock *)msk;
400 err = mptcp_userspace_pm_append_new_local_addr(msk, &entry, false);
418 spin_lock_bh(&msk->pm.lock);
420 mptcp_userspace_pm_delete_local_addr(msk, &entry);
422 msk->pm.subflows++;
423 spin_unlock_bh(&msk->pm.lock);
430 static struct sock *mptcp_nl_find_ssk(struct mptcp_sock *msk,
439 mptcp_for_each_subflow(msk, subflow) {
481 struct mptcp_sock *msk;
489 msk = mptcp_userspace_pm_get_sock(info);
490 if (!msk)
493 sk = (struct sock *)msk;
534 ssk = mptcp_nl_find_ssk(msk, &addr_l.addr, &addr_r);
541 spin_lock_bh(&msk->pm.lock);
542 mptcp_userspace_pm_delete_local_addr(msk, &addr_l);
543 spin_unlock_bh(&msk->pm.lock);
561 struct mptcp_sock *msk;
569 msk = mptcp_userspace_pm_get_sock(info);
570 if (!msk)
573 sk = (struct sock *)msk;
598 spin_lock_bh(&msk->pm.lock);
599 entry = mptcp_userspace_pm_lookup_addr(msk, &local->addr);
606 spin_unlock_bh(&msk->pm.lock);
609 ret = mptcp_pm_mp_prio_send_ack(msk, &local->addr, &rem, bkup);
629 struct mptcp_sock *msk;
637 msk = mptcp_userspace_pm_get_sock(info);
638 if (!msk)
641 sk = (struct sock *)msk;
644 spin_lock_bh(&msk->pm.lock);
645 mptcp_for_each_userspace_pm_addr(msk, entry) {
654 spin_unlock_bh(&msk->pm.lock);
666 struct mptcp_sock *msk;
670 msk = mptcp_userspace_pm_get_sock(info);
671 if (!msk)
674 sk = (struct sock *)msk;
677 spin_lock_bh(&msk->pm.lock);
678 entry = mptcp_userspace_pm_lookup_addr_by_id(msk, id);
683 spin_unlock_bh(&msk->pm.lock);