Lines Matching refs:sctp
128 sctp_sendmsg(sctp_t *sctp, mblk_t *mp, int flags) in sctp_sendmsg() argument
136 uint16_t sid = sctp->sctp_def_stream; in sctp_sendmsg()
137 uint32_t ppid = sctp->sctp_def_ppid; in sctp_sendmsg()
138 uint32_t context = sctp->sctp_def_context; in sctp_sendmsg()
139 uint16_t msg_flags = sctp->sctp_def_flags; in sctp_sendmsg()
142 uint32_t timetolive = sctp->sctp_def_timetolive; in sctp_sendmsg()
143 conn_t *connp = sctp->sctp_connp; in sctp_sendmsg()
179 fp = sctp_lookup_faddr(sctp, addr); in sctp_sendmsg()
229 RUN_SCTP(sctp); in sctp_sendmsg()
230 sctp_user_abort(sctp, mp); in sctp_sendmsg()
237 RUN_SCTP(sctp); in sctp_sendmsg()
240 if (sctp->sctp_state > SCTPS_ESTABLISHED || in sctp_sendmsg()
241 (sctp->sctp_connp->conn_state_flags & CONN_CLOSING)) { in sctp_sendmsg()
267 if (sctp->sctp_state >= SCTPS_COOKIE_ECHOED && in sctp_sendmsg()
268 sid >= sctp->sctp_num_ostr) { in sctp_sendmsg()
270 sctp_sendfail_event(sctp, dupmsg(mproto), SCTP_ERR_BAD_SID, in sctp_sendmsg()
278 sctp_sendfail_event(sctp, dupmsg(mproto), in sctp_sendmsg()
285 if (sctp->sctp_xmit_unsent == NULL) { in sctp_sendmsg()
286 sctp->sctp_xmit_unsent = sctp->sctp_xmit_unsent_tail = mproto; in sctp_sendmsg()
288 sctp->sctp_xmit_unsent_tail->b_next = mproto; in sctp_sendmsg()
289 sctp->sctp_xmit_unsent_tail = mproto; in sctp_sendmsg()
291 sctp->sctp_unsent += msg_len; in sctp_sendmsg()
292 BUMP_LOCAL(sctp->sctp_msgcount); in sctp_sendmsg()
296 if (SCTP_TXQ_LEN(sctp) >= connp->conn_sndbuf) { in sctp_sendmsg()
297 sctp->sctp_txq_full = 1; in sctp_sendmsg()
298 sctp->sctp_ulp_txq_full(sctp->sctp_ulpd, B_TRUE); in sctp_sendmsg()
300 if (sctp->sctp_state == SCTPS_ESTABLISHED) in sctp_sendmsg()
301 sctp_output(sctp, UINT_MAX); in sctp_sendmsg()
303 WAKE_SCTP(sctp); in sctp_sendmsg()
306 WAKE_SCTP(sctp); in sctp_sendmsg()
320 sctp_chunkify(sctp_t *sctp, int mss, int firstseg_len, int bytes_to_send) in sctp_chunkify() argument
330 mblk_t *mdblk = sctp->sctp_xmit_unsent; in sctp_chunkify()
335 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_chunkify()
344 fp = sctp->sctp_current; in sctp_chunkify()
346 xtralen = sctp->sctp_hdr_len + sctps->sctps_wroff_xtra + in sctp_chunkify()
349 xtralen = sctp->sctp_hdr6_len + sctps->sctps_wroff_xtra + in sctp_chunkify()
353 next_msg_hdr = (sctp_msg_hdr_t *)sctp->sctp_xmit_unsent->b_rptr; in sctp_chunkify()
387 if (SCTP_MSG_TO_BE_ABANDONED(mdblk, msg_hdr, sctp)) { in sctp_chunkify()
388 sctp->sctp_xmit_unsent = mdblk->b_next; in sctp_chunkify()
389 if (sctp->sctp_xmit_unsent == NULL) in sctp_chunkify()
390 sctp->sctp_xmit_unsent_tail = NULL; in sctp_chunkify()
391 ASSERT(sctp->sctp_unsent >= msg_hdr->smh_msglen); in sctp_chunkify()
392 sctp->sctp_unsent -= msg_hdr->smh_msglen; in sctp_chunkify()
394 BUMP_LOCAL(sctp->sctp_prsctpdrop); in sctp_chunkify()
399 if (!SCTP_IS_DETACHED(sctp)) in sctp_chunkify()
400 SCTP_TXQ_UPDATE(sctp); in sctp_chunkify()
401 sctp_sendfail_event(sctp, mdblk, 0, B_FALSE); in sctp_chunkify()
431 return (sctp->sctp_xmit_tail); in sctp_chunkify()
465 return (sctp->sctp_xmit_tail); in sctp_chunkify()
506 sctp->sctp_xmit_unsent = mdblk->b_next; in sctp_chunkify()
508 sctp->sctp_xmit_unsent_tail = NULL; in sctp_chunkify()
512 if (sctp->sctp_xmit_tail == NULL) { in sctp_chunkify()
513 sctp->sctp_xmit_head = sctp->sctp_xmit_tail = mdblk; in sctp_chunkify()
515 mp = sctp->sctp_xmit_tail; in sctp_chunkify()
522 if (bytes_to_send > 0 && sctp->sctp_xmit_unsent != NULL) { in sctp_chunkify()
523 mdblk = sctp->sctp_xmit_unsent; in sctp_chunkify()
526 fp1 = sctp->sctp_current; in sctp_chunkify()
540 xtralen = sctp->sctp_hdr_len; in sctp_chunkify()
542 xtralen = sctp->sctp_hdr6_len; in sctp_chunkify()
549 return (sctp->sctp_xmit_tail); in sctp_chunkify()
568 sctp_add_proto_hdr(sctp_t *sctp, sctp_faddr_t *fp, mblk_t *mp, int sacklen, in sctp_add_proto_hdr() argument
574 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_add_proto_hdr()
580 hdrlen = sctp->sctp_hdr_len; in sctp_add_proto_hdr()
581 hdr = sctp->sctp_iphc; in sctp_add_proto_hdr()
583 hdrlen = sctp->sctp_hdr6_len; in sctp_add_proto_hdr()
584 hdr = sctp->sctp_iphc6; in sctp_add_proto_hdr()
599 sctp_get_dest(sctp, fp); in sctp_add_proto_hdr()
632 sctp_fill_sack(sctp, mp->b_rptr + hdrlen, sacklen); in sctp_add_proto_hdr()
634 if (fp != sctp->sctp_current) { in sctp_add_proto_hdr()
643 } else if (sctp->sctp_bound_to_all) { in sctp_add_proto_hdr()
652 } else if (sctp->sctp_bound_to_all) { in sctp_add_proto_hdr()
666 sctp_get_padding(sctp_t *sctp, int pad) in sctp_get_padding() argument
671 ASSERT(sctp->sctp_pad_mp != NULL); in sctp_get_padding()
672 if ((fill = dupb(sctp->sctp_pad_mp)) != NULL) { in sctp_get_padding()
692 sctp_find_fast_rexmit_mblks(sctp_t *sctp, int *total, sctp_faddr_t **fp) in sctp_find_fast_rexmit_mblks() argument
705 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_find_fast_rexmit_mblks()
707 for (meta = sctp->sctp_xmit_head; meta != NULL; meta = meta->b_next) { in sctp_find_fast_rexmit_mblks()
710 SCTP_MSG_TO_BE_ABANDONED(meta, msg_hdr, sctp)) { in sctp_find_fast_rexmit_mblks()
729 *fp = sctp->sctp_current; in sctp_find_fast_rexmit_mblks()
756 fill = sctp_get_padding(sctp, extra); in sctp_find_fast_rexmit_mblks()
764 BUMP_LOCAL(sctp->sctp_rxtchunks); in sctp_find_fast_rexmit_mblks()
779 sctp->sctp_chk_fast_rexmit = B_FALSE; in sctp_find_fast_rexmit_mblks()
815 sctp_get_msg_to_send(sctp_t *sctp, mblk_t **mp, mblk_t *meta, int *error, in sctp_get_msg_to_send() argument
826 ASSERT(sctp->sctp_current != NULL); in sctp_get_msg_to_send()
835 if (!SCTP_MSG_TO_BE_ABANDONED(meta, msg_hdr, sctp)) { in sctp_get_msg_to_send()
841 sctp->sctp_xmit_head, meta)); in sctp_get_msg_to_send()
861 *error = sctp_check_abandoned_msg(sctp, meta); in sctp_get_msg_to_send()
864 ASSERT(sctp_verify_chain(sctp->sctp_xmit_head, in sctp_get_msg_to_send()
865 sctp->sctp_xmit_tail)); in sctp_get_msg_to_send()
871 BUMP_LOCAL(sctp->sctp_prsctpdrop); in sctp_get_msg_to_send()
872 ASSERT(sctp->sctp_unsent >= msg_hdr->smh_msglen); in sctp_get_msg_to_send()
874 ASSERT(sctp->sctp_xmit_head == meta); in sctp_get_msg_to_send()
875 sctp->sctp_xmit_head = tmp_meta; in sctp_get_msg_to_send()
876 if (sctp->sctp_xmit_tail == meta) in sctp_get_msg_to_send()
877 sctp->sctp_xmit_tail = tmp_meta; in sctp_get_msg_to_send()
882 if (sctp->sctp_xmit_tail == meta) in sctp_get_msg_to_send()
883 sctp->sctp_xmit_tail = meta->b_prev; in sctp_get_msg_to_send()
889 if (sctp->sctp_xmit_tail == meta) in sctp_get_msg_to_send()
890 sctp->sctp_xmit_tail = tmp_meta; in sctp_get_msg_to_send()
894 sctp->sctp_unsent -= msg_hdr->smh_msglen; in sctp_get_msg_to_send()
899 if (!SCTP_IS_DETACHED(sctp)) in sctp_get_msg_to_send()
900 SCTP_TXQ_UPDATE(sctp); in sctp_get_msg_to_send()
901 sctp_sendfail_event(sctp, meta, 0, B_TRUE); in sctp_get_msg_to_send()
906 if (cansend > 0 && sctp->sctp_xmit_unsent != NULL) { in sctp_get_msg_to_send()
907 ASSERT(sctp->sctp_unsent > 0); in sctp_get_msg_to_send()
909 fp = SCTP_CHUNK_DEST(sctp->sctp_xmit_unsent); in sctp_get_msg_to_send()
911 fp = sctp->sctp_current; in sctp_get_msg_to_send()
916 fp1 = SCTP_CHUNK_DEST(sctp->sctp_xmit_unsent); in sctp_get_msg_to_send()
922 meta = sctp_chunkify(sctp, fp->sf_pmss, firstseg_len, cansend); in sctp_get_msg_to_send()
934 if (SCTP_CHUNK_ISSENT(sctp->sctp_xmit_tail->b_cont)) { in sctp_get_msg_to_send()
936 mp1 = sctp->sctp_xmit_tail->b_cont; in sctp_get_msg_to_send()
942 if ((meta = sctp->sctp_xmit_tail->b_next) == NULL) in sctp_get_msg_to_send()
949 ASSERT(sctp_verify_chain(sctp->sctp_xmit_head, sctp->sctp_xmit_tail)); in sctp_get_msg_to_send()
955 sctp_fast_rexmit(sctp_t *sctp) in sctp_fast_rexmit() argument
960 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_fast_rexmit()
962 ASSERT(sctp->sctp_xmit_head != NULL); in sctp_fast_rexmit()
963 mp = sctp_find_fast_rexmit_mblks(sctp, &pktlen, &fp); in sctp_fast_rexmit()
968 if ((head = sctp_add_proto_hdr(sctp, fp, mp, 0, NULL)) == NULL) { in sctp_fast_rexmit()
979 sctp_set_iplen(sctp, head, fp->sf_ixa); in sctp_fast_rexmit()
981 BUMP_LOCAL(sctp->sctp_opkts); in sctp_fast_rexmit()
982 sctp->sctp_active = fp->sf_lastactive = ddi_get_lbolt64(); in sctp_fast_rexmit()
986 sctp_output(sctp_t *sctp, uint_t num_pkt) in sctp_output() argument
991 mblk_t *meta = sctp->sctp_xmit_tail; in sctp_output()
1007 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_output()
1012 if (sctp->sctp_ftsn == sctp->sctp_lastacked + 1) { in sctp_output()
1018 (sizeof (sctp_sack_frag_t) * sctp->sctp_sack_gaps); in sctp_output()
1019 lfp = sctp->sctp_lastdata; in sctp_output()
1022 lfp = sctp->sctp_current; in sctp_output()
1025 cansend = sctp->sctp_frwnd; in sctp_output()
1026 if (sctp->sctp_unsent < cansend) in sctp_output()
1027 cansend = sctp->sctp_unsent; in sctp_output()
1034 if ((cansend < sctp->sctp_current->sf_pmss / 2) && in sctp_output()
1035 (sctp->sctp_unacked != 0) && in sctp_output()
1036 (sctp->sctp_unacked < sctp->sctp_current->sf_pmss) && in sctp_output()
1037 !sctp->sctp_ndelay || in sctp_output()
1038 (cansend == 0 && sctp->sctp_unacked == 0 && in sctp_output()
1039 sctp->sctp_unsent != 0)) { in sctp_output()
1041 fp = sctp->sctp_current; in sctp_output()
1058 meta = sctp_get_msg_to_send(sctp, &mp, in sctp_output()
1063 fp = sctp->sctp_current; in sctp_output()
1066 sctp->sctp_xmit_tail = meta; in sctp_output()
1081 fp = sctp->sctp_current; in sctp_output()
1105 head = sctp_add_proto_hdr(sctp, fp, nmp, sacklen, in sctp_output()
1119 SCTP_CHUNK_SENT(sctp, mp, sdc, in sctp_output()
1132 fp = sctp->sctp_current; in sctp_output()
1152 head = sctp_add_proto_hdr(sctp, fp, nmp, 0, &error); in sctp_output()
1165 SCTP_CHUNK_SENT(sctp, mp, sdc, in sctp_output()
1176 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_output()
1185 if (sctp->sctp_out_time == 0 && tsn == (sctp->sctp_ltsn - 1)) { in sctp_output()
1186 sctp->sctp_out_time = now; in sctp_output()
1187 sctp->sctp_rtt_tsn = tsn; in sctp_output()
1190 fill = sctp_get_padding(sctp, extra); in sctp_output()
1216 meta = sctp_get_msg_to_send(sctp, &mp, in sctp_output()
1225 sctp->sctp_xmit_tail = meta; in sctp_output()
1248 fill = sctp_get_padding(sctp, extra); in sctp_output()
1261 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_output()
1281 ntohs(sdc->sdh_ssn), (void *)fp, sctp->sctp_frwnd, in sctp_output()
1282 cansend, sctp->sctp_lastack_rxd)); in sctp_output()
1283 sctp_set_iplen(sctp, head, fp->sf_ixa); in sctp_output()
1285 BUMP_LOCAL(sctp->sctp_opkts); in sctp_output()
1288 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_output()
1291 sctp->sctp_active = now; in sctp_output()
1296 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_output()
1403 sctp_make_ftsn_chunk(sctp_t *sctp, sctp_faddr_t *fp, sctp_ftsn_set_t *sets, in sctp_make_ftsn_chunk() argument
1412 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_make_ftsn_chunk()
1416 xtralen = sctp->sctp_hdr_len + sctps->sctps_wroff_xtra; in sctp_make_ftsn_chunk()
1418 xtralen = sctp->sctp_hdr6_len + sctps->sctps_wroff_xtra; in sctp_make_ftsn_chunk()
1436 U32_TO_ABE32(sctp->sctp_adv_pap, advtsn); in sctp_make_ftsn_chunk()
1459 sctp_make_ftsns(sctp_t *sctp, mblk_t *meta, mblk_t *mp, mblk_t **nmp, in sctp_make_ftsns() argument
1471 uint32_t adv_pap = sctp->sctp_adv_pap; in sctp_make_ftsns()
1474 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_make_ftsns()
1480 SEQ_GEQ(sctp->sctp_adv_pap, ntohl(sdc->sdh_tsn))) { in sctp_make_ftsns()
1489 sctp->sctp_adv_pap = adv_pap; in sctp_make_ftsns()
1512 *nmp = sctp_make_ftsn_chunk(sctp, fp, sets, nsets, *seglen); in sctp_make_ftsns()
1516 if (sctp->sctp_ftsn == sctp->sctp_lastacked + 1) { in sctp_make_ftsns()
1521 (sizeof (sctp_sack_frag_t) * sctp->sctp_sack_gaps); in sctp_make_ftsns()
1522 if (*seglen + sacklen > sctp->sctp_lastdata->sf_pmss) { in sctp_make_ftsns()
1526 fp = sctp->sctp_lastdata; in sctp_make_ftsns()
1529 head = sctp_add_proto_hdr(sctp, fp, *nmp, sacklen, NULL); in sctp_make_ftsns()
1546 SEQ_GEQ(sctp->sctp_adv_pap, ntohl(sdc->sdh_tsn))) { in sctp_make_ftsns()
1553 SCTP_CHUNK_SENT(sctp, mp1, sdc, fp, clen, in sctp_make_ftsns()
1576 ASSERT(sctp->sctp_unsent >= unsent); in sctp_make_ftsns()
1577 sctp->sctp_unsent -= unsent; in sctp_make_ftsns()
1582 if (!SCTP_IS_DETACHED(sctp)) in sctp_make_ftsns()
1583 SCTP_TXQ_UPDATE(sctp); in sctp_make_ftsns()
1595 sctp_check_adv_ack_pt(sctp_t *sctp, mblk_t *meta, mblk_t *mp) in sctp_check_adv_ack_pt() argument
1597 uint32_t tsn = sctp->sctp_adv_pap; in sctp_check_adv_ack_pt()
1603 ASSERT(SEQ_GT(ntohl(sdc->sdh_tsn), sctp->sctp_lastack_rxd)); in sctp_check_adv_ack_pt()
1606 !SCTP_MSG_TO_BE_ABANDONED(meta, msg_hdr, sctp)) { in sctp_check_adv_ack_pt()
1626 !SCTP_MSG_TO_BE_ABANDONED(meta, msg_hdr, sctp)) { in sctp_check_adv_ack_pt()
1631 sctp->sctp_adv_pap = tsn; in sctp_check_adv_ack_pt()
1641 sctp->sctp_adv_pap = tsn; in sctp_check_adv_ack_pt()
1667 sctp_rexmit(sctp_t *sctp, sctp_faddr_t *oldfp) in sctp_rexmit() argument
1672 mblk_t *meta = sctp->sctp_xmit_head; in sctp_rexmit()
1680 uint32_t adv_pap = sctp->sctp_adv_pap; in sctp_rexmit()
1685 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_rexmit()
1721 if (SEQ_GT(tsn, sctp->sctp_lastack_rxd)) { in sctp_rexmit()
1722 if (sctp->sctp_prsctp_aware && ftsn_check) { in sctp_rexmit()
1723 if (SEQ_GEQ(sctp->sctp_adv_pap, tsn)) { in sctp_rexmit()
1724 ASSERT(sctp->sctp_prsctp_aware); in sctp_rexmit()
1728 sctp_check_adv_ack_pt(sctp, in sctp_rexmit()
1730 if (SEQ_GT(sctp->sctp_adv_pap, in sctp_rexmit()
1743 if (meta != NULL && sctp->sctp_prsctp_aware) { in sctp_rexmit()
1747 SCTP_MSG_TO_BE_ABANDONED(meta, mhdr, sctp))) { in sctp_rexmit()
1757 if (sctp->sctp_unacked == 0 && sctp->sctp_unsent != 0) { in sctp_rexmit()
1762 if (sctp->sctp_frwnd < (oldfp->sf_pmss - sizeof (*sdc))) in sctp_rexmit()
1763 sctp->sctp_frwnd = oldfp->sf_pmss - sizeof (*sdc); in sctp_rexmit()
1766 sctp->sctp_rxt_nxttsn = sctp->sctp_ltsn; in sctp_rexmit()
1773 sctp_output(sctp, 1); in sctp_rexmit()
1776 sctp->sctp_rxt_maxtsn = sctp->sctp_ltsn - 1; in sctp_rexmit()
1777 ASSERT(sctp->sctp_rxt_maxtsn >= sctp->sctp_rxt_nxttsn); in sctp_rexmit()
1778 sctp->sctp_zero_win_probe = B_TRUE; in sctp_rexmit()
1793 if (sctp->sctp_zero_win_probe) { in sctp_rexmit()
1803 fp = sctp_rotate_faddr(sctp, oldfp); in sctp_rexmit()
1804 pkt = sctp_rexmit_packet(sctp, &meta, &mp, fp, &pkt_len); in sctp_rexmit()
1807 sctp_set_iplen(sctp, pkt, fp->sf_ixa); in sctp_rexmit()
1809 BUMP_LOCAL(sctp->sctp_opkts); in sctp_rexmit()
1819 sctp->sctp_strikes++; in sctp_rexmit()
1821 SCTP_CALC_RXT(sctp, oldfp, sctp->sctp_rto_max); in sctp_rexmit()
1823 SCTP_FADDR_TIMER_RESTART(sctp, oldfp, fp->sf_rto); in sctp_rexmit()
1824 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_rexmit()
1837 fp = sctp_rotate_faddr(sctp, oldfp); in sctp_rexmit()
1843 sctp_make_ftsns(sctp, meta, mp, &nmp, fp, &seglen); in sctp_rexmit()
1845 sctp->sctp_adv_pap = adv_pap; in sctp_rexmit()
1867 if (sctp->sctp_ftsn == sctp->sctp_lastacked + 1) { in sctp_rexmit()
1872 (sizeof (sctp_sack_frag_t) * sctp->sctp_sack_gaps); in sctp_rexmit()
1873 if (seglen + sacklen > sctp->sctp_lastdata->sf_pmss) { in sctp_rexmit()
1885 if (sctp->sctp_lastdata != oldfp && in sctp_rexmit()
1886 sctp->sctp_lastdata->sf_state == in sctp_rexmit()
1888 fp = sctp->sctp_lastdata; in sctp_rexmit()
1897 if (sctp->sctp_out_time != 0 && in sctp_rexmit()
1898 SEQ_GEQ(sctp->sctp_rtt_tsn, sdc->sdh_tsn)) { in sctp_rexmit()
1899 sctp->sctp_out_time = 0; in sctp_rexmit()
1909 sctp_set_faddr_current(sctp, fp); in sctp_rexmit()
1915 fill = sctp_get_padding(sctp, extra); in sctp_rexmit()
1925 head = sctp_add_proto_hdr(sctp, fp, nmp, sacklen, NULL); in sctp_rexmit()
1933 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_rexmit()
1957 sctp)) { in sctp_rexmit()
1968 meta = sctp_get_msg_to_send(sctp, &mp, NULL, &error, in sctp_rexmit()
1990 fill = sctp_get_padding(sctp, extra); in sctp_rexmit()
2001 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_rexmit()
2022 (void *)fp, sctp->sctp_frwnd, sctp->sctp_lastack_rxd)); in sctp_rexmit()
2024 sctp->sctp_rexmitting = B_TRUE; in sctp_rexmit()
2025 sctp->sctp_rxt_nxttsn = first_ua_tsn; in sctp_rexmit()
2026 sctp->sctp_rxt_maxtsn = sctp->sctp_ltsn - 1; in sctp_rexmit()
2027 sctp_set_iplen(sctp, head, fp->sf_ixa); in sctp_rexmit()
2029 BUMP_LOCAL(sctp->sctp_opkts); in sctp_rexmit()
2037 sctp->sctp_strikes++; in sctp_rexmit()
2038 SCTP_CALC_RXT(sctp, oldfp, sctp->sctp_rto_max); in sctp_rexmit()
2046 SCTP_FADDR_TIMER_RESTART(sctp, oldfp, oldfp->sf_rto); in sctp_rexmit()
2061 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_rexmit()
2063 sctp->sctp_active = ddi_get_lbolt64(); in sctp_rexmit()
2076 sctp_rexmit_packet(sctp_t *sctp, mblk_t **meta, mblk_t **mp, sctp_faddr_t *fp, in sctp_rexmit_packet() argument
2098 fill = sctp_get_padding(sctp, extra); in sctp_rexmit_packet()
2108 head = sctp_add_proto_hdr(sctp, fp, nmp, 0, NULL); in sctp_rexmit_packet()
2113 SCTP_CHUNK_SENT(sctp, *mp, sdc, fp, chunklen, *meta); in sctp_rexmit_packet()
2117 if (!sctp->sctp_zero_win_probe) in sctp_rexmit_packet()
2118 sctp->sctp_rxt_nxttsn = ntohl(sdc->sdh_tsn); in sctp_rexmit_packet()
2145 sctp)) { in sctp_rexmit_packet()
2158 if (SEQ_GT(ntohl(sdc->sdh_tsn), sctp->sctp_rxt_maxtsn)) in sctp_rexmit_packet()
2171 fill = sctp_get_padding(sctp, extra); in sctp_rexmit_packet()
2182 SCTP_CHUNK_SENT(sctp, *mp, sdc, fp, chunklen, *meta); in sctp_rexmit_packet()
2186 if (!sctp->sctp_zero_win_probe) in sctp_rexmit_packet()
2187 sctp->sctp_rxt_nxttsn = ntohl(sdc->sdh_tsn); in sctp_rexmit_packet()
2209 sctp_ss_rexmit(sctp_t *sctp) in sctp_ss_rexmit() argument
2219 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_ss_rexmit()
2221 ASSERT(!sctp->sctp_zero_win_probe); in sctp_ss_rexmit()
2227 if (SEQ_GEQ(sctp->sctp_lastack_rxd, sctp->sctp_rxt_nxttsn)) in sctp_ss_rexmit()
2228 sctp->sctp_rxt_nxttsn = sctp->sctp_lastack_rxd + 1; in sctp_ss_rexmit()
2231 ASSERT(SEQ_LEQ(sctp->sctp_rxt_nxttsn, sctp->sctp_rxt_maxtsn)); in sctp_ss_rexmit()
2237 fp = sctp->sctp_current; in sctp_ss_rexmit()
2272 for (meta = sctp->sctp_xmit_head; meta != NULL; meta = meta->b_next) { in sctp_ss_rexmit()
2276 SCTP_MSG_TO_BE_ABANDONED(meta, mhdr, sctp)) { in sctp_ss_rexmit()
2285 if (ntohl(sdc->sdh_tsn) == sctp->sctp_rxt_nxttsn) in sctp_ss_rexmit()
2295 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_ss_rexmit()
2296 pkt = sctp_rexmit_packet(sctp, &meta, &mp, fp, &pkt_len); in sctp_ss_rexmit()
2311 sctp_set_iplen(sctp, pkt, fp->sf_ixa); in sctp_ss_rexmit()
2313 BUMP_LOCAL(sctp->sctp_opkts); in sctp_ss_rexmit()