Lines Matching refs:subflow_req
35 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);
37 pr_debug("subflow_req=%p", subflow_req);
39 if (subflow_req->msk)
40 sock_put((struct sock *)subflow_req->msk);
66 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);
71 msk = mptcp_token_get_sock(sock_net(req_to_sk(req)), subflow_req->token);
82 subflow_req->local_id = local_id;
84 get_random_bytes(&subflow_req->local_nonce, sizeof(u32));
87 subflow_req->local_nonce,
88 subflow_req->remote_nonce, hmac);
90 subflow_req->thmac = get_unaligned_be64(hmac);
96 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);
98 subflow_req->mp_capable = 0;
99 subflow_req->mp_join = 0;
100 subflow_req->msk = NULL;
119 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);
123 pr_debug("subflow_req=%p, listener=%p", subflow_req, listener);
143 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq;
146 get_random_bytes(&subflow_req->local_key, sizeof(subflow_req->local_key));
147 } while (subflow_req->local_key == 0);
150 mptcp_crypto_key_sha(subflow_req->local_key,
151 &subflow_req->token,
152 &subflow_req->idsn);
153 if (mptcp_token_exists(subflow_req->token)) {
157 subflow_req->mp_capable = 1;
164 subflow_req->mp_capable = 1;
169 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq;
170 subflow_req->mp_join = 1;
171 subflow_req->backup = mp_opt.backup;
172 subflow_req->remote_id = mp_opt.join_id;
173 subflow_req->token = mp_opt.token;
174 subflow_req->remote_nonce = mp_opt.nonce;
175 subflow_req->msk = subflow_token_join_request(req, skb);
177 if (unlikely(req->syncookie) && subflow_req->msk) {
178 if (mptcp_can_accept_new_subflow(subflow_req->msk))
179 subflow_init_req_cookie_join_save(subflow_req, skb);
182 pr_debug("token=%u, remote_nonce=%u msk=%p", subflow_req->token,
183 subflow_req->remote_nonce, subflow_req->msk);
192 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);
209 subflow_req->local_key = mp_opt.rcvr_key;
214 subflow_req->mp_capable = 1;
215 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq - 1;
217 if (!mptcp_token_join_cookie_init_state(subflow_req, skb))
220 if (mptcp_can_accept_new_subflow(subflow_req->msk))
221 subflow_req->mp_join = 1;
223 subflow_req->ssn_offset = TCP_SKB_CB(skb)->seq - 1;
444 const struct mptcp_subflow_request_sock *subflow_req;
448 subflow_req = mptcp_subflow_rsk(req);
449 msk = subflow_req->msk;
454 subflow_req->remote_nonce,
455 subflow_req->local_nonce, hmac);
533 struct mptcp_subflow_request_sock *subflow_req;
547 subflow_req = mptcp_subflow_rsk(req);
548 fallback_is_fatal = tcp_rsk(req)->is_mptcp && subflow_req->mp_join;
554 if (subflow_req->mp_capable) {
572 } else if (subflow_req->mp_join) {
575 !mptcp_can_accept_new_subflow(subflow_req->msk)) {
613 mptcp_token_accept(subflow_req, mptcp_sk(new_msk));
625 owner = subflow_req->msk;
630 subflow_req->msk = NULL;
1349 struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);
1354 (!subflow_req->mp_capable && !subflow_req->mp_join)) {
1373 if (subflow_req->mp_capable) {
1378 new_ctx->local_key = subflow_req->local_key;
1379 new_ctx->token = subflow_req->token;
1380 new_ctx->ssn_offset = subflow_req->ssn_offset;
1381 new_ctx->idsn = subflow_req->idsn;
1382 } else if (subflow_req->mp_join) {
1383 new_ctx->ssn_offset = subflow_req->ssn_offset;
1386 new_ctx->backup = subflow_req->backup;
1387 new_ctx->local_id = subflow_req->local_id;
1388 new_ctx->remote_id = subflow_req->remote_id;
1389 new_ctx->token = subflow_req->token;
1390 new_ctx->thmac = subflow_req->thmac;