Lines Matching refs:subflow

262 	struct socket	*subflow; /* outgoing connect/listener/!mp_capable */  member
479 mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow) in mptcp_subflow_tcp_sock() argument
481 return subflow->tcp_sock; in mptcp_subflow_tcp_sock()
485 mptcp_subflow_get_map_offset(const struct mptcp_subflow_context *subflow) in mptcp_subflow_get_map_offset() argument
487 return tcp_sk(mptcp_subflow_tcp_sock(subflow))->copied_seq - in mptcp_subflow_get_map_offset()
488 subflow->ssn_offset - in mptcp_subflow_get_map_offset()
489 subflow->map_subflow_seq; in mptcp_subflow_get_map_offset()
493 mptcp_subflow_get_mapped_dsn(const struct mptcp_subflow_context *subflow) in mptcp_subflow_get_mapped_dsn() argument
495 return subflow->map_seq + mptcp_subflow_get_map_offset(subflow); in mptcp_subflow_get_mapped_dsn()
499 struct mptcp_subflow_context *subflow) in mptcp_add_pending_subflow() argument
501 sock_hold(mptcp_subflow_tcp_sock(subflow)); in mptcp_add_pending_subflow()
503 list_add_tail(&subflow->node, &msk->join_list); in mptcp_add_pending_subflow()
509 static inline void mptcp_subflow_delegate(struct mptcp_subflow_context *subflow) in mptcp_subflow_delegate() argument
518 if (!test_and_set_bit(MPTCP_DELEGATE_SEND, &subflow->delegated_status)) { in mptcp_subflow_delegate()
520 if (!list_empty(&subflow->delegated_node)) in mptcp_subflow_delegate()
528 list_add_tail(&subflow->delegated_node, &delegated->head); in mptcp_subflow_delegate()
529 sock_hold(mptcp_subflow_tcp_sock(subflow)); in mptcp_subflow_delegate()
548 static inline bool mptcp_subflow_has_delegated_action(const struct mptcp_subflow_context *subflow) in mptcp_subflow_has_delegated_action() argument
550 return test_bit(MPTCP_DELEGATE_SEND, &subflow->delegated_status); in mptcp_subflow_has_delegated_action()
553 static inline void mptcp_subflow_delegated_done(struct mptcp_subflow_context *subflow) in mptcp_subflow_delegated_done() argument
559 clear_bit(MPTCP_DELEGATE_SEND, &subflow->delegated_status); in mptcp_subflow_delegated_done()
567 void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow,
575 struct mptcp_subflow_context *subflow);
589 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow) in __mptcp_subflow_active() argument
591 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in __mptcp_subflow_active()
594 if (subflow->request_join && !subflow->fully_established) in __mptcp_subflow_active()
601 void mptcp_subflow_set_active(struct mptcp_subflow_context *subflow);
603 bool mptcp_subflow_active(struct mptcp_subflow_context *subflow);
618 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk), *tmp; in mptcp_has_another_subflow() local
619 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_has_another_subflow()
622 if (tmp != subflow) in mptcp_has_another_subflow()
846 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in mptcp_check_fallback() local
847 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_check_fallback()
863 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in mptcp_do_fallback() local
864 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_do_fallback()
873 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in subflow_simultaneous_connect() local
874 struct sock *parent = subflow->conn; in subflow_simultaneous_connect()
878 !subflow->conn_finished; in subflow_simultaneous_connect()