Lines Matching refs:mp_so

122 mptcp_usr_attach(struct socket *mp_so, int proto, struct proc *p)  in mptcp_usr_attach()  argument
127 VERIFY(mpsotomppcb(mp_so) == NULL); in mptcp_usr_attach()
129 error = mptcp_attach(mp_so, p); in mptcp_usr_attach()
134 if ((mp_so->so_options & SO_LINGER) && mp_so->so_linger == 0) { in mptcp_usr_attach()
135 mp_so->so_linger = (short)(TCP_LINGERTIME * hz); in mptcp_usr_attach()
145 mptcp_usr_detach(struct socket *mp_so) in mptcp_usr_detach() argument
147 struct mptses *__single mpte = mpsotompte(mp_so); in mptcp_usr_detach()
148 struct mppcb *__single mpp = mpsotomppcb(mp_so); in mptcp_usr_detach()
163 mp_pcbdetach(mp_so); in mptcp_usr_detach()
175 mptcp_attach(struct socket *mp_so, struct proc *p) in mptcp_attach() argument
183 if (mp_so->so_snd.sb_hiwat == 0 || mp_so->so_rcv.sb_hiwat == 0) { in mptcp_attach()
184 error = soreserve(mp_so, tcp_sendspace, tcp_recvspace); in mptcp_attach()
190 if (mp_so->so_snd.sb_preconn_hiwat == 0) { in mptcp_attach()
191 soreserve_preconnect(mp_so, 2048); in mptcp_attach()
194 if ((mp_so->so_rcv.sb_flags & SB_USRSIZE) == 0) { in mptcp_attach()
195 mp_so->so_rcv.sb_flags |= SB_AUTOSIZE; in mptcp_attach()
197 if ((mp_so->so_snd.sb_flags & SB_USRSIZE) == 0) { in mptcp_attach()
198 mp_so->so_snd.sb_flags |= SB_AUTOSIZE; in mptcp_attach()
206 mp_so->so_snd.sb_flags |= SB_NOCOMPRESS; in mptcp_attach()
208 if ((error = mp_pcballoc(mp_so, &mtcbinfo)) != 0) { in mptcp_attach()
212 mpp = mpsotomppcb(mp_so); in mptcp_attach()
222 mptcp_entitlement_check(struct socket *mp_so, uint8_t svctype) in mptcp_entitlement_check() argument
224 struct mptses *mpte = mpsotompte(mp_so); in mptcp_entitlement_check()
231 if (soopt_cred_check(mp_so, PRIV_NET_RESTRICTED_MULTIPATH_EXTENDED, TRUE, FALSE) == 0) { in mptcp_entitlement_check()
241 if (mp_so->so_flags & SOF_DELEGATED && in mptcp_entitlement_check()
242 soopt_cred_check(mp_so, PRIV_NET_RESTRICTED_MULTIPATH_EXTENDED, TRUE, TRUE) == 0) { in mptcp_entitlement_check()
288 mptcp_usr_connectx(struct socket *mp_so, struct sockaddr *src, in mptcp_usr_connectx() argument
294 struct mppcb *mpp = mpsotomppcb(mp_so); in mptcp_usr_connectx()
339 if (mptcp_entitlement_check(mp_so, mpte->mpte_svctype) < 0) { in mptcp_usr_connectx()
347 if ((mp_so->so_state & (SS_ISCONNECTED | SS_ISCONNECTING)) == 0) { in mptcp_usr_connectx()
379 if ((mp_so->so_state & (SS_ISCONNECTED | SS_ISCONNECTING)) == 0) { in mptcp_usr_connectx()
389 socket_unlock(mp_so, 0); in mptcp_usr_connectx()
390 error = mp_so->so_proto->pr_usrreqs->pru_sosend(mp_so, NULL, in mptcp_usr_connectx()
401 socket_lock(mp_so, 0); in mptcp_usr_connectx()
477 struct socket *mp_so = mptetoso(mpte); in mptcp_getconninfo() local
485 if (mp_so->so_state & SS_ISCONNECTING) { in mptcp_getconninfo()
488 if (mp_so->so_state & SS_ISCONNECTED) { in mptcp_getconninfo()
491 if (mp_so->so_state & SS_ISDISCONNECTING) { in mptcp_getconninfo()
494 if (mp_so->so_state & SS_ISDISCONNECTED) { in mptcp_getconninfo()
802 mptcp_usr_control(struct socket *mp_so, u_long cmd, in mptcp_usr_control() argument
807 struct mppcb *mpp = mpsotomppcb(mp_so); in mptcp_usr_control()
902 struct socket *mp_so; in mptcp_disconnect() local
906 mp_so = mptetoso(mpte); in mptcp_disconnect()
910 if (!(mp_so->so_flags & SOF_PCBCLEARING) && !(mp_so->so_flags & SOF_DEFUNCT)) { in mptcp_disconnect()
911 if (!(mp_so->so_state & (SS_ISCONNECTED | in mptcp_disconnect()
916 if (mp_so->so_state & SS_ISDISCONNECTING) { in mptcp_disconnect()
925 } else if (((mp_so->so_options & SO_LINGER) && in mptcp_disconnect()
926 mp_so->so_linger == 0) || in mptcp_disconnect()
927 (mp_so->so_flags1 & SOF1_DEFUNCTINPROG)) { in mptcp_disconnect()
930 soisdisconnecting(mp_so); in mptcp_disconnect()
931 sbflush(&mp_so->so_rcv); in mptcp_disconnect()
949 mptcp_usr_disconnect(struct socket *mp_so) in mptcp_usr_disconnect() argument
951 return mptcp_disconnect(mpsotompte(mp_so)); in mptcp_usr_disconnect()
958 mptcp_usr_disconnectx(struct socket *mp_so, sae_associd_t aid, sae_connid_t cid) in mptcp_usr_disconnectx() argument
968 return mptcp_usr_disconnect(mp_so); in mptcp_usr_disconnectx()
975 struct socket *mp_so = mptetoso(mpte); in mptcp_finish_usrclosed() local
980 soisdisconnected(mp_so); in mptcp_finish_usrclosed()
985 if ((mp_so->so_state & (SS_CANTRCVMORE | SS_CANTSENDMORE)) == in mptcp_finish_usrclosed()
1020 mptcp_usr_rcvd(struct socket *mp_so, int flags) in mptcp_usr_rcvd() argument
1023 struct mppcb *mpp = mpsotomppcb(mp_so); in mptcp_usr_rcvd()
1052 mptcp_usr_send(struct socket *mp_so, int prus_flags, struct mbuf *m, in mptcp_usr_send() argument
1056 struct mppcb *mpp = mpsotomppcb(mp_so); in mptcp_usr_send()
1082 if (!(mp_so->so_state & SS_ISCONNECTED) && in mptcp_usr_send()
1083 !(mp_so->so_flags1 & SOF1_PRECONNECT_DATA)) { in mptcp_usr_send()
1089 VERIFY(mp_so->so_snd.sb_flags & SB_NOCOMPRESS); in mptcp_usr_send()
1090 sbappendstream(&mp_so->so_snd, m); in mptcp_usr_send()
1098 if (mp_so->so_state & SS_ISCONNECTING) { in mptcp_usr_send()
1099 if (mp_so->so_state & SS_NBIO) { in mptcp_usr_send()
1102 error = sbwait(&mp_so->so_snd); in mptcp_usr_send()
1122 mptcp_usr_shutdown(struct socket *mp_so) in mptcp_usr_shutdown() argument
1124 struct mppcb *mpp = mpsotomppcb(mp_so); in mptcp_usr_shutdown()
1135 socantsendmore(mp_so); in mptcp_usr_shutdown()
1242 mptcp_usr_sosend(struct socket *mp_so, struct sockaddr *addr, struct uio *uio, in mptcp_usr_sosend() argument
1258 socket_lock(mp_so, 1); in mptcp_usr_sosend()
1259 so_update_last_owner_locked(mp_so, p); in mptcp_usr_sosend()
1260 so_update_policy(mp_so); in mptcp_usr_sosend()
1262 VERIFY(mp_so->so_type == SOCK_STREAM); in mptcp_usr_sosend()
1263 VERIFY(!(mp_so->so_flags & SOF_MP_SUBFLOW)); in mptcp_usr_sosend()
1267 socket_unlock(mp_so, 1); in mptcp_usr_sosend()
1281 socket_unlock(mp_so, 1); in mptcp_usr_sosend()
1288 error = sosendcheck(mp_so, NULL, resid, 0, 0, flags, in mptcp_usr_sosend()
1294 space = sbspace(&mp_so->so_snd); in mptcp_usr_sosend()
1296 socket_unlock(mp_so, 0); in mptcp_usr_sosend()
1302 socket_lock(mp_so, 0); in mptcp_usr_sosend()
1308 socket_lock(mp_so, 0); in mptcp_usr_sosend()
1320 error = sflt_data_out(mp_so, NULL, &top, &control, 0); in mptcp_usr_sosend()
1337 error = (*mp_so->so_proto->pr_usrreqs->pru_send) in mptcp_usr_sosend()
1338 (mp_so, sendflags, top, NULL, NULL, p); in mptcp_usr_sosend()
1349 sbunlock(&mp_so->so_snd, FALSE); /* will unlock socket */ in mptcp_usr_sosend()
1351 socket_unlock(mp_so, 1); in mptcp_usr_sosend()
1361 soclearfastopen(mp_so); in mptcp_usr_sosend()
1373 mptcp_usr_socheckopt(struct socket *mp_so, struct sockopt *sopt) in mptcp_usr_socheckopt() argument
1375 #pragma unused(mp_so) in mptcp_usr_socheckopt()
1475 struct socket *mp_so; in mptcp_setopt_apply() local
1497 mp_so = mptetoso(mpte); in mptcp_setopt_apply()
1583 struct socket *mp_so; in mptcp_setopt() local
1588 mp_so = mptetoso(mpte); in mptcp_setopt()
1590 VERIFY(!(mpsotomppcb(mp_so)->mpp_flags & MPP_INSIDE_SETGETOPT)); in mptcp_setopt()
1591 mpsotomppcb(mp_so)->mpp_flags |= MPP_INSIDE_SETGETOPT; in mptcp_setopt()
1642 if (!uuid_is_null(mpsotomppcb(mp_so)->necp_client_uuid)) { in mptcp_setopt()
1647 error = sooptcopyin(sopt, &mpsotomppcb(mp_so)->necp_client_uuid, in mptcp_setopt()
1653 mpsotomppcb(mp_so)->necp_cb = mptcp_session_necp_cb; in mptcp_setopt()
1654 error = necp_client_register_multipath_cb(mp_so->last_pid, in mptcp_setopt()
1655 mpsotomppcb(mp_so)->necp_client_uuid, in mptcp_setopt()
1656 mpsotomppcb(mp_so)); in mptcp_setopt()
1661 if (uuid_is_null(mpsotomppcb(mp_so)->necp_client_uuid)) { in mptcp_setopt()
1668 error = necp_set_socket_attributes(&mpsotomppcb(mp_so)->inp_necp_attributes, sopt); in mptcp_setopt()
1726 mp_so->so_flags &= ~SOF_NOTSENT_LOWAT; in mptcp_setopt()
1729 mp_so->so_flags |= SOF_NOTSENT_LOWAT; in mptcp_setopt()
1751 if (mptcp_entitlement_check(mp_so, (uint8_t)optval) < 0) { in mptcp_setopt()
1927 mpsotomppcb(mp_so)->mpp_flags &= ~MPP_INSIDE_SETGETOPT; in mptcp_setopt()
1934 mpsotomppcb(mp_so)->mpp_flags &= ~MPP_INSIDE_SETGETOPT; in mptcp_setopt()
2071 struct socket *__single mp_so; in mptcp_getopt() local
2073 mp_so = mptetoso(mpte); in mptcp_getopt()
2075 VERIFY(!(mpsotomppcb(mp_so)->mpp_flags & MPP_INSIDE_SETGETOPT)); in mptcp_getopt()
2076 mpsotomppcb(mp_so)->mpp_flags |= MPP_INSIDE_SETGETOPT; in mptcp_getopt()
2162 mpsotomppcb(mp_so)->mpp_flags &= ~MPP_INSIDE_SETGETOPT; in mptcp_getopt()
2172 mptcp_ctloutput(struct socket *mp_so, struct sockopt *sopt) in mptcp_ctloutput() argument
2174 struct mppcb *__single mpp = mpsotomppcb(mp_so); in mptcp_ctloutput()
2183 socket_lock_assert_owned(mp_so); in mptcp_ctloutput()
2359 mptcp_usr_preconnect(struct socket *mp_so) in mptcp_usr_preconnect() argument
2362 struct mppcb *__single mpp = mpsotomppcb(mp_so); in mptcp_usr_preconnect()
2382 soclearfastopen(mp_so); in mptcp_usr_preconnect()