Lines Matching refs:subflow
118 struct mptcp_subflow_context *subflow; in lookup_subflow_by_saddr() local
122 list_for_each_entry(subflow, list, node) { in lookup_subflow_by_saddr()
123 skc = (struct sock_common *)mptcp_subflow_tcp_sock(subflow); in lookup_subflow_by_saddr()
136 struct mptcp_subflow_context *subflow; in lookup_subflow_by_daddr() local
140 list_for_each_entry(subflow, list, node) { in lookup_subflow_by_daddr()
141 skc = (struct sock_common *)mptcp_subflow_tcp_sock(subflow); in lookup_subflow_by_daddr()
431 struct mptcp_subflow_context *subflow; in fill_remote_addresses_vec() local
449 mptcp_for_each_subflow(msk, subflow) { in fill_remote_addresses_vec()
450 ssk = mptcp_subflow_tcp_sock(subflow); in fill_remote_addresses_vec()
452 addrs[i].id = subflow->remote_id; in fill_remote_addresses_vec()
467 static void __mptcp_pm_send_ack(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow, in __mptcp_pm_send_ack() argument
470 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in __mptcp_pm_send_ack()
478 if (subflow->backup != backup) in __mptcp_pm_send_ack()
481 subflow->send_mp_prio = 1; in __mptcp_pm_send_ack()
482 subflow->backup = backup; in __mptcp_pm_send_ack()
483 subflow->request_bkup = backup; in __mptcp_pm_send_ack()
490 static void mptcp_pm_send_ack(struct mptcp_sock *msk, struct mptcp_subflow_context *subflow, in mptcp_pm_send_ack() argument
494 __mptcp_pm_send_ack(msk, subflow, prio, backup); in mptcp_pm_send_ack()
542 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(msk->first); in mptcp_pm_create_subflow_or_signal_addr() local
558 mptcp_pm_send_ack(msk, subflow, true, backup); in mptcp_pm_create_subflow_or_signal_addr()
724 struct mptcp_subflow_context *subflow; in mptcp_pm_nl_addr_send_ack() local
733 subflow = list_first_entry_or_null(&msk->conn_list, typeof(*subflow), node); in mptcp_pm_nl_addr_send_ack()
734 if (subflow) in mptcp_pm_nl_addr_send_ack()
735 mptcp_pm_send_ack(msk, subflow, false, false); in mptcp_pm_nl_addr_send_ack()
743 struct mptcp_subflow_context *subflow; in mptcp_pm_nl_mp_prio_send_ack() local
747 mptcp_for_each_subflow(msk, subflow) { in mptcp_pm_nl_mp_prio_send_ack()
748 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_pm_nl_mp_prio_send_ack()
761 __mptcp_pm_send_ack(msk, subflow, true, bkup); in mptcp_pm_nl_mp_prio_send_ack()
777 struct mptcp_subflow_context *subflow, *tmp; in mptcp_pm_nl_rm_addr_or_subflow() local
799 mptcp_for_each_subflow_safe(msk, subflow, tmp) { in mptcp_pm_nl_rm_addr_or_subflow()
800 struct sock *ssk = mptcp_subflow_tcp_sock(subflow); in mptcp_pm_nl_rm_addr_or_subflow()
802 u8 id = subflow->local_id; in mptcp_pm_nl_rm_addr_or_subflow()
804 if (rm_type == MPTCP_MIB_RMADDR && subflow->remote_id != rm_id) in mptcp_pm_nl_rm_addr_or_subflow()
811 i, rm_id, subflow->local_id, subflow->remote_id, in mptcp_pm_nl_rm_addr_or_subflow()
817 mptcp_close_ssk(sk, ssk, subflow); in mptcp_pm_nl_rm_addr_or_subflow()
1129 struct mptcp_subflow_context *iter, *subflow = mptcp_subflow_ctx(ssk); in mptcp_pm_nl_subflow_chk_stale() local
1137 if (subflow->stale || !stale_loss_cnt || subflow->stale_count <= stale_loss_cnt) in mptcp_pm_nl_subflow_chk_stale()
1143 if (iter != subflow && mptcp_subflow_active(iter) && in mptcp_pm_nl_subflow_chk_stale()
1148 subflow->stale = 1; in mptcp_pm_nl_subflow_chk_stale()
2108 struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); in mptcp_event_addr_announced() local
2109 struct mptcp_sock *msk = mptcp_sk(subflow->conn); in mptcp_event_addr_announced()