Lines Matching refs:subflow
119 struct mptcp_subflow_context *subflow; in mptcp_lookup_subflow_by_saddr() local
123 list_for_each_entry(subflow, list, node) { in mptcp_lookup_subflow_by_saddr()
124 skc = (struct sock_common *)mptcp_subflow_tcp_sock(subflow); in mptcp_lookup_subflow_by_saddr()
185 struct mptcp_subflow_context *subflow, in __mptcp_pm_send_ack() argument
188 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in __mptcp_pm_send_ack()
197 subflow->send_mp_prio = 1; in __mptcp_pm_send_ack()
198 subflow->request_bkup = backup; in __mptcp_pm_send_ack()
206 struct mptcp_subflow_context *subflow, in mptcp_pm_send_ack() argument
210 __mptcp_pm_send_ack(msk, subflow, prio, backup); in mptcp_pm_send_ack()
216 struct mptcp_subflow_context *subflow, *alt = NULL; in mptcp_pm_addr_send_ack() local
225 mptcp_for_each_subflow(msk, subflow) { in mptcp_pm_addr_send_ack()
226 if (__mptcp_subflow_active(subflow)) { in mptcp_pm_addr_send_ack()
227 if (!subflow->stale) { in mptcp_pm_addr_send_ack()
228 mptcp_pm_send_ack(msk, subflow, false, false); in mptcp_pm_addr_send_ack()
233 alt = subflow; in mptcp_pm_addr_send_ack()
246 struct mptcp_subflow_context *subflow; in mptcp_pm_mp_prio_send_ack() local
250 mptcp_for_each_subflow(msk, subflow) { in mptcp_pm_mp_prio_send_ack()
251 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_pm_mp_prio_send_ack()
264 __mptcp_pm_send_ack(msk, subflow, true, bkup); in mptcp_pm_mp_prio_send_ack()
562 const struct mptcp_subflow_context *subflow) in mptcp_pm_subflow_check_next() argument
567 update_subflows = subflow->request_join || subflow->mp_join; in mptcp_pm_subflow_check_next()
596 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_pm_add_addr_received() local
597 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_pm_add_addr_received()
658 struct mptcp_subflow_context *subflow, *tmp; in mptcp_pm_rm_addr_or_subflow() local
680 mptcp_for_each_subflow_safe(msk, subflow, tmp) { in mptcp_pm_rm_addr_or_subflow()
681 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_pm_rm_addr_or_subflow()
682 u8 remote_id = READ_ONCE(subflow->remote_id); in mptcp_pm_rm_addr_or_subflow()
684 u8 id = subflow_get_local_id(subflow); in mptcp_pm_rm_addr_or_subflow()
699 removed |= subflow->request_join; in mptcp_pm_rm_addr_or_subflow()
702 mptcp_close_ssk(sk, ssk, subflow); in mptcp_pm_rm_addr_or_subflow()
749 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_pm_mp_prio_received() local
750 struct sock *sk = subflow->conn; in mptcp_pm_mp_prio_received()
753 pr_debug("subflow->backup=%d, bkup=%d\n", subflow->backup, bkup); in mptcp_pm_mp_prio_received()
755 if (subflow->backup != bkup) in mptcp_pm_mp_prio_received()
756 subflow->backup = bkup; in mptcp_pm_mp_prio_received()
763 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(sk); in mptcp_pm_mp_fail_received() local
764 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_pm_mp_fail_received()
777 if (!subflow->fail_tout) { in mptcp_pm_mp_fail_received()
780 subflow->send_mp_fail = 1; in mptcp_pm_mp_fail_received()
781 subflow->send_infinite_map = 1; in mptcp_pm_mp_fail_received()
785 WRITE_ONCE(subflow->fail_tout, 0); in mptcp_pm_mp_fail_received()
904 struct mptcp_subflow_context *iter, *subflow = mptcp_subflow_ctx(ssk); in mptcp_pm_subflows_chk_stale() local
912 if (subflow->stale || !stale_loss_cnt || subflow->stale_count <= stale_loss_cnt) in mptcp_pm_subflows_chk_stale()
918 if (iter != subflow && mptcp_subflow_active(iter) && in mptcp_pm_subflows_chk_stale()
923 subflow->stale = 1; in mptcp_pm_subflows_chk_stale()
941 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_pm_subflow_chk_stale() local
945 if (!subflow->stale_count) { in mptcp_pm_subflow_chk_stale()
946 subflow->stale_rcv_tstamp = rcv_tstamp; in mptcp_pm_subflow_chk_stale()
947 subflow->stale_count++; in mptcp_pm_subflow_chk_stale()
948 } else if (subflow->stale_rcv_tstamp == rcv_tstamp) { in mptcp_pm_subflow_chk_stale()
949 if (subflow->stale_count < U8_MAX) in mptcp_pm_subflow_chk_stale()
950 subflow->stale_count++; in mptcp_pm_subflow_chk_stale()
953 subflow->stale_count = 0; in mptcp_pm_subflow_chk_stale()
954 mptcp_subflow_set_active(subflow); in mptcp_pm_subflow_chk_stale()