Lines Matching refs:ssk

78 		struct sock *ssk = mptcp_subflow_tcp_sock(subflow);  in mptcp_sol_socket_sync_intval()  local
79 bool slow = lock_sock_fast(ssk); in mptcp_sol_socket_sync_intval()
83 sock_valbool_flag(ssk, SOCK_DBG, !!val); in mptcp_sol_socket_sync_intval()
86 if (ssk->sk_prot->keepalive) in mptcp_sol_socket_sync_intval()
87 ssk->sk_prot->keepalive(ssk, !!val); in mptcp_sol_socket_sync_intval()
88 sock_valbool_flag(ssk, SOCK_KEEPOPEN, !!val); in mptcp_sol_socket_sync_intval()
91 ssk->sk_priority = val; in mptcp_sol_socket_sync_intval()
95 ssk->sk_userlocks |= SOCK_SNDBUF_LOCK; in mptcp_sol_socket_sync_intval()
96 WRITE_ONCE(ssk->sk_sndbuf, sk->sk_sndbuf); in mptcp_sol_socket_sync_intval()
100 ssk->sk_userlocks |= SOCK_RCVBUF_LOCK; in mptcp_sol_socket_sync_intval()
101 WRITE_ONCE(ssk->sk_rcvbuf, sk->sk_rcvbuf); in mptcp_sol_socket_sync_intval()
104 if (READ_ONCE(ssk->sk_mark) != sk->sk_mark) { in mptcp_sol_socket_sync_intval()
105 ssk->sk_mark = sk->sk_mark; in mptcp_sol_socket_sync_intval()
106 sk_dst_reset(ssk); in mptcp_sol_socket_sync_intval()
110 WRITE_ONCE(ssk->sk_incoming_cpu, val); in mptcp_sol_socket_sync_intval()
115 unlock_sock_fast(ssk, slow); in mptcp_sol_socket_sync_intval()
159 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_setsockopt_sol_socket_tstamp() local
160 bool slow = lock_sock_fast(ssk); in mptcp_setsockopt_sol_socket_tstamp()
163 unlock_sock_fast(ssk, slow); in mptcp_setsockopt_sol_socket_tstamp()
237 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_setsockopt_sol_socket_timestamping() local
238 bool slow = lock_sock_fast(ssk); in mptcp_setsockopt_sol_socket_timestamping()
241 unlock_sock_fast(ssk, slow); in mptcp_setsockopt_sol_socket_timestamping()
272 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_setsockopt_sol_socket_linger() local
273 bool slow = lock_sock_fast(ssk); in mptcp_setsockopt_sol_socket_linger()
276 sock_reset_flag(ssk, SOCK_LINGER); in mptcp_setsockopt_sol_socket_linger()
278 ssk->sk_lingertime = sk->sk_lingertime; in mptcp_setsockopt_sol_socket_linger()
279 sock_set_flag(ssk, SOCK_LINGER); in mptcp_setsockopt_sol_socket_linger()
283 unlock_sock_fast(ssk, slow); in mptcp_setsockopt_sol_socket_linger()
603 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_setsockopt_sol_tcp_congestion() local
606 lock_sock(ssk); in mptcp_setsockopt_sol_tcp_congestion()
607 err = tcp_set_congestion_control(ssk, name, true, cap_net_admin); in mptcp_setsockopt_sol_tcp_congestion()
611 release_sock(ssk); in mptcp_setsockopt_sol_tcp_congestion()
638 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_setsockopt_sol_tcp_cork() local
640 lock_sock(ssk); in mptcp_setsockopt_sol_tcp_cork()
641 __tcp_sock_set_cork(ssk, !!val); in mptcp_setsockopt_sol_tcp_cork()
642 release_sock(ssk); in mptcp_setsockopt_sol_tcp_cork()
668 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_setsockopt_sol_tcp_nodelay() local
670 lock_sock(ssk); in mptcp_setsockopt_sol_tcp_nodelay()
671 __tcp_sock_set_nodelay(ssk, !!val); in mptcp_setsockopt_sol_tcp_nodelay()
672 release_sock(ssk); in mptcp_setsockopt_sol_tcp_nodelay()
737 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_setsockopt_v4_set_tos() local
739 __ip_sock_set_tos(ssk, val); in mptcp_setsockopt_v4_set_tos()
825 struct sock *ssk; in mptcp_setsockopt() local
842 ssk = __mptcp_tcp_fallback(msk); in mptcp_setsockopt()
844 if (ssk) in mptcp_setsockopt()
845 return tcp_setsockopt(ssk, level, optname, optval, optlen); in mptcp_setsockopt()
865 struct sock *ssk; in mptcp_getsockopt_first_sf_only() local
868 ssk = msk->first; in mptcp_getsockopt_first_sf_only()
869 if (ssk) { in mptcp_getsockopt_first_sf_only()
870 ret = tcp_getsockopt(ssk, level, optname, optval, optlen); in mptcp_getsockopt_first_sf_only()
1017 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_getsockopt_tcpinfo() local
1024 tcp_get_info(ssk, &info); in mptcp_getsockopt_tcpinfo()
1109 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_getsockopt_subflow_addrs() local
1116 mptcp_get_sub_addrs(ssk, &a); in mptcp_getsockopt_subflow_addrs()
1225 struct sock *ssk; in mptcp_getsockopt() local
1236 ssk = __mptcp_tcp_fallback(msk); in mptcp_getsockopt()
1238 if (ssk) in mptcp_getsockopt()
1239 return tcp_getsockopt(ssk, level, optname, optval, option); in mptcp_getsockopt()
1250 static void sync_socket_options(struct mptcp_sock *msk, struct sock *ssk) in sync_socket_options() argument
1255 if (ssk->sk_prot->keepalive) { in sync_socket_options()
1257 ssk->sk_prot->keepalive(ssk, 1); in sync_socket_options()
1259 ssk->sk_prot->keepalive(ssk, 0); in sync_socket_options()
1262 ssk->sk_priority = sk->sk_priority; in sync_socket_options()
1263 ssk->sk_bound_dev_if = sk->sk_bound_dev_if; in sync_socket_options()
1264 ssk->sk_incoming_cpu = sk->sk_incoming_cpu; in sync_socket_options()
1265 ssk->sk_ipv6only = sk->sk_ipv6only; in sync_socket_options()
1266 __ip_sock_set_tos(ssk, inet_sk(sk)->tos); in sync_socket_options()
1269 ssk->sk_userlocks |= sk->sk_userlocks & tx_rx_locks; in sync_socket_options()
1271 WRITE_ONCE(ssk->sk_sndbuf, sk->sk_sndbuf); in sync_socket_options()
1273 WRITE_ONCE(ssk->sk_rcvbuf, sk->sk_rcvbuf); in sync_socket_options()
1277 ssk->sk_lingertime = sk->sk_lingertime; in sync_socket_options()
1278 sock_set_flag(ssk, SOCK_LINGER); in sync_socket_options()
1280 sock_reset_flag(ssk, SOCK_LINGER); in sync_socket_options()
1283 if (sk->sk_mark != ssk->sk_mark) { in sync_socket_options()
1284 ssk->sk_mark = sk->sk_mark; in sync_socket_options()
1285 sk_dst_reset(ssk); in sync_socket_options()
1288 sock_valbool_flag(ssk, SOCK_DBG, sock_flag(sk, SOCK_DBG)); in sync_socket_options()
1290 if (inet_csk(sk)->icsk_ca_ops != inet_csk(ssk)->icsk_ca_ops) in sync_socket_options()
1291 tcp_set_congestion_control(ssk, msk->ca_name, false, true); in sync_socket_options()
1292 __tcp_sock_set_cork(ssk, !!msk->cork); in sync_socket_options()
1293 __tcp_sock_set_nodelay(ssk, !!msk->nodelay); in sync_socket_options()
1295 inet_sk(ssk)->transparent = inet_sk(sk)->transparent; in sync_socket_options()
1296 inet_sk(ssk)->freebind = inet_sk(sk)->freebind; in sync_socket_options()
1299 static void __mptcp_sockopt_sync(struct mptcp_sock *msk, struct sock *ssk) in __mptcp_sockopt_sync() argument
1301 bool slow = lock_sock_fast(ssk); in __mptcp_sockopt_sync()
1303 sync_socket_options(msk, ssk); in __mptcp_sockopt_sync()
1305 unlock_sock_fast(ssk, slow); in __mptcp_sockopt_sync()
1308 void mptcp_sockopt_sync(struct mptcp_sock *msk, struct sock *ssk) in mptcp_sockopt_sync() argument
1310 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_sockopt_sync()
1315 __mptcp_sockopt_sync(msk, ssk); in mptcp_sockopt_sync()
1321 void mptcp_sockopt_sync_locked(struct mptcp_sock *msk, struct sock *ssk) in mptcp_sockopt_sync_locked() argument
1323 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_sockopt_sync_locked()
1328 sync_socket_options(msk, ssk); in mptcp_sockopt_sync_locked()