Lines Matching defs:subflow

69 		 * negotiated, the receiver MUST close the subflow with a RST as
336 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
341 subflow->snd_isn = TCP_SKB_CB(skb)->end_seq;
342 if (subflow->request_mptcp) {
346 } else if (subflow->request_join) {
347 pr_debug("remote_token=%u, nonce=%u", subflow->remote_token,
348 subflow->local_nonce);
350 opts->join_id = subflow->local_id;
351 opts->token = subflow->remote_token;
352 opts->nonce = subflow->local_nonce;
353 opts->backup = subflow->request_bkup;
360 /* MP_JOIN client subflow must wait for 4th ack before sending any data:
361 * TCP can't schedule delack timer before the subflow is fully established.
398 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
412 if (subflow->fully_established ||
413 subflow->snd_isn != TCP_SKB_CB(skb)->seq)
416 if (subflow->mp_capable) {
426 opts->sndr_key = subflow->local_key;
427 opts->rcvr_key = subflow->remote_key;
431 * packets that start the first subflow of an MPTCP connection,
439 pr_debug("subflow=%p, local_key=%llu, remote_key=%llu map_len=%d",
440 subflow, subflow->local_key, subflow->remote_key,
444 } else if (subflow->mp_join) {
446 memcpy(opts->hmac, subflow->hmac, MPTCPOPT_HMAC_LEN);
448 pr_debug("subflow=%p", subflow);
456 static void mptcp_write_data_fin(struct mptcp_subflow_context *subflow,
462 u64 data_fin_tx_seq = READ_ONCE(mptcp_sk(subflow->conn)->write_seq) - 1;
489 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
490 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
511 mptcp_write_data_fin(subflow, skb, &opts->ext_copy);
516 * if the first subflow may have the already the remote key handy
584 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
585 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
632 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
633 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
725 struct mptcp_subflow_context *subflow,
730 * will make the subflow fully established
732 if (likely(subflow->fully_established)) {
737 if (TCP_SKB_CB(skb)->seq == subflow->ssn_offset + 1 &&
739 subflow->mp_join && mp_opt->mp_join &&
745 /* we must process OoO packets before the first subflow is fully
750 if (TCP_SKB_CB(skb)->seq != subflow->ssn_offset + 1) {
751 if (subflow->mp_join)
753 return subflow->mp_capable;
760 subflow->fully_established = 1;
770 if (subflow->mp_join)
772 subflow->mp_capable = 0;
780 mptcp_subflow_fully_established(subflow, mp_opt);
783 if (likely(subflow->pm_notified))
786 subflow->pm_notified = 1;
787 if (subflow->mp_join) {
789 mptcp_pm_subflow_established(msk, subflow);
887 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
888 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
896 if (!check_fully_established(msk, sk, subflow, skb, &mp_opt))
947 sock_hold(subflow->conn);
963 mptcp_crypto_key_sha(subflow->remote_key, NULL,