Lines Matching refs:sctp
97 sctp_user_abort(sctp_t *sctp, mblk_t *data) in sctp_user_abort() argument
102 sctp_faddr_t *fp = sctp->sctp_current; in sctp_user_abort()
104 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_user_abort()
111 if (sctp->sctp_state < SCTPS_COOKIE_WAIT) { in sctp_user_abort()
112 sctp_clean_death(sctp, ECONNABORTED); in sctp_user_abort()
116 mp = sctp_make_mp(sctp, fp, 0); in sctp_user_abort()
127 hdrlen = sctp->sctp_hdr_len; in sctp_user_abort()
129 hdrlen = sctp->sctp_hdr6_len; in sctp_user_abort()
153 BUMP_LOCAL(sctp->sctp_opkts); in sctp_user_abort()
154 BUMP_LOCAL(sctp->sctp_obchunks); in sctp_user_abort()
156 sctp_set_iplen(sctp, mp, ixa); in sctp_user_abort()
162 sctp_assoc_event(sctp, SCTP_COMM_LOST, 0, NULL); in sctp_user_abort()
163 sctp_clean_death(sctp, ECONNABORTED); in sctp_user_abort()
170 sctp_send_abort(sctp_t *sctp, uint32_t vtag, uint16_t serror, char *details, in sctp_send_abort() argument
186 conn_t *connp = sctp->sctp_connp; in sctp_send_abort()
187 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_send_abort()
192 ahlen = sctp->sctp_hdr_len; in sctp_send_abort()
194 ahlen = sctp->sctp_hdr6_len; in sctp_send_abort()
215 bcopy(sctp->sctp_iphc, p, sctp->sctp_hdr_len); in sctp_send_abort()
224 sh = (sctp_hdr_t *)(p + sctp->sctp_ip_hdr_len); in sctp_send_abort()
234 bcopy(sctp->sctp_iphc6, p, sctp->sctp_hdr6_len); in sctp_send_abort()
239 sh = (sctp_hdr_t *)(p + sctp->sctp_ip_hdr6_len); in sctp_send_abort()
277 ixa->ixa_ip_hdr_length = sctp->sctp_ip_hdr_len; in sctp_send_abort()
281 ixa->ixa_ip_hdr_length = sctp->sctp_ip_hdr6_len; in sctp_send_abort()
285 BUMP_LOCAL(sctp->sctp_obchunks); in sctp_send_abort()
310 BUMP_LOCAL(sctp->sctp_opkts); in sctp_send_abort()
311 BUMP_LOCAL(sctp->sctp_obchunks); in sctp_send_abort()
469 sctp_make_err(sctp_t *sctp, uint16_t serror, void *details, size_t len) in sctp_make_err() argument
517 sctp_add_err(sctp_t *sctp, uint16_t serror, void *details, size_t len, in sctp_add_err() argument
520 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_add_err()
527 emp = sctp_make_err(sctp, serror, details, len); in sctp_add_err()
531 if (sctp->sctp_err_chunks != NULL) { in sctp_add_err()
532 fp = SCTP_CHUNK_DEST(sctp->sctp_err_chunks); in sctp_add_err()
544 if (sctp->sctp_err_len + emp_len > mss) { in sctp_add_err()
545 if ((sendmp = sctp_make_mp(sctp, fp, 0)) == NULL) { in sctp_add_err()
551 sendmp->b_cont = sctp->sctp_err_chunks; in sctp_add_err()
552 sctp_set_iplen(sctp, sendmp, fp->sf_ixa); in sctp_add_err()
554 BUMP_LOCAL(sctp->sctp_opkts); in sctp_add_err()
556 sctp->sctp_err_chunks = emp; in sctp_add_err()
557 sctp->sctp_err_len = emp_len; in sctp_add_err()
560 if (sctp->sctp_err_chunks != NULL) in sctp_add_err()
561 linkb(sctp->sctp_err_chunks, emp); in sctp_add_err()
563 sctp->sctp_err_chunks = emp; in sctp_add_err()
564 sctp->sctp_err_len += emp_len; in sctp_add_err()
567 BUMP_LOCAL(sctp->sctp_obchunks); in sctp_add_err()
575 sctp_process_err(sctp_t *sctp) in sctp_process_err() argument
577 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_process_err()
582 ASSERT(sctp->sctp_err_chunks != NULL); in sctp_process_err()
583 errmp = sctp->sctp_err_chunks; in sctp_process_err()
585 if ((sendmp = sctp_make_mp(sctp, fp, 0)) == NULL) { in sctp_process_err()
591 sctp_set_iplen(sctp, sendmp, fp->sf_ixa); in sctp_process_err()
593 BUMP_LOCAL(sctp->sctp_opkts); in sctp_process_err()
595 sctp->sctp_err_chunks = NULL; in sctp_process_err()
596 sctp->sctp_err_len = 0; in sctp_process_err()
604 sctp_handle_error(sctp_t *sctp, sctp_hdr_t *sctph, sctp_chunk_hdr_t *ch, in sctp_handle_error() argument
615 sctp_error_event(sctp, ch, B_FALSE); in sctp_handle_error()
625 sctp_send_abort(sctp, sctph->sh_verf, 0, NULL, 0, mp, 0, 0, in sctp_handle_error()
630 sctp_send_abort(sctp, sctph->sh_verf, 0, NULL, 0, mp, 0, 0, in sctp_handle_error()
642 sctp->sctp_understands_asconf = B_FALSE; in sctp_handle_error()
653 sctp_asconf_free_cxmit(sctp, uch); in sctp_handle_error()