Lines Matching refs:msk

11 void mptcp_free_local_addr_list(struct mptcp_sock *msk)
14 struct sock *sk = (struct sock *)msk;
17 if (!mptcp_pm_is_userspace(msk))
20 spin_lock_bh(&msk->pm.lock);
21 list_splice_init(&msk->pm.userspace_pm_local_addr_list, &free_list);
22 spin_unlock_bh(&msk->pm.lock);
29 static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
35 struct sock *sk = (struct sock *)msk;
43 spin_lock_bh(&msk->pm.lock);
44 list_for_each_entry(e, &msk->pm.userspace_pm_local_addr_list, list) {
73 list_add_tail_rcu(&e->list, &msk->pm.userspace_pm_local_addr_list);
74 msk->pm.local_addr_used++;
81 spin_unlock_bh(&msk->pm.lock);
90 static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
95 list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
102 msk->pm.local_addr_used--;
111 mptcp_userspace_pm_lookup_addr_by_id(struct mptcp_sock *msk, unsigned int id)
115 list_for_each_entry(entry, &msk->pm.userspace_pm_local_addr_list, list) {
122 int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
128 spin_lock_bh(&msk->pm.lock);
129 match = mptcp_userspace_pm_lookup_addr_by_id(msk, id);
130 spin_unlock_bh(&msk->pm.lock);
139 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk,
144 inet_sk((struct sock *)msk))->inet_sport;
146 spin_lock_bh(&msk->pm.lock);
147 list_for_each_entry(e, &msk->pm.userspace_pm_local_addr_list, list) {
153 spin_unlock_bh(&msk->pm.lock);
165 return mptcp_userspace_pm_append_new_local_addr(msk, &new_entry, true);
173 struct mptcp_sock *msk;
185 msk = mptcp_token_get_sock(sock_net(skb->sk), token_val);
186 if (!msk) {
191 sk = (struct sock *)msk;
193 if (!mptcp_pm_is_userspace(msk)) {
210 err = mptcp_userspace_pm_append_new_local_addr(msk, &addr_val, false);
217 spin_lock_bh(&msk->pm.lock);
219 if (mptcp_pm_alloc_anno_list(msk, &addr_val.addr)) {
220 msk->pm.add_addr_signaled++;
221 mptcp_pm_announce_addr(msk, &addr_val.addr, false);
222 mptcp_pm_nl_addr_send_ack(msk);
225 spin_unlock_bh(&msk->pm.lock);
234 static int mptcp_userspace_pm_remove_id_zero_address(struct mptcp_sock *msk,
239 struct sock *sk = (struct sock *)msk;
244 mptcp_for_each_subflow(msk, subflow) {
257 spin_lock_bh(&msk->pm.lock);
258 mptcp_pm_remove_addr(msk, &list);
259 spin_unlock_bh(&msk->pm.lock);
274 struct mptcp_sock *msk;
289 msk = mptcp_token_get_sock(sock_net(skb->sk), token_val);
290 if (!msk) {
295 sk = (struct sock *)msk;
297 if (!mptcp_pm_is_userspace(msk)) {
303 err = mptcp_userspace_pm_remove_id_zero_address(msk, info);
309 match = mptcp_userspace_pm_lookup_addr_by_id(msk, id_val);
318 mptcp_pm_remove_addrs(msk, &free_list);
339 struct mptcp_sock *msk;
351 msk = mptcp_token_get_sock(genl_info_net(info), token_val);
352 if (!msk) {
357 sk = (struct sock *)msk;
359 if (!mptcp_pm_is_userspace(msk)) {
389 err = mptcp_userspace_pm_append_new_local_addr(msk, &local, false);
401 spin_lock_bh(&msk->pm.lock);
403 mptcp_userspace_pm_delete_local_addr(msk, &local);
405 msk->pm.subflows++;
406 spin_unlock_bh(&msk->pm.lock);
413 static struct sock *mptcp_nl_find_ssk(struct mptcp_sock *msk,
422 mptcp_for_each_subflow(msk, subflow) {
468 struct mptcp_sock *msk;
480 msk = mptcp_token_get_sock(genl_info_net(info), token_val);
481 if (!msk) {
486 sk = (struct sock *)msk;
488 if (!mptcp_pm_is_userspace(msk)) {
528 ssk = mptcp_nl_find_ssk(msk, &addr_l, &addr_r);
533 spin_lock_bh(&msk->pm.lock);
534 mptcp_userspace_pm_delete_local_addr(msk, &entry);
535 spin_unlock_bh(&msk->pm.lock);
558 struct mptcp_sock *msk;
566 msk = mptcp_token_get_sock(net, token_val);
567 if (!msk) {
572 sk = (struct sock *)msk;
574 if (!mptcp_pm_is_userspace(msk)) {
600 ret = mptcp_pm_nl_mp_prio_send_ack(msk, &loc.addr, &rem.addr, bkup);
617 struct mptcp_sock *msk;
626 msk = mptcp_token_get_sock(net, nla_get_u32(token));
627 if (!msk) {
632 sk = (struct sock *)msk;
634 if (!mptcp_pm_is_userspace(msk)) {
640 spin_lock_bh(&msk->pm.lock);
641 list_for_each_entry(entry, &msk->pm.userspace_pm_local_addr_list, list) {
659 spin_unlock_bh(&msk->pm.lock);
675 struct mptcp_sock *msk;
681 msk = mptcp_token_get_sock(net, nla_get_u32(token));
682 if (!msk) {
687 sk = (struct sock *)msk;
689 if (!mptcp_pm_is_userspace(msk)) {
713 spin_lock_bh(&msk->pm.lock);
714 entry = mptcp_userspace_pm_lookup_addr_by_id(msk, addr.addr.id);
727 spin_unlock_bh(&msk->pm.lock);
733 spin_unlock_bh(&msk->pm.lock);