Lines Matching refs:subflow_req

35 	struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);  in subflow_req_destructor()  local
37 pr_debug("subflow_req=%p", subflow_req); in subflow_req_destructor()
39 if (subflow_req->msk) in subflow_req_destructor()
40 sock_put((struct sock *)subflow_req->msk); in subflow_req_destructor()
67 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req); in subflow_token_join_request() local
72 msk = mptcp_token_get_sock(sock_net(req_to_sk(req)), subflow_req->token); in subflow_token_join_request()
83 subflow_req->local_id = local_id; in subflow_token_join_request()
85 get_random_bytes(&subflow_req->local_nonce, sizeof(u32)); in subflow_token_join_request()
88 subflow_req->local_nonce, in subflow_token_join_request()
89 subflow_req->remote_nonce, hmac); in subflow_token_join_request()
91 subflow_req->thmac = get_unaligned_be64(hmac); in subflow_token_join_request()
97 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req); in __subflow_init_req() local
99 subflow_req->mp_capable = 0; in __subflow_init_req()
100 subflow_req->mp_join = 0; in __subflow_init_req()
101 subflow_req->msk = NULL; in __subflow_init_req()
120 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req); in subflow_init_req() local
124 pr_debug("subflow_req=%p, listener=%p", subflow_req, listener); in subflow_init_req()
144 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq; in subflow_init_req()
147 get_random_bytes(&subflow_req->local_key, sizeof(subflow_req->local_key)); in subflow_init_req()
148 } while (subflow_req->local_key == 0); in subflow_init_req()
151 mptcp_crypto_key_sha(subflow_req->local_key, in subflow_init_req()
152 &subflow_req->token, in subflow_init_req()
153 &subflow_req->idsn); in subflow_init_req()
154 if (mptcp_token_exists(subflow_req->token)) { in subflow_init_req()
158 subflow_req->mp_capable = 1; in subflow_init_req()
165 subflow_req->mp_capable = 1; in subflow_init_req()
170 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq; in subflow_init_req()
171 subflow_req->mp_join = 1; in subflow_init_req()
172 subflow_req->backup = mp_opt.backup; in subflow_init_req()
173 subflow_req->remote_id = mp_opt.join_id; in subflow_init_req()
174 subflow_req->token = mp_opt.token; in subflow_init_req()
175 subflow_req->remote_nonce = mp_opt.nonce; in subflow_init_req()
176 subflow_req->msk = subflow_token_join_request(req, skb); in subflow_init_req()
178 if (unlikely(req->syncookie) && subflow_req->msk) { in subflow_init_req()
179 if (mptcp_can_accept_new_subflow(subflow_req->msk)) in subflow_init_req()
180 subflow_init_req_cookie_join_save(subflow_req, skb); in subflow_init_req()
183 pr_debug("token=%u, remote_nonce=%u msk=%p", subflow_req->token, in subflow_init_req()
184 subflow_req->remote_nonce, subflow_req->msk); in subflow_init_req()
193 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req); in mptcp_subflow_init_cookie_req() local
210 subflow_req->local_key = mp_opt.rcvr_key; in mptcp_subflow_init_cookie_req()
215 subflow_req->mp_capable = 1; in mptcp_subflow_init_cookie_req()
216 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq - 1; in mptcp_subflow_init_cookie_req()
218 if (!mptcp_token_join_cookie_init_state(subflow_req, skb)) in mptcp_subflow_init_cookie_req()
221 if (mptcp_can_accept_new_subflow(subflow_req->msk)) in mptcp_subflow_init_cookie_req()
222 subflow_req->mp_join = 1; in mptcp_subflow_init_cookie_req()
224 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq - 1; in mptcp_subflow_init_cookie_req()
419 const struct mptcp_subflow_request_sock *subflow_req; in subflow_hmac_valid() local
423 subflow_req = mptcp_subflow_rsk(req); in subflow_hmac_valid()
424 msk = subflow_req->msk; in subflow_hmac_valid()
429 subflow_req->remote_nonce, in subflow_hmac_valid()
430 subflow_req->local_nonce, hmac); in subflow_hmac_valid()
508 struct mptcp_subflow_request_sock *subflow_req; in subflow_syn_recv_sock() local
522 subflow_req = mptcp_subflow_rsk(req); in subflow_syn_recv_sock()
523 fallback_is_fatal = tcp_rsk(req)->is_mptcp && subflow_req->mp_join; in subflow_syn_recv_sock()
529 if (subflow_req->mp_capable) { in subflow_syn_recv_sock()
547 } else if (subflow_req->mp_join) { in subflow_syn_recv_sock()
550 !mptcp_can_accept_new_subflow(subflow_req->msk)) { in subflow_syn_recv_sock()
588 mptcp_token_accept(subflow_req, mptcp_sk(new_msk)); in subflow_syn_recv_sock()
600 owner = subflow_req->msk; in subflow_syn_recv_sock()
605 subflow_req->msk = NULL; in subflow_syn_recv_sock()
1324 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req); in subflow_ulp_clone() local
1329 (!subflow_req->mp_capable && !subflow_req->mp_join)) { in subflow_ulp_clone()
1348 if (subflow_req->mp_capable) { in subflow_ulp_clone()
1353 new_ctx->local_key = subflow_req->local_key; in subflow_ulp_clone()
1354 new_ctx->token = subflow_req->token; in subflow_ulp_clone()
1355 new_ctx->ssn_offset = subflow_req->ssn_offset; in subflow_ulp_clone()
1356 new_ctx->idsn = subflow_req->idsn; in subflow_ulp_clone()
1357 } else if (subflow_req->mp_join) { in subflow_ulp_clone()
1358 new_ctx->ssn_offset = subflow_req->ssn_offset; in subflow_ulp_clone()
1361 new_ctx->backup = subflow_req->backup; in subflow_ulp_clone()
1362 new_ctx->local_id = subflow_req->local_id; in subflow_ulp_clone()
1363 new_ctx->remote_id = subflow_req->remote_id; in subflow_ulp_clone()
1364 new_ctx->token = subflow_req->token; in subflow_ulp_clone()
1365 new_ctx->thmac = subflow_req->thmac; in subflow_ulp_clone()