Lines Matching defs:mpte

155 	struct mptses *mpte;
184 mpte = mptcp_sescreate(mp_so, mpp);
185 if (mpte == NULL) {
190 mp_tp = mpte->mpte_mptcb;
209 struct mptses *mpte;
218 mpte = &((struct mpp_mtp *)mpp)->mpp_ses;
219 VERIFY(mpte->mpte_mppcb == mpp);
221 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
231 (void) mptcp_disconnectx(mpte, ASSOCID_ALL, CONNID_ALL);
249 mptcp_connectx(struct mptses *mpte, struct sockaddr_list **src_sl,
259 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
260 mp_so = mpte->mpte_mppcb->mpp_socket;
267 DTRACE_MPTCP3(connectx, struct mptses *, mpte, associd_t, aid,
284 error = mptcp_subflow_add(mpte, mpts, p, ifscope);
295 mptcp_subflow_del(mpte, mpts, TRUE);
317 struct mptses *mpte;
324 mpte = mptompte(mpp);
325 VERIFY(mpte != NULL);
327 error = mptcp_connectx(mpte, src_sl, dst_sl, p, ifscope,
337 mptcp_getassocids(struct mptses *mpte, uint32_t *cnt, user_addr_t aidp)
339 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
342 *cnt = (mpte->mpte_associd != ASSOCID_ANY) ? 1 : 0;
348 return (copyout(&mpte->mpte_associd, aidp,
349 sizeof (mpte->mpte_associd)));
356 mptcp_getconnids(struct mptses *mpte, associd_t aid, uint32_t *cnt,
362 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
365 aid != mpte->mpte_associd)
368 *cnt = mpte->mpte_numflows;
374 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
389 mptcp_getconninfo(struct mptses *mpte, connid_t *cid, uint32_t *flags,
400 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
405 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
493 mptcp_setconnorder(struct mptses *mpte, connid_t cid, uint32_t rank)
498 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
506 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
522 TAILQ_FOREACH(mpts1, &mpte->mpte_subflows, mpts_entry) {
549 TAILQ_FOREACH(mpts1, &mpte->mpte_subflows, mpts_entry) {
554 if (mpte->mpte_nummpcapflows > 1)
560 if (mpte->mpte_nummpcapflows > 1)
596 mptcp_getconnorder(struct mptses *mpte, connid_t cid, uint32_t *rank)
601 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
610 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
635 struct mptses *mpte;
642 mpte = mptompte(mpp);
643 VERIFY(mpte != NULL);
645 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
651 error = mptcp_getassocids(mpte, &aidr.sar_cnt,
661 error = mptcp_getassocids(mpte, &aidr.sar_cnt,
671 error = mptcp_getconnids(mpte, cidr.scr_aid, &cidr.scr_cnt,
681 error = mptcp_getconnids(mpte, cidr.scr_aid, &cidr.scr_cnt,
691 error = mptcp_getconninfo(mpte, &cifr.scir_cid,
704 error = mptcp_getconninfo(mpte, &cifr.scir_cid,
717 error = mptcp_setconnorder(mpte, cor.sco_cid, cor.sco_rank);
726 error = mptcp_getconnorder(mpte, cor.sco_cid, &cor.sco_rank);
746 mptcp_disconnectx(struct mptses *mpte, associd_t aid, connid_t cid)
753 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
755 mp_so = mpte->mpte_mppcb->mpp_socket;
756 mp_tp = mpte->mpte_mptcb;
760 DTRACE_MPTCP5(disconnectx, struct mptses *, mpte, associd_t, aid,
764 aid == mpte->mpte_associd);
783 (void) mptcp_close(mpte, mp_tp);
787 (void) mptcp_drop(mpte, mp_tp, 0);
793 if (mptcp_usrclosed(mpte) != NULL)
794 (void) mptcp_output(mpte);
797 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
801 mptcp_subflow_disconnect(mpte, mpts, FALSE);
813 mptcp_thread_signal(mpte);
818 mptcp_flush_sopts(mpte);
832 struct mptses *mpte;
839 mpte = mptompte(mpp);
840 VERIFY(mpte != NULL);
841 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
844 aid != mpte->mpte_associd) {
849 error = mptcp_disconnectx(mpte, aid, cid);
858 mptcp_usrclosed(struct mptses *mpte)
864 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
865 mp_so = mpte->mpte_mppcb->mpp_socket;
866 mp_tp = mpte->mpte_mptcb;
872 mpte = mptcp_close(mpte, mp_tp);
881 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
883 mptcp_subflow_disconnect(mpte, mpts, FALSE);
897 return (mpte);
907 struct mptses *mpte;
916 mpte = mptompte(mpp);
917 VERIFY(mpte != NULL);
919 error = mptcp_peeloff(mpte, aid, psop);
931 mptcp_peeloff(struct mptses *mpte, associd_t aid, struct socket **psop)
937 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
938 mp_so = mpte->mpte_mppcb->mpp_socket;
943 DTRACE_MPTCP3(peeloff, struct mptses *, mpte, associd_t, aid,
947 if (mpte->mpte_associd != ASSOCID_ANY) {
957 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
962 mpte->mpte_associd);
973 mptcp_subflow_sopeeloff(mpte, mpts, so);
976 mptcp_subflow_del(mpte, mpts, FALSE);
1009 struct mptses *mpte;
1016 mpte = mptompte(mpp);
1017 VERIFY(mpte != NULL);
1019 error = mptcp_output(mpte);
1033 struct mptses *mpte;
1055 mpte = mptompte(mpp);
1056 VERIFY(mpte != NULL);
1068 if (mpte != NULL) {
1074 error = mptcp_output(mpte);
1094 struct mptses *mpte;
1101 mpte = mptompte(mpp);
1102 VERIFY(mpte != NULL);
1106 mpte = mptcp_usrclosed(mpte);
1107 if (mpte != NULL)
1108 error = mptcp_output(mpte);
1426 mptcp_setopt_apply(struct mptses *mpte, struct mptopt *mpo)
1450 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
1451 mp_so = mpte->mpte_mppcb->mpp_socket;
1459 if (mpte->mpte_numflows == 0) {
1460 VERIFY(TAILQ_EMPTY(&mpte->mpte_subflows));
1472 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
1482 if (mptcp_subflow_sogetopt(mpte, so, &smpo) == 0) {
1491 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
1499 error = mptcp_subflow_sosetopt(mpte, so, mpo);
1507 TAILQ_FOREACH(mpts, &mpte->mpte_subflows, mpts_entry) {
1530 (void) mptcp_subflow_sosetopt(mpte, so, &smpo);
1546 mptcp_setopt(struct mptses *mpte, struct sockopt *sopt)
1558 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
1559 mp_so = mpte->mpte_mppcb->mpp_socket;
1612 if ((mpo = mptcp_sopt_find(mpte, sopt)) == NULL)
1631 mptcp_sopt_insert(mpte, mpo);
1649 error = mptcp_setopt_apply(mpte, mpo);
1652 mptcp_sopt_remove(mpte, mpo);
1678 mptcp_getopt(struct mptses *mpte, struct sockopt *sopt)
1683 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
1705 error = mptcp_default_tcp_optval(mpte, sopt, &optval);
1723 if ((mpo = mptcp_sopt_find(mpte, sopt)) != NULL)
1739 mptcp_default_tcp_optval(struct mptses *mpte, struct sockopt *sopt, int *optval)
1745 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
1782 struct mptses *mpte;
1789 mpte = mptompte(mpp);
1790 MPTE_LOCK_ASSERT_HELD(mpte); /* same as MP socket lock */
1805 error = mptcp_setopt(mpte, sopt);
1809 error = mptcp_getopt(mpte, sopt);