Lines Matching defs:subflow
56 * close the subflow with a RST, as it is not behaving as negotiated.
58 * receiver MUST close the subflow with a RST, as it is considered
407 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
412 subflow->snd_isn = TCP_SKB_CB(skb)->end_seq;
413 if (subflow->request_mptcp) {
419 } else if (subflow->request_join) {
420 pr_debug("remote_token=%u, nonce=%u", subflow->remote_token,
421 subflow->local_nonce);
423 opts->join_id = subflow->local_id;
424 opts->token = subflow->remote_token;
425 opts->nonce = subflow->local_nonce;
426 opts->backup = subflow->request_bkup;
448 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
449 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
464 if (subflow->fully_established || snd_data_fin_enable ||
465 subflow->snd_isn != TCP_SKB_CB(skb)->seq ||
469 if (subflow->mp_capable) {
479 opts->sndr_key = subflow->local_key;
480 opts->rcvr_key = subflow->remote_key;
486 * packets that start the first subflow of an MPTCP connection,
503 pr_debug("subflow=%p, local_key=%llu, remote_key=%llu map_len=%d",
504 subflow, subflow->local_key, subflow->remote_key,
508 } else if (subflow->mp_join) {
510 memcpy(opts->hmac, subflow->hmac, MPTCPOPT_HMAC_LEN);
512 pr_debug("subflow=%p", subflow);
520 set_bit(MPTCP_DELEGATE_ACK, &subflow->delegated_status);
522 mptcp_subflow_delegate(subflow, MPTCP_DELEGATE_ACK);
528 static void mptcp_write_data_fin(struct mptcp_subflow_context *subflow,
534 u64 data_fin_tx_seq = READ_ONCE(mptcp_sk(subflow->conn)->write_seq) - 1;
561 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
562 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
584 mptcp_write_data_fin(subflow, skb, &opts->ext_copy);
590 * if the first subflow may have the already the remote key handy
654 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
655 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
709 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
710 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
739 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
744 if (!subflow->send_mp_prio || (opts->suboptions & OPTIONS_MPTCP_MPC))
753 opts->backup = subflow->request_bkup;
765 const struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
772 opts->reset_transient = subflow->reset_transient;
773 opts->reset_reason = subflow->reset_reason;
784 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
785 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
787 if (likely(!subflow->send_fastclose))
807 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
809 if (likely(!subflow->send_mp_fail))
817 opts->fail_seq = subflow->map_seq;
829 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
830 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
926 struct mptcp_subflow_context *subflow,
931 * will make the subflow fully established
933 if (likely(subflow->fully_established)) {
938 if (TCP_SKB_CB(skb)->seq == subflow->ssn_offset + 1 &&
940 subflow->mp_join && (mp_opt->suboptions & OPTIONS_MPTCP_MPJ) &&
941 !subflow->request_join)
946 /* we must process OoO packets before the first subflow is fully
951 if (TCP_SKB_CB(skb)->seq != subflow->ssn_offset + 1) {
952 if (subflow->mp_join)
954 if (subflow->is_mptfo && mp_opt->suboptions & OPTION_MPTCP_MPC_ACK)
956 return subflow->mp_capable;
959 if (subflow->remote_key_valid &&
973 if (subflow->mp_join)
975 subflow->mp_capable = 0;
989 __mptcp_subflow_fully_established(msk, subflow, mp_opt);
993 /* if the subflow is not already linked into the conn_list, we can't
994 * notify the PM: this subflow is still on the listener queue
995 * and the PM possibly acquiring the subflow lock could race with
998 if (likely(subflow->pm_notified) || list_empty(&subflow->node))
1001 subflow->pm_notified = 1;
1002 if (subflow->mp_join) {
1113 /* Return false if a subflow has been reset, else return true */
1116 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk);
1117 struct mptcp_sock *msk = mptcp_sk(subflow->conn);
1127 mptcp_data_lock(subflow->conn);
1129 __mptcp_check_push(subflow->conn, sk);
1136 __mptcp_data_acked(subflow->conn);
1137 mptcp_data_unlock(subflow->conn);
1143 /* The subflow can be in close state only if check_fully_established()
1146 if (!check_fully_established(msk, sk, subflow, skb, &mp_opt))
1186 subflow->reset_seen = 1;
1187 subflow->reset_reason = mp_opt.reset_reason;
1188 subflow->reset_transient = mp_opt.reset_transient;
1226 mptcp_crypto_key_sha(subflow->remote_key, NULL,
1253 struct mptcp_subflow_context *subflow;
1259 subflow = mptcp_subflow_ctx(ssk);
1260 msk = mptcp_sk(subflow->conn);
1348 struct mptcp_subflow_context *subflow;
1582 subflow = mptcp_subflow_ctx(ssk);
1583 subflow->send_mp_fail = 0;
1604 subflow = mptcp_subflow_ctx(ssk);
1605 subflow->send_mp_prio = 0;