Lines Matching refs:ssk
135 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in lookup_subflow_by_daddr() local
137 if (!((1 << inet_sk_state_load(ssk)) & in lookup_subflow_by_daddr()
141 remote_address((struct sock_common *)ssk, &cur); in lookup_subflow_by_daddr()
424 struct sock *sk = (struct sock *)msk, *ssk; in fill_remote_addresses_vec() local
457 ssk = mptcp_subflow_tcp_sock(subflow); in fill_remote_addresses_vec()
458 remote_address((struct sock_common *)ssk, &addrs[i]); in fill_remote_addresses_vec()
486 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in __mptcp_pm_send_ack() local
492 slow = lock_sock_fast(ssk); in __mptcp_pm_send_ack()
498 __mptcp_subflow_send_ack(ssk); in __mptcp_pm_send_ack()
499 unlock_sock_fast(ssk, slow); in __mptcp_pm_send_ack()
812 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_pm_nl_mp_prio_send_ack() local
815 mptcp_local_address((struct sock_common *)ssk, &local); in mptcp_pm_nl_mp_prio_send_ack()
820 remote_address((struct sock_common *)ssk, &remote); in mptcp_pm_nl_mp_prio_send_ack()
859 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_pm_nl_rm_addr_or_subflow() local
864 if ((1 << inet_sk_state_load(ssk)) & in mptcp_pm_nl_rm_addr_or_subflow()
876 mptcp_subflow_shutdown(sk, ssk, how); in mptcp_pm_nl_rm_addr_or_subflow()
880 mptcp_close_ssk(sk, ssk, subflow); in mptcp_pm_nl_rm_addr_or_subflow()
1073 struct sock *newsk, *ssk; in mptcp_pm_nl_create_listen_socket() local
1099 ssk = __mptcp_nmpc_sk(mptcp_sk(newsk)); in mptcp_pm_nl_create_listen_socket()
1101 if (IS_ERR(ssk)) in mptcp_pm_nl_create_listen_socket()
1102 return PTR_ERR(ssk); in mptcp_pm_nl_create_listen_socket()
1109 if (ssk->sk_family == AF_INET) in mptcp_pm_nl_create_listen_socket()
1110 err = inet_bind_sk(ssk, (struct sockaddr *)&addr, addrlen); in mptcp_pm_nl_create_listen_socket()
1112 else if (ssk->sk_family == AF_INET6) in mptcp_pm_nl_create_listen_socket()
1113 err = inet6_bind_sk(ssk, (struct sockaddr *)&addr, addrlen); in mptcp_pm_nl_create_listen_socket()
1124 lock_sock(ssk); in mptcp_pm_nl_create_listen_socket()
1125 WRITE_ONCE(mptcp_subflow_ctx(ssk)->pm_listener, true); in mptcp_pm_nl_create_listen_socket()
1126 err = __inet_listen_sk(ssk, backlog); in mptcp_pm_nl_create_listen_socket()
1128 mptcp_event_pm_listener(ssk, MPTCP_EVENT_LISTENER_CREATED); in mptcp_pm_nl_create_listen_socket()
1129 release_sock(ssk); in mptcp_pm_nl_create_listen_socket()
1198 void mptcp_pm_nl_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk) in mptcp_pm_nl_subflow_chk_stale() argument
1200 struct mptcp_subflow_context *iter, *subflow = mptcp_subflow_ctx(ssk); in mptcp_pm_nl_subflow_chk_stale()
1217 slow = lock_sock_fast(ssk); in mptcp_pm_nl_subflow_chk_stale()
1218 if (!tcp_rtx_and_write_queues_empty(ssk)) { in mptcp_pm_nl_subflow_chk_stale()
1223 unlock_sock_fast(ssk, slow); in mptcp_pm_nl_subflow_chk_stale()
2085 static int mptcp_event_add_subflow(struct sk_buff *skb, const struct sock *ssk) in mptcp_event_add_subflow() argument
2087 const struct inet_sock *issk = inet_sk(ssk); in mptcp_event_add_subflow()
2090 if (nla_put_u16(skb, MPTCP_ATTR_FAMILY, ssk->sk_family)) in mptcp_event_add_subflow()
2093 switch (ssk->sk_family) { in mptcp_event_add_subflow()
2102 const struct ipv6_pinfo *np = inet6_sk(ssk); in mptcp_event_add_subflow()
2106 if (nla_put_in6_addr(skb, MPTCP_ATTR_DADDR6, &ssk->sk_v6_daddr)) in mptcp_event_add_subflow()
2121 sf = mptcp_subflow_ctx(ssk); in mptcp_event_add_subflow()
2136 const struct sock *ssk) in mptcp_event_put_token_and_ssk() argument
2145 if (mptcp_event_add_subflow(skb, ssk)) in mptcp_event_put_token_and_ssk()
2148 sf = mptcp_subflow_ctx(ssk); in mptcp_event_put_token_and_ssk()
2155 if (ssk->sk_bound_dev_if && in mptcp_event_put_token_and_ssk()
2156 nla_put_s32(skb, MPTCP_ATTR_IF_IDX, ssk->sk_bound_dev_if)) in mptcp_event_put_token_and_ssk()
2159 sk_err = READ_ONCE(ssk->sk_err); in mptcp_event_put_token_and_ssk()
2169 const struct sock *ssk) in mptcp_event_sub_established() argument
2171 return mptcp_event_put_token_and_ssk(skb, msk, ssk); in mptcp_event_sub_established()
2176 const struct sock *ssk) in mptcp_event_sub_closed() argument
2180 if (mptcp_event_put_token_and_ssk(skb, msk, ssk)) in mptcp_event_sub_closed()
2183 sf = mptcp_subflow_ctx(ssk); in mptcp_event_sub_closed()
2198 const struct sock *ssk) in mptcp_event_created() argument
2208 return mptcp_event_add_subflow(skb, ssk); in mptcp_event_created()
2242 void mptcp_event_addr_announced(const struct sock *ssk, in mptcp_event_addr_announced() argument
2245 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_event_addr_announced()
2247 struct net *net = sock_net(ssk); in mptcp_event_addr_announced()
2271 inet_sk(ssk)->inet_dport : in mptcp_event_addr_announced()
2299 void mptcp_event_pm_listener(const struct sock *ssk, in mptcp_event_pm_listener() argument
2302 const struct inet_sock *issk = inet_sk(ssk); in mptcp_event_pm_listener()
2303 struct net *net = sock_net(ssk); in mptcp_event_pm_listener()
2318 if (nla_put_u16(skb, MPTCP_ATTR_FAMILY, ssk->sk_family)) in mptcp_event_pm_listener()
2324 switch (ssk->sk_family) { in mptcp_event_pm_listener()
2331 const struct ipv6_pinfo *np = inet6_sk(ssk); in mptcp_event_pm_listener()
2352 const struct sock *ssk, gfp_t gfp) in mptcp_event() argument
2375 if (mptcp_event_created(skb, msk, ssk) < 0) in mptcp_event()
2389 if (mptcp_event_sub_established(skb, msk, ssk) < 0) in mptcp_event()
2393 if (mptcp_event_sub_closed(skb, msk, ssk) < 0) in mptcp_event()