Lines Matching refs:mpte
147 struct mptses *__single mpte = mpsotompte(mp_so); in mptcp_usr_detach() local
152 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), in mptcp_usr_detach()
165 mptcp_disconnect(mpte); in mptcp_usr_detach()
178 struct mptses *__single mpte = NULL; in mptcp_attach() local
213 mpte = (struct mptses *)mpp->mpp_pcbe; in mptcp_attach()
214 mp_tp = mpte->mpte_mptcb; in mptcp_attach()
224 struct mptses *mpte = mpsotompte(mp_so); in mptcp_entitlement_check() local
236 mpte->mpte_flags |= MPTE_FIRSTPARTY; in mptcp_entitlement_check()
247 mpte->mpte_flags |= MPTE_FIRSTPARTY; in mptcp_entitlement_check()
257 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), mpte->mpte_svctype); in mptcp_entitlement_check()
271 mptcp_connectx(struct mptses *mpte, struct sockaddr *src, in mptcp_connectx() argument
279 error = mptcp_subflow_add(mpte, src, dst, ifscope, pcid); in mptcp_connectx()
295 struct mptses *mpte = NULL; in mptcp_usr_connectx() local
302 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), in mptcp_usr_connectx()
307 mpte = mptompte(mpp); in mptcp_usr_connectx()
308 mp_tp = mpte->mpte_mptcb; in mptcp_usr_connectx()
312 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte)); in mptcp_usr_connectx()
323 dst->sa_len != sizeof(mpte->__mpte_dst_v4)) { in mptcp_usr_connectx()
325 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), dst->sa_len); in mptcp_usr_connectx()
331 dst->sa_len != sizeof(mpte->__mpte_dst_v6)) { in mptcp_usr_connectx()
333 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), dst->sa_len); in mptcp_usr_connectx()
338 if (!(mpte->mpte_flags & MPTE_SVCTYPE_CHECKED)) { in mptcp_usr_connectx()
339 if (mptcp_entitlement_check(mp_so, mpte->mpte_svctype) < 0) { in mptcp_usr_connectx()
344 mpte->mpte_flags |= MPTE_SVCTYPE_CHECKED; in mptcp_usr_connectx()
348 SOCKADDR_COPY(dst, &mpte->mpte_dst, dst->sa_len); in mptcp_usr_connectx()
351 SOCKADDR_COPY(dst, &mpte->mpte_sub_dst_v4, dst->sa_len); in mptcp_usr_connectx()
353 SOCKADDR_COPY(dst, &mpte->mpte_sub_dst_v6, dst->sa_len); in mptcp_usr_connectx()
364 src->sa_len != sizeof(mpte->__mpte_src_v4)) { in mptcp_usr_connectx()
366 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), src->sa_len); in mptcp_usr_connectx()
372 src->sa_len != sizeof(mpte->__mpte_src_v6)) { in mptcp_usr_connectx()
374 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), src->sa_len); in mptcp_usr_connectx()
380 SOCKADDR_COPY(src, &mpte->mpte_src, src->sa_len); in mptcp_usr_connectx()
384 error = mptcp_connectx(mpte, src, dst, ifscope, pcid); in mptcp_usr_connectx()
412 mptcp_getassocids(struct mptses *mpte, uint32_t *cnt, user_addr_t aidp) in mptcp_getassocids() argument
415 *cnt = (mpte->mpte_associd != SAE_ASSOCID_ANY) ? 1 : 0; in mptcp_getassocids()
422 return copyout(&mpte->mpte_associd, aidp, in mptcp_getassocids()
423 sizeof(mpte->mpte_associd)); in mptcp_getassocids()
430 mptcp_getconnids(struct mptses *mpte, sae_associd_t aid, uint32_t *cnt, in mptcp_getconnids() argument
437 aid != mpte->mpte_associd) { in mptcp_getconnids()
441 *cnt = mpte->mpte_numflows; in mptcp_getconnids()
448 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_getconnids()
464 mptcp_getconninfo(struct mptses *mpte, sae_connid_t *cid, uint32_t *flags, in mptcp_getconninfo() argument
473 struct mptcb *mp_tp = mpte->mpte_mptcb; in mptcp_getconninfo()
477 struct socket *mp_so = mptetoso(mpte); in mptcp_getconninfo()
519 mptcp_ci.mptcpci_subflow_count = mpte->mpte_numflows; in mptcp_getconninfo()
520 mptcp_ci.mptcpci_switch_count = mpte->mpte_subflow_switches; in mptcp_getconninfo()
522 VERIFY(sizeof(mptcp_ci.mptcpci_itfstats) == sizeof(mpte->mpte_itfstats)); in mptcp_getconninfo()
523 memcpy(mptcp_ci.mptcpci_itfstats, mpte->mpte_itfstats, sizeof(mptcp_ci.mptcpci_itfstats)); in mptcp_getconninfo()
525 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_getconninfo()
547 mptcp_ci.mptcpci_init_rxbytes = mpte->mpte_init_rxbytes; in mptcp_getconninfo()
548 mptcp_ci.mptcpci_init_txbytes = mpte->mpte_init_txbytes; in mptcp_getconninfo()
551 if (mpte->mpte_flags & MPTE_FIRSTPARTY) { in mptcp_getconninfo()
558 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), error); in mptcp_getconninfo()
573 mpts = TAILQ_FIRST(&mpte->mpte_subflows); in mptcp_getconninfo()
593 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), error); in mptcp_getconninfo()
631 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_getconninfo()
660 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), error); in mptcp_getconninfo()
693 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_getconninfo()
748 …index = mptcpstats_get_index_by_ifindex(mpte->mpte_itfstats, MPTCP_ITFSTATS_SIZE, (u_short)(*cid),… in mptcp_getconninfo()
752 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), in mptcp_getconninfo()
753 *cid, mpte->mpte_numflows, in mptcp_getconninfo()
762 stats = &mpte->mpte_itfstats[index]; in mptcp_getconninfo()
808 struct mptses *mpte; in mptcp_usr_control() local
815 mpte = mptompte(mpp); in mptcp_usr_control()
821 error = mptcp_getassocids(mpte, &aidr.sar_cnt, in mptcp_usr_control()
832 error = mptcp_getassocids(mpte, &aidr.sar_cnt, in mptcp_usr_control()
843 error = mptcp_getconnids(mpte, cidr.scr_aid, &cidr.scr_cnt, in mptcp_usr_control()
854 error = mptcp_getconnids(mpte, cidr.scr_aid, &cidr.scr_cnt, in mptcp_usr_control()
865 error = mptcp_getconninfo(mpte, &cifr.scir_cid, in mptcp_usr_control()
879 error = mptcp_getconninfo(mpte, &cifr.scir_cid, in mptcp_usr_control()
900 mptcp_disconnect(struct mptses *mpte) in mptcp_disconnect() argument
906 mp_so = mptetoso(mpte); in mptcp_disconnect()
907 mp_tp = mpte->mpte_mptcb; in mptcp_disconnect()
924 mptcp_close(mpte, mp_tp); in mptcp_disconnect()
928 mptcp_drop(mpte, mp_tp, 0); in mptcp_disconnect()
932 if (mptcp_usrclosed(mpte) != NULL) { in mptcp_disconnect()
933 mptcp_output(mpte); in mptcp_disconnect()
938 mptcp_subflow_workloop(mpte); in mptcp_disconnect()
972 mptcp_finish_usrclosed(struct mptses *mpte) in mptcp_finish_usrclosed() argument
974 struct mptcb *mp_tp = mpte->mpte_mptcb; in mptcp_finish_usrclosed()
975 struct socket *mp_so = mptetoso(mpte); in mptcp_finish_usrclosed()
978 mpte = mptcp_close(mpte, mp_tp); in mptcp_finish_usrclosed()
984 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_finish_usrclosed()
987 mptcp_subflow_disconnect(mpte, mpts); in mptcp_finish_usrclosed()
989 mptcp_subflow_shutdown(mpte, mpts); in mptcp_finish_usrclosed()
999 mptcp_usrclosed(struct mptses *mpte) in mptcp_usrclosed() argument
1001 struct mptcb *mp_tp = mpte->mpte_mptcb; in mptcp_usrclosed()
1008 return mpte; in mptcp_usrclosed()
1011 mptcp_finish_usrclosed(mpte); in mptcp_usrclosed()
1013 return mpte; in mptcp_usrclosed()
1024 struct mptses *mpte; in mptcp_usr_rcvd() local
1033 mpte = mptompte(mpp); in mptcp_usr_rcvd()
1035 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_usr_rcvd()
1043 error = mptcp_output(mpte); in mptcp_usr_rcvd()
1057 struct mptses *mpte; in mptcp_usr_send() local
1079 mpte = mptompte(mpp); in mptcp_usr_send()
1080 VERIFY(mpte != NULL); in mptcp_usr_send()
1093 error = mptcp_output(mpte); in mptcp_usr_send()
1125 struct mptses *mpte; in mptcp_usr_shutdown() local
1132 mpte = mptompte(mpp); in mptcp_usr_shutdown()
1133 VERIFY(mpte != NULL); in mptcp_usr_shutdown()
1137 mpte = mptcp_usrclosed(mpte); in mptcp_usr_shutdown()
1138 if (mpte != NULL) { in mptcp_usr_shutdown()
1139 error = mptcp_output(mpte); in mptcp_usr_shutdown()
1473 mptcp_setopt_apply(struct mptses *mpte, struct mptopt *mpo) in mptcp_setopt_apply() argument
1497 mp_so = mptetoso(mpte); in mptcp_setopt_apply()
1505 if (mpte->mpte_numflows == 0) { in mptcp_setopt_apply()
1506 VERIFY(TAILQ_EMPTY(&mpte->mpte_subflows)); in mptcp_setopt_apply()
1518 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_setopt_apply()
1526 if (mptcp_subflow_sogetopt(mpte, so, &smpo) == 0) { in mptcp_setopt_apply()
1533 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_setopt_apply()
1539 error = mptcp_subflow_sosetopt(mpte, mpts, mpo); in mptcp_setopt_apply()
1546 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_setopt_apply()
1565 mptcp_subflow_sosetopt(mpte, mpts, &smpo); in mptcp_setopt_apply()
1579 mptcp_setopt(struct mptses *mpte, struct sockopt *sopt) in mptcp_setopt() argument
1588 mp_so = mptetoso(mpte); in mptcp_setopt()
1625 error = sooptcopyin(sopt, &mpte->mpte_epid, in mptcp_setopt()
1633 error = sooptcopyin(sopt, &mpte->mpte_euuid, in mptcp_setopt()
1727 error = mptcp_set_notsent_lowat(mpte, 0); in mptcp_setopt()
1730 error = mptcp_set_notsent_lowat(mpte, in mptcp_setopt()
1756 mpte->mpte_svctype = (uint8_t)optval; in mptcp_setopt()
1757 mpte->mpte_flags |= MPTE_SVCTYPE_CHECKED; in mptcp_setopt()
1773 mpte->mpte_alternate_port = (uint16_t)optval; in mptcp_setopt()
1790 mpte->mpte_flags |= MPTE_FORCE_ENABLE; in mptcp_setopt()
1792 mpte->mpte_flags &= ~MPTE_FORCE_ENABLE; in mptcp_setopt()
1809 mpte->mpte_flags |= MPTE_FORCE_V0; in mptcp_setopt()
1810 mpte->mpte_flags &= ~MPTE_FORCE_V1; in mptcp_setopt()
1812 mpte->mpte_flags |= MPTE_FORCE_V1; in mptcp_setopt()
1813 mpte->mpte_flags &= ~MPTE_FORCE_V0; in mptcp_setopt()
1819 struct mptcb *mp_tp = mpte->mpte_mptcb; in mptcp_setopt()
1823 if (mpte->mpte_svctype != MPTCP_SVCTYPE_TARGET_BASED) { in mptcp_setopt()
1825 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), mpte->mpte_svctype); in mptcp_setopt()
1837 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), mp_tp->mpt_state, mp_tp->mpt_flags); in mptcp_setopt()
1857 if (mpte->mpte_time_target && in mptcp_setopt()
1858 mpte->mpte_time_target < time_now && in mptcp_setopt()
1861 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), in mptcp_setopt()
1862 mpte->mpte_time_target, in mptcp_setopt()
1869 mpte->mpte_time_target = mach_time_target; in mptcp_setopt()
1870 mptcp_set_urgency_timer(mpte); in mptcp_setopt()
1888 if ((mpo = mptcp_sopt_find(mpte, sopt)) == NULL) { in mptcp_setopt()
1897 mptcp_sopt_insert(mpte, mpo); in mptcp_setopt()
1911 error = mptcp_setopt_apply(mpte, mpo); in mptcp_setopt()
1914 mptcp_sopt_remove(mpte, mpo); in mptcp_setopt()
1932 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte), in mptcp_setopt()
1939 mptcp_fill_info_bytestats(struct tcp_info *ti, struct mptses *mpte) in mptcp_fill_info_bytestats() argument
1944 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) { in mptcp_fill_info_bytestats()
1964 struct mptcp_itf_stats *stats = &mpte->mpte_itfstats[i]; in mptcp_fill_info_bytestats()
1981 mptcp_fill_info(struct mptses *mpte, struct tcp_info *ti) in mptcp_fill_info() argument
1983 struct mptsub *actsub = mpte->mpte_active_sub; in mptcp_fill_info()
1984 struct mptcb *mp_tp = mpte->mpte_mptcb; in mptcp_fill_info()
2022 mptcp_fill_info_bytestats(ti, mpte); in mptcp_fill_info()
2068 mptcp_getopt(struct mptses *mpte, struct sockopt *sopt) in mptcp_getopt() argument
2073 mp_so = mptetoso(mpte); in mptcp_getopt()
2104 struct mptopt *__single mpo = mptcp_sopt_find(mpte, sopt); in mptcp_getopt()
2114 if (mptetoso(mpte)->so_flags & SOF_NOTSENT_LOWAT) { in mptcp_getopt()
2115 optval = mptcp_get_notsent_lowat(mpte); in mptcp_getopt()
2124 mptcp_fill_info(mpte, &ti); in mptcp_getopt()
2130 optval = mpte->mpte_svctype; in mptcp_getopt()
2133 optval = mpte->mpte_alternate_port; in mptcp_getopt()
2136 optval = !!(mpte->mpte_flags & MPTE_FORCE_ENABLE); in mptcp_getopt()
2139 if (mpte->mpte_flags & MPTE_FORCE_V0) { in mptcp_getopt()
2141 } else if (mpte->mpte_flags & MPTE_FORCE_V1) { in mptcp_getopt()
2148 error = sooptcopyout(sopt, &mpte->mpte_time_target, sizeof(mpte->mpte_time_target)); in mptcp_getopt()
2175 struct mptses *__single mpte; in mptcp_ctloutput() local
2182 mpte = mptompte(mpp); in mptcp_ctloutput()
2194 error = mptcp_setopt(mpte, sopt); in mptcp_ctloutput()
2198 error = mptcp_getopt(mpte, sopt); in mptcp_ctloutput()
2363 struct mptses *__single mpte; in mptcp_usr_preconnect() local
2368 mpte = mptompte(mpp); in mptcp_usr_preconnect()
2370 mpts = mptcp_get_subflow(mpte, NULL); in mptcp_usr_preconnect()
2373 __func__, (unsigned long)VM_KERNEL_ADDRPERM(mpte)); in mptcp_usr_preconnect()