Lines Matching refs:subflow
543 mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow) in mptcp_subflow_tcp_sock() argument
545 return subflow->tcp_sock; in mptcp_subflow_tcp_sock()
549 mptcp_subflow_ctx_reset(struct mptcp_subflow_context *subflow) in mptcp_subflow_ctx_reset() argument
551 memset(&subflow->reset, 0, sizeof(subflow->reset)); in mptcp_subflow_ctx_reset()
552 subflow->request_mptcp = 1; in mptcp_subflow_ctx_reset()
556 mptcp_subflow_get_map_offset(const struct mptcp_subflow_context *subflow) in mptcp_subflow_get_map_offset() argument
558 return tcp_sk(mptcp_subflow_tcp_sock(subflow))->copied_seq - in mptcp_subflow_get_map_offset()
559 subflow->ssn_offset - in mptcp_subflow_get_map_offset()
560 subflow->map_subflow_seq; in mptcp_subflow_get_map_offset()
564 mptcp_subflow_get_mapped_dsn(const struct mptcp_subflow_context *subflow) in mptcp_subflow_get_mapped_dsn() argument
566 return subflow->map_seq + mptcp_subflow_get_map_offset(subflow); in mptcp_subflow_get_mapped_dsn()
571 static inline void mptcp_subflow_delegate(struct mptcp_subflow_context *subflow, int action) in mptcp_subflow_delegate() argument
584 old = set_mask_bits(&subflow->delegated_status, 0, set_bits); in mptcp_subflow_delegate()
586 if (WARN_ON_ONCE(!list_empty(&subflow->delegated_node))) in mptcp_subflow_delegate()
591 list_add_tail(&subflow->delegated_node, &delegated->head); in mptcp_subflow_delegate()
592 sock_hold(mptcp_subflow_tcp_sock(subflow)); in mptcp_subflow_delegate()
618 void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow,
627 struct mptcp_subflow_context *subflow);
657 void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow,
670 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow) in __mptcp_subflow_active() argument
673 if (subflow->request_join && !subflow->fully_established) in __mptcp_subflow_active()
676 return __tcp_can_send(mptcp_subflow_tcp_sock(subflow)); in __mptcp_subflow_active()
679 void mptcp_subflow_set_active(struct mptcp_subflow_context *subflow);
681 bool mptcp_subflow_active(struct mptcp_subflow_context *subflow);
830 const struct mptcp_subflow_context *subflow);
893 void mptcp_fastopen_gen_msk_ackseq(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow,
895 void mptcp_fastopen_subflow_synack_set_params(struct mptcp_subflow_context *subflow,
1002 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in mptcp_check_fallback() local
1003 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_check_fallback()
1019 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_do_fallback() local
1020 struct sock *sk = subflow->conn; in mptcp_do_fallback()
1051 static inline bool is_active_ssk(struct mptcp_subflow_context *subflow) in is_active_ssk() argument
1053 return (subflow->request_mptcp || subflow->request_join); in is_active_ssk()
1058 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in subflow_simultaneous_connect() local
1061 is_active_ssk(subflow) && in subflow_simultaneous_connect()
1062 !subflow->conn_finished; in subflow_simultaneous_connect()