Lines Matching refs:ssa
441 struct sctp_soassoc *ssa; in sosctp_seq_connect() local
459 cr, &ssa); in sosctp_seq_connect()
465 if (ssa != NULL) { in sosctp_seq_connect()
466 SSA_REFRELE(ss, ssa); in sosctp_seq_connect()
484 struct sctp_soassoc *ssa = NULL; in sosctp_recvmsg() local
561 ssa = *(struct sctp_soassoc **)DB_BASE(mp); in sosctp_recvmsg()
612 if (ssa == NULL) { in sosctp_recvmsg()
642 ssa->ssa_rcv_queued -= readcnt; in sosctp_recvmsg()
643 count = so->so_rcvbuf - ssa->ssa_rcv_queued; in sosctp_recvmsg()
647 if (readcnt > 0 && ssa->ssa_flowctrld && in sosctp_recvmsg()
648 ssa->ssa_rcv_queued < so->so_rcvlowat) { in sosctp_recvmsg()
653 ssa->ssa_flowctrld = B_FALSE; in sosctp_recvmsg()
655 sctp_recvd(ssa->ssa_conn, count); in sosctp_recvmsg()
663 SSA_REFRELE(ss, ssa); in sosctp_recvmsg()
928 struct sctp_soassoc *ssa; in sosctp_seq_sendmsg() local
988 msg->msg_control, optlen, flags, cr, &ssa); in sosctp_seq_sendmsg()
994 if (ssa == NULL) { in sosctp_seq_sendmsg()
1012 if ((error = sosctp_assoc(ss, aid, &ssa)) != 0) { in sosctp_seq_sendmsg()
1034 ssa->ssa_state |= SS_ISDISCONNECTING; in sosctp_seq_sendmsg()
1035 sctp_recvd(ssa->ssa_conn, so->so_rcvbuf); in sosctp_seq_sendmsg()
1036 error = sctp_disconnect(ssa->ssa_conn); in sosctp_seq_sendmsg()
1043 if (ssa->ssa_state & SS_CANTSENDMORE) { in sosctp_seq_sendmsg()
1044 SSA_REFRELE(ss, ssa); in sosctp_seq_sendmsg()
1048 if (ssa->ssa_error != 0) { in sosctp_seq_sendmsg()
1049 error = ssa->ssa_error; in sosctp_seq_sendmsg()
1050 ssa->ssa_error = 0; in sosctp_seq_sendmsg()
1054 if (!ssa->ssa_snd_qfull) in sosctp_seq_sendmsg()
1098 if ((error = sosctp_uiomove(mctl, count, ssa->ssa_wrsize, in sosctp_seq_sendmsg()
1099 ssa->ssa_wroff, uiop, flags)) != 0) { in sosctp_seq_sendmsg()
1102 error = sctp_sendmsg((struct sctp_s *)ssa->ssa_conn, mctl, 0); in sosctp_seq_sendmsg()
1107 if ((error == EPIPE) && (ssa->ssa_state & SS_CANTSENDMORE)) { in sosctp_seq_sendmsg()
1112 SSA_REFRELE(ss, ssa); in sosctp_seq_sendmsg()
1119 SSA_REFRELE(ss, ssa); in sosctp_seq_sendmsg()
1298 struct sctp_soassoc *ssa = NULL; in sosctp_setsockopt() local
1376 if ((error = sosctp_assoc(ss, id, &ssa)) != 0) { in sosctp_setsockopt()
1380 conn = ssa->ssa_conn; in sosctp_setsockopt()
1386 ASSERT(ssa == NULL || (ssa != NULL && conn != NULL)); in sosctp_setsockopt()
1392 if (ssa != NULL) in sosctp_setsockopt()
1393 SSA_REFRELE(ss, ssa); in sosctp_setsockopt()
1412 if (sosctp_assoc(ss, aid, &ssa) != 0) in sosctp_setsockopt()
1415 rc = sctp_set_opt((struct sctp_s *)ssa->ssa_conn, level, in sosctp_setsockopt()
1418 SSA_REFRELE(ss, ssa); in sosctp_setsockopt()
1439 struct sctp_soassoc *ssa; in sosctp_ioctl() local
1563 if ((error = sosctp_assoc(ss, intval, &ssa)) != 0) { in sosctp_ioctl()
1567 conn = ssa->ssa_conn; in sosctp_ioctl()
1571 ssa = NULL; in sosctp_ioctl()
1583 if (ssa != NULL) { in sosctp_ioctl()
1585 SSA_REFRELE(ss, ssa); in sosctp_ioctl()
1594 if (ssa != NULL) { in sosctp_ioctl()
1596 SSA_REFRELE(ss, ssa); in sosctp_ioctl()
1631 if ((error = sosctp_assoc(ss, intval, &ssa)) != 0) { in sosctp_ioctl()
1635 conn = ssa->ssa_conn; in sosctp_ioctl()
1639 ssa = NULL; in sosctp_ioctl()
1647 if (ssa != NULL) { in sosctp_ioctl()
1649 SSA_REFRELE(ss, ssa); in sosctp_ioctl()
1658 if (ssa) { in sosctp_ioctl()
1660 SSA_REFRELE(ss, ssa); in sosctp_ioctl()
1719 ssa = ((uint32_t)intval >= ss->ss_maxassoc) ? NULL : in sosctp_ioctl()
1721 if (ssa == NULL) { in sosctp_ioctl()
1726 SSA_REFHOLD(ssa); in sosctp_ioctl()
1732 SSA_REFRELE(ss, ssa); in sosctp_ioctl()
1759 error = sctp_set_opt((struct sctp_s *)ssa->ssa_conn, in sosctp_ioctl()
1778 sosctp_assoc_move(ss, SOTOSSO(nso), ssa); in sosctp_ioctl()
1782 ssa->ssa_conn = NULL; in sosctp_ioctl()
1783 sosctp_assoc_free(ss, ssa); in sosctp_ioctl()
1802 SSA_REFRELE(ss, ssa); in sosctp_ioctl()
1822 struct sctp_soassoc *ssa; in sosctp_close() local
1843 if ((ssa = ssi->ssi_assoc) != NULL) { in sosctp_close()
1844 SSA_REFHOLD(ssa); in sosctp_close()
1845 sosctp_assoc_isdisconnected(ssa, 0); in sosctp_close()
1848 sctp_recvd(ssa->ssa_conn, so->so_rcvbuf - in sosctp_close()
1849 ssa->ssa_rcv_queued); in sosctp_close()
1850 (void) sctp_disconnect(ssa->ssa_conn); in sosctp_close()
1853 SSA_REFRELE(ss, ssa); in sosctp_close()
1871 struct sctp_soassoc *ssa; in sosctp_fini() local
1887 if ((ssa = ssi->ssi_assoc) != NULL) { in sosctp_fini()
1888 SSA_REFHOLD(ssa); in sosctp_fini()
1891 sctp_close((struct sctp_s *)ssa->ssa_conn); in sosctp_fini()
1894 ssa->ssa_conn = NULL; in sosctp_fini()
1895 sosctp_assoc_free(ss, ssa); in sosctp_fini()
1941 struct sctp_soassoc *ssa; in sctp_assoc_newconn() local
1966 ssa = sosctp_assoc_create(lss, KM_NOSLEEP); in sctp_assoc_newconn()
1967 if (ssa == NULL) { in sctp_assoc_newconn()
1972 lss->ss_assocs[id].ssi_assoc = ssa; in sctp_assoc_newconn()
1974 ssa->ssa_id = id; in sctp_assoc_newconn()
1975 ssa->ssa_conn = (struct sctp_s *)connind; in sctp_assoc_newconn()
1976 ssa->ssa_state = (SS_ISBOUND | SS_ISCONNECTED); in sctp_assoc_newconn()
1977 ssa->ssa_wroff = lss->ss_wroff; in sctp_assoc_newconn()
1978 ssa->ssa_wrsize = lss->ss_wrsize; in sctp_assoc_newconn()
1984 return ((sock_upper_handle_t)ssa); in sctp_assoc_newconn()
1992 struct sctp_soassoc *ssa = (struct sctp_soassoc *)handle; in sctp_assoc_connected() local
1993 struct sonode *so = &ssa->ssa_sonode->ss_so; in sctp_assoc_connected()
1996 ASSERT(ssa->ssa_conn); in sctp_assoc_connected()
1999 sosctp_assoc_isconnected(ssa); in sctp_assoc_connected()
2007 struct sctp_soassoc *ssa = (struct sctp_soassoc *)handle; in sctp_assoc_disconnected() local
2008 struct sonode *so = &ssa->ssa_sonode->ss_so; in sctp_assoc_disconnected()
2012 ASSERT(ssa->ssa_conn != NULL); in sctp_assoc_disconnected()
2015 sosctp_assoc_isdisconnected(ssa, error); in sctp_assoc_disconnected()
2016 if (ssa->ssa_refcnt == 1) { in sctp_assoc_disconnected()
2018 ssa->ssa_conn = NULL; in sctp_assoc_disconnected()
2022 SSA_REFRELE(SOTOSSO(so), ssa); in sctp_assoc_disconnected()
2036 struct sctp_soassoc *ssa = (struct sctp_soassoc *)handle; in sctp_assoc_disconnecting() local
2037 struct sonode *so = &ssa->ssa_sonode->ss_so; in sctp_assoc_disconnecting()
2040 ASSERT(ssa->ssa_conn != NULL); in sctp_assoc_disconnecting()
2044 sosctp_assoc_isdisconnecting(ssa); in sctp_assoc_disconnecting()
2053 struct sctp_soassoc *ssa = (struct sctp_soassoc *)handle; in sctp_assoc_recv() local
2054 struct sctp_sonode *ss = ssa->ssa_sonode; in sctp_assoc_recv()
2062 ASSERT(ssa->ssa_type == SOSCTP_ASSOC); in sctp_assoc_recv()
2064 ASSERT(ssa->ssa_conn != NULL); /* closed conn */ in sctp_assoc_recv()
2090 sn->sn_assoc_change.sac_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2093 sn->sn_paddr_change.spc_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2096 sn->sn_remote_error.sre_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2099 sn->sn_send_failed.ssf_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2102 sn->sn_shutdown_event.sse_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2105 sn->sn_adaptation_event.sai_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2108 sn->sn_pdapi_event.pdapi_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2131 sinfo->sinfo_assoc_id = ssa->ssa_id; in sctp_assoc_recv()
2148 SSA_REFHOLD(ssa); in sctp_assoc_recv()
2149 ASSERT((mp->b_rptr - DB_BASE(mp)) >= sizeof (ssa)); in sctp_assoc_recv()
2150 *(struct sctp_soassoc **)DB_BASE(mp) = ssa; in sctp_assoc_recv()
2152 ssa->ssa_rcv_queued += len; in sctp_assoc_recv()
2153 space_available = so->so_rcvbuf - ssa->ssa_rcv_queued; in sctp_assoc_recv()
2155 ssa->ssa_flowctrld = B_TRUE; in sctp_assoc_recv()
2168 struct sctp_soassoc *ssa = (struct sctp_soassoc *)handle; in sctp_assoc_xmitted() local
2169 struct sctp_sonode *ss = ssa->ssa_sonode; in sctp_assoc_xmitted()
2171 ASSERT(ssa->ssa_type == SOSCTP_ASSOC); in sctp_assoc_xmitted()
2173 ASSERT(ssa->ssa_conn != NULL); in sctp_assoc_xmitted()
2177 ssa->ssa_snd_qfull = qfull; in sctp_assoc_xmitted()
2191 struct sctp_soassoc *ssa = (struct sctp_soassoc *)handle; in sctp_assoc_properties() local
2194 if (ssa->ssa_type == SOSCTP_ASSOC) { in sctp_assoc_properties()
2195 so = &ssa->ssa_sonode->ss_so; in sctp_assoc_properties()
2201 ssa->ssa_wroff = soppp->sopp_wroff; in sctp_assoc_properties()
2203 ssa->ssa_wrsize = soppp->sopp_maxblk; in sctp_assoc_properties()