Lines Matching refs:mpte

210 	struct mptses *mpte = mpsotompte(mp_so);  in mptcp_reass_present()  local
211 struct mptcb *mp_tp = mpte->mpte_mptcb; in mptcp_reass_present()
399 mptcp_input(struct mptses *mpte, struct mbuf *m) in mptcp_input() argument
413 mp_so = mptetoso(mpte); in mptcp_input()
414 mp_tp = mpte->mpte_mptcb; in mptcp_input()
479 struct mptses *, mpte); in mptcp_input()
533 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), in mptcp_input()
613 struct mptses *, mpte, in mptcp_input()
684 mptcp_output(struct mptses *mpte) in mptcp_output() argument
694 mp_so = mptetoso(mpte); in mptcp_output()
695 mp_tp = mpte->mpte_mptcb; in mptcp_output()
703 VERIFY(!(mpte->mpte_mppcb->mpp_flags & MPP_WUPCALL)); in mptcp_output()
704 mpte->mpte_mppcb->mpp_flags |= MPP_WUPCALL; in mptcp_output()
709 mpts = mptcp_get_subflow(mpte, &preferred_mpts); in mptcp_output()
719 mptcp_start_timer(mpte, MPTT_REXMT); in mptcp_output()
741 DTRACE_MPTCP3(output, struct mptses *, mpte, struct mptsub *, mpts, in mptcp_output()
743 error = mptcp_subflow_output(mpte, mpts, 0); in mptcp_output()
751 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), in mptcp_output()
764 mptcp_subflow_output(mpte, preferred_mpts, MPTCP_SUBOUT_PROBING); in mptcp_output()
776 if (mpte->mpte_active_sub == NULL) { in mptcp_output()
777 mpte->mpte_active_sub = mpts; in mptcp_output()
778 } else if (mpte->mpte_active_sub != mpts) { in mptcp_output()
779 mpte->mpte_active_sub->mpts_flags &= ~MPTSF_ACTIVE; in mptcp_output()
780 mpte->mpte_active_sub = mpts; in mptcp_output()
782 mptcpstats_inc_switch(mpte, mpts); in mptcp_output()
789 mptcp_finish_usrclosed(mpte); in mptcp_output()
793 mptcp_handle_deferred_upcalls(mpte->mpte_mppcb, MPP_WUPCALL); in mptcp_output()
841 mptcp_subflow_is_slow(struct mptses *mpte, struct mptsub *mpts) in mptcp_subflow_is_slow() argument
846 …if (mpte->mpte_svctype == MPTCP_SVCTYPE_HANDOVER || mpte->mpte_svctype == MPTCP_SVCTYPE_PURE_HANDO… in mptcp_subflow_is_slow()
851 (mptetoso(mpte)->so_snd.sb_cc || mpte->mpte_reinjectq); in mptcp_subflow_is_slow()
858 mptcp_get_subflow(struct mptses *mpte, struct mptsub **preferred) in mptcp_get_subflow() argument
872 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_get_subflow()
954 if (mpte->mpte_svctype == MPTCP_SVCTYPE_PURE_HANDOVER) { in mptcp_get_subflow()
956 } else if (mpte->mpte_svctype == MPTCP_SVCTYPE_HANDOVER) { in mptcp_get_subflow()
961 mptcp_wifi_quality_for_session(mpte) != MPTCP_WIFI_QUALITY_GOOD && in mptcp_get_subflow()
962 mptcp_subflow_is_slow(mpte, best)) { in mptcp_get_subflow()
967 } else if (mpte->mpte_svctype == MPTCP_SVCTYPE_INTERACTIVE) { in mptcp_get_subflow()
973 mptcp_wifi_quality_for_session(mpte) != MPTCP_WIFI_QUALITY_GOOD) { in mptcp_get_subflow()
985 if (mptcp_subflow_is_slow(mpte, best) && in mptcp_get_subflow()
1005 } else if (mpte->mpte_svctype >= MPTCP_SVCTYPE_AGGREGATE) { in mptcp_get_subflow()
1311 struct mptses *mpte = mptompte(mp); in mptcp_session_necp_cb() local
1326 mp_so = mptetoso(mpte); in mptcp_session_necp_cb()
1340 mp_tp = mpte->mpte_mptcb; in mptcp_session_necp_cb()
1347 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), action, ifindex, in mptcp_session_necp_cb()
1366 mpte->mpte_flags |= MPTE_ITFINFO_INIT; in mptcp_session_necp_cb()
1370 for (i = 0; i < mpte->mpte_itfinfo_size; i++) { in mptcp_session_necp_cb()
1371 if (mpte->mpte_itfinfo[i].ifindex == IFSCOPE_NONE) { in mptcp_session_necp_cb()
1375 if (mpte->mpte_itfinfo[i].ifindex == ifindex) { in mptcp_session_necp_cb()
1376 mptcp_reset_itfinfo(&mpte->mpte_itfinfo[i]); in mptcp_session_necp_cb()
1380 mptcp_sched_create_subflows(mpte); in mptcp_session_necp_cb()
1414 for (i = 0; i < mpte->mpte_itfinfo_size; i++) { in mptcp_session_necp_cb()
1416 if (mpte->mpte_itfinfo[i].ifindex == 0) { in mptcp_session_necp_cb()
1425 if (mpte->mpte_itfinfo[i].ifindex == ifindex && in mptcp_session_necp_cb()
1426 (mpte->mpte_itfinfo[i].has_v4_conn != has_v4 || in mptcp_session_necp_cb()
1427 mpte->mpte_itfinfo[i].has_v6_conn != has_v6 || in mptcp_session_necp_cb()
1428 mpte->mpte_itfinfo[i].has_nat64_conn != has_nat64)) { in mptcp_session_necp_cb()
1434 if (mpte->mpte_itfinfo[i].ifindex == ifindex) { in mptcp_session_necp_cb()
1443 dst = mptcp_get_session_dst(mpte, has_v6, has_v4); in mptcp_session_necp_cb()
1447 mpte->mpte_itfinfo[slot_index].ifindex = ifindex; in mptcp_session_necp_cb()
1448 mpte->mpte_itfinfo[slot_index].has_v4_conn = has_v4; in mptcp_session_necp_cb()
1449 mpte->mpte_itfinfo[slot_index].has_v6_conn = has_v6; in mptcp_session_necp_cb()
1450 mpte->mpte_itfinfo[slot_index].has_nat64_conn = has_nat64; in mptcp_session_necp_cb()
1456 int new_size = mpte->mpte_itfinfo_size * 2; in mptcp_session_necp_cb()
1461 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), new_size); in mptcp_session_necp_cb()
1465 memcpy(info, mpte->mpte_itfinfo, mpte->mpte_itfinfo_size * sizeof(*info)); in mptcp_session_necp_cb()
1467 if (mpte->mpte_itfinfo_size > MPTE_ITFINFO_SIZE) { in mptcp_session_necp_cb()
1468 kfree_data_counted_by(mpte->mpte_itfinfo, mpte->mpte_itfinfo_size); in mptcp_session_necp_cb()
1472 slot_index = mpte->mpte_itfinfo_size; in mptcp_session_necp_cb()
1474 mpte->mpte_itfinfo = info; in mptcp_session_necp_cb()
1475 mpte->mpte_itfinfo_size = new_size; in mptcp_session_necp_cb()
1478 VERIFY(slot_index >= 0 && slot_index < (int)mpte->mpte_itfinfo_size); in mptcp_session_necp_cb()
1479 mpte->mpte_itfinfo[slot_index].ifindex = ifindex; in mptcp_session_necp_cb()
1480 mpte->mpte_itfinfo[slot_index].has_v4_conn = has_v4; in mptcp_session_necp_cb()
1481 mpte->mpte_itfinfo[slot_index].has_v6_conn = has_v6; in mptcp_session_necp_cb()
1482 mpte->mpte_itfinfo[slot_index].has_nat64_conn = has_nat64; in mptcp_session_necp_cb()
1484 mptcp_sched_create_subflows(mpte); in mptcp_session_necp_cb()
1496 struct mptses *mpte = mpsotompte(mp_so); in mptcp_set_restrictions() local
1503 for (i = 0; i < mpte->mpte_itfinfo_size; i++) { in mptcp_set_restrictions()
1504 struct mpt_itf_info *info = &mpte->mpte_itfinfo[i]; in mptcp_set_restrictions()