Lines Matching refs:subflow

261 	struct socket	*subflow; /* outgoing connect/listener/!mp_capable */  member
466 mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow) in mptcp_subflow_tcp_sock() argument
468 return subflow->tcp_sock; in mptcp_subflow_tcp_sock()
472 mptcp_subflow_get_map_offset(const struct mptcp_subflow_context *subflow) in mptcp_subflow_get_map_offset() argument
474 return tcp_sk(mptcp_subflow_tcp_sock(subflow))->copied_seq - in mptcp_subflow_get_map_offset()
475 subflow->ssn_offset - in mptcp_subflow_get_map_offset()
476 subflow->map_subflow_seq; in mptcp_subflow_get_map_offset()
480 mptcp_subflow_get_mapped_dsn(const struct mptcp_subflow_context *subflow) in mptcp_subflow_get_mapped_dsn() argument
482 return subflow->map_seq + mptcp_subflow_get_map_offset(subflow); in mptcp_subflow_get_mapped_dsn()
486 struct mptcp_subflow_context *subflow) in mptcp_add_pending_subflow() argument
488 sock_hold(mptcp_subflow_tcp_sock(subflow)); in mptcp_add_pending_subflow()
490 list_add_tail(&subflow->node, &msk->join_list); in mptcp_add_pending_subflow()
496 static inline void mptcp_subflow_delegate(struct mptcp_subflow_context *subflow, int action) in mptcp_subflow_delegate() argument
508 if (!test_and_set_bit(action, &subflow->delegated_status)) { in mptcp_subflow_delegate()
510 if (!list_empty(&subflow->delegated_node)) in mptcp_subflow_delegate()
515 list_add_tail(&subflow->delegated_node, &delegated->head); in mptcp_subflow_delegate()
516 sock_hold(mptcp_subflow_tcp_sock(subflow)); in mptcp_subflow_delegate()
535 static inline bool mptcp_subflow_has_delegated_action(const struct mptcp_subflow_context *subflow) in mptcp_subflow_has_delegated_action() argument
537 return !!READ_ONCE(subflow->delegated_status); in mptcp_subflow_has_delegated_action()
540 static inline void mptcp_subflow_delegated_done(struct mptcp_subflow_context *subflow, int action) in mptcp_subflow_delegated_done() argument
546 clear_bit(action, &subflow->delegated_status); in mptcp_subflow_delegated_done()
554 void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow,
562 struct mptcp_subflow_context *subflow);
576 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow) in __mptcp_subflow_active() argument
578 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in __mptcp_subflow_active()
581 if (subflow->request_join && !subflow->fully_established) in __mptcp_subflow_active()
588 void mptcp_subflow_set_active(struct mptcp_subflow_context *subflow);
590 bool mptcp_subflow_active(struct mptcp_subflow_context *subflow);
605 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk), *tmp; in mptcp_has_another_subflow() local
606 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_has_another_subflow()
609 if (tmp != subflow) in mptcp_has_another_subflow()
830 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in mptcp_check_fallback() local
831 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_check_fallback()
847 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in mptcp_do_fallback() local
848 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_do_fallback()
857 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in subflow_simultaneous_connect() local
858 struct sock *parent = subflow->conn; in subflow_simultaneous_connect()
862 !subflow->conn_finished; in subflow_simultaneous_connect()