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()
1010 if (sctp->sctp_ftsn == sctp->sctp_lastacked + 1) { in sctp_output()
1016 (sizeof (sctp_sack_frag_t) * sctp->sctp_sack_gaps); in sctp_output()
1017 lfp = sctp->sctp_lastdata; in sctp_output()
1020 lfp = sctp->sctp_current; in sctp_output()
1023 cansend = sctp->sctp_frwnd; in sctp_output()
1024 if (sctp->sctp_unsent < cansend) in sctp_output()
1025 cansend = sctp->sctp_unsent; in sctp_output()
1032 if ((cansend < sctp->sctp_current->sf_pmss / 2) && in sctp_output()
1033 (sctp->sctp_unacked != 0) && in sctp_output()
1034 (sctp->sctp_unacked < sctp->sctp_current->sf_pmss) && in sctp_output()
1035 !sctp->sctp_ndelay || in sctp_output()
1036 (cansend == 0 && sctp->sctp_unacked == 0 && in sctp_output()
1037 sctp->sctp_unsent != 0)) { in sctp_output()
1039 fp = sctp->sctp_current; in sctp_output()
1056 meta = sctp_get_msg_to_send(sctp, &mp, in sctp_output()
1061 fp = sctp->sctp_current; in sctp_output()
1064 sctp->sctp_xmit_tail = meta; in sctp_output()
1079 fp = sctp->sctp_current; in sctp_output()
1103 head = sctp_add_proto_hdr(sctp, fp, nmp, sacklen, in sctp_output()
1117 SCTP_CHUNK_SENT(sctp, mp, sdc, in sctp_output()
1130 fp = sctp->sctp_current; in sctp_output()
1150 head = sctp_add_proto_hdr(sctp, fp, nmp, 0, &error); in sctp_output()
1163 SCTP_CHUNK_SENT(sctp, mp, sdc, in sctp_output()
1174 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_output()
1183 if (sctp->sctp_out_time == 0 && tsn == (sctp->sctp_ltsn - 1)) { in sctp_output()
1184 sctp->sctp_out_time = now; in sctp_output()
1185 sctp->sctp_rtt_tsn = tsn; in sctp_output()
1188 fill = sctp_get_padding(sctp, extra); in sctp_output()
1214 meta = sctp_get_msg_to_send(sctp, &mp, in sctp_output()
1223 sctp->sctp_xmit_tail = meta; in sctp_output()
1246 fill = sctp_get_padding(sctp, extra); in sctp_output()
1259 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_output()
1279 ntohs(sdc->sdh_ssn), (void *)fp, sctp->sctp_frwnd, in sctp_output()
1280 cansend, sctp->sctp_lastack_rxd)); in sctp_output()
1281 sctp_set_iplen(sctp, head, fp->sf_ixa); in sctp_output()
1283 BUMP_LOCAL(sctp->sctp_opkts); in sctp_output()
1286 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_output()
1289 sctp->sctp_active = now; in sctp_output()
1294 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_output()
1401 sctp_make_ftsn_chunk(sctp_t *sctp, sctp_faddr_t *fp, sctp_ftsn_set_t *sets, in sctp_make_ftsn_chunk() argument
1410 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_make_ftsn_chunk()
1414 xtralen = sctp->sctp_hdr_len + sctps->sctps_wroff_xtra; in sctp_make_ftsn_chunk()
1416 xtralen = sctp->sctp_hdr6_len + sctps->sctps_wroff_xtra; in sctp_make_ftsn_chunk()
1434 U32_TO_ABE32(sctp->sctp_adv_pap, advtsn); in sctp_make_ftsn_chunk()
1457 sctp_make_ftsns(sctp_t *sctp, mblk_t *meta, mblk_t *mp, mblk_t **nmp, in sctp_make_ftsns() argument
1469 uint32_t adv_pap = sctp->sctp_adv_pap; in sctp_make_ftsns()
1472 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_make_ftsns()
1478 SEQ_GEQ(sctp->sctp_adv_pap, ntohl(sdc->sdh_tsn))) { in sctp_make_ftsns()
1487 sctp->sctp_adv_pap = adv_pap; in sctp_make_ftsns()
1510 *nmp = sctp_make_ftsn_chunk(sctp, fp, sets, nsets, *seglen); in sctp_make_ftsns()
1514 if (sctp->sctp_ftsn == sctp->sctp_lastacked + 1) { in sctp_make_ftsns()
1519 (sizeof (sctp_sack_frag_t) * sctp->sctp_sack_gaps); in sctp_make_ftsns()
1520 if (*seglen + sacklen > sctp->sctp_lastdata->sf_pmss) { in sctp_make_ftsns()
1524 fp = sctp->sctp_lastdata; in sctp_make_ftsns()
1527 head = sctp_add_proto_hdr(sctp, fp, *nmp, sacklen, NULL); in sctp_make_ftsns()
1544 SEQ_GEQ(sctp->sctp_adv_pap, ntohl(sdc->sdh_tsn))) { in sctp_make_ftsns()
1551 SCTP_CHUNK_SENT(sctp, mp1, sdc, fp, clen, in sctp_make_ftsns()
1574 ASSERT(sctp->sctp_unsent >= unsent); in sctp_make_ftsns()
1575 sctp->sctp_unsent -= unsent; in sctp_make_ftsns()
1580 if (!SCTP_IS_DETACHED(sctp)) in sctp_make_ftsns()
1581 SCTP_TXQ_UPDATE(sctp); in sctp_make_ftsns()
1593 sctp_check_adv_ack_pt(sctp_t *sctp, mblk_t *meta, mblk_t *mp) in sctp_check_adv_ack_pt() argument
1595 uint32_t tsn = sctp->sctp_adv_pap; in sctp_check_adv_ack_pt()
1601 ASSERT(SEQ_GT(ntohl(sdc->sdh_tsn), sctp->sctp_lastack_rxd)); in sctp_check_adv_ack_pt()
1604 !SCTP_MSG_TO_BE_ABANDONED(meta, msg_hdr, sctp)) { in sctp_check_adv_ack_pt()
1624 !SCTP_MSG_TO_BE_ABANDONED(meta, msg_hdr, sctp)) { in sctp_check_adv_ack_pt()
1629 sctp->sctp_adv_pap = tsn; in sctp_check_adv_ack_pt()
1639 sctp->sctp_adv_pap = tsn; in sctp_check_adv_ack_pt()
1665 sctp_rexmit(sctp_t *sctp, sctp_faddr_t *oldfp) in sctp_rexmit() argument
1670 mblk_t *meta = sctp->sctp_xmit_head; in sctp_rexmit()
1678 uint32_t adv_pap = sctp->sctp_adv_pap; in sctp_rexmit()
1683 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_rexmit()
1719 if (SEQ_GT(tsn, sctp->sctp_lastack_rxd)) { in sctp_rexmit()
1720 if (sctp->sctp_prsctp_aware && ftsn_check) { in sctp_rexmit()
1721 if (SEQ_GEQ(sctp->sctp_adv_pap, tsn)) { in sctp_rexmit()
1722 ASSERT(sctp->sctp_prsctp_aware); in sctp_rexmit()
1726 sctp_check_adv_ack_pt(sctp, in sctp_rexmit()
1728 if (SEQ_GT(sctp->sctp_adv_pap, in sctp_rexmit()
1741 if (meta != NULL && sctp->sctp_prsctp_aware) { in sctp_rexmit()
1745 SCTP_MSG_TO_BE_ABANDONED(meta, mhdr, sctp))) { in sctp_rexmit()
1755 if (sctp->sctp_unacked == 0 && sctp->sctp_unsent != 0) { in sctp_rexmit()
1760 if (sctp->sctp_frwnd < (oldfp->sf_pmss - sizeof (*sdc))) in sctp_rexmit()
1761 sctp->sctp_frwnd = oldfp->sf_pmss - sizeof (*sdc); in sctp_rexmit()
1764 sctp->sctp_rxt_nxttsn = sctp->sctp_ltsn; in sctp_rexmit()
1771 sctp_output(sctp, 1); in sctp_rexmit()
1774 sctp->sctp_rxt_maxtsn = sctp->sctp_ltsn - 1; in sctp_rexmit()
1775 ASSERT(sctp->sctp_rxt_maxtsn >= sctp->sctp_rxt_nxttsn); in sctp_rexmit()
1776 sctp->sctp_zero_win_probe = B_TRUE; in sctp_rexmit()
1791 if (sctp->sctp_zero_win_probe) { in sctp_rexmit()
1801 fp = sctp_rotate_faddr(sctp, oldfp); in sctp_rexmit()
1802 pkt = sctp_rexmit_packet(sctp, &meta, &mp, fp, &pkt_len); in sctp_rexmit()
1805 sctp_set_iplen(sctp, pkt, fp->sf_ixa); in sctp_rexmit()
1807 BUMP_LOCAL(sctp->sctp_opkts); in sctp_rexmit()
1817 sctp->sctp_strikes++; in sctp_rexmit()
1819 SCTP_CALC_RXT(sctp, oldfp, sctp->sctp_rto_max); in sctp_rexmit()
1821 SCTP_FADDR_TIMER_RESTART(sctp, oldfp, fp->sf_rto); in sctp_rexmit()
1822 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_rexmit()
1835 fp = sctp_rotate_faddr(sctp, oldfp); in sctp_rexmit()
1841 sctp_make_ftsns(sctp, meta, mp, &nmp, fp, &seglen); in sctp_rexmit()
1843 sctp->sctp_adv_pap = adv_pap; in sctp_rexmit()
1865 if (sctp->sctp_ftsn == sctp->sctp_lastacked + 1) { in sctp_rexmit()
1870 (sizeof (sctp_sack_frag_t) * sctp->sctp_sack_gaps); in sctp_rexmit()
1871 if (seglen + sacklen > sctp->sctp_lastdata->sf_pmss) { in sctp_rexmit()
1883 if (sctp->sctp_lastdata != oldfp && in sctp_rexmit()
1884 sctp->sctp_lastdata->sf_state == in sctp_rexmit()
1886 fp = sctp->sctp_lastdata; in sctp_rexmit()
1895 if (sctp->sctp_out_time != 0 && in sctp_rexmit()
1896 SEQ_GEQ(sctp->sctp_rtt_tsn, sdc->sdh_tsn)) { in sctp_rexmit()
1897 sctp->sctp_out_time = 0; in sctp_rexmit()
1907 sctp_set_faddr_current(sctp, fp); in sctp_rexmit()
1913 fill = sctp_get_padding(sctp, extra); in sctp_rexmit()
1923 head = sctp_add_proto_hdr(sctp, fp, nmp, sacklen, NULL); in sctp_rexmit()
1931 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_rexmit()
1955 sctp)) { in sctp_rexmit()
1966 meta = sctp_get_msg_to_send(sctp, &mp, NULL, &error, in sctp_rexmit()
1988 fill = sctp_get_padding(sctp, extra); in sctp_rexmit()
1999 SCTP_CHUNK_SENT(sctp, mp, sdc, fp, chunklen, meta); in sctp_rexmit()
2020 (void *)fp, sctp->sctp_frwnd, sctp->sctp_lastack_rxd)); in sctp_rexmit()
2022 sctp->sctp_rexmitting = B_TRUE; in sctp_rexmit()
2023 sctp->sctp_rxt_nxttsn = first_ua_tsn; in sctp_rexmit()
2024 sctp->sctp_rxt_maxtsn = sctp->sctp_ltsn - 1; in sctp_rexmit()
2025 sctp_set_iplen(sctp, head, fp->sf_ixa); in sctp_rexmit()
2027 BUMP_LOCAL(sctp->sctp_opkts); in sctp_rexmit()
2035 sctp->sctp_strikes++; in sctp_rexmit()
2036 SCTP_CALC_RXT(sctp, oldfp, sctp->sctp_rto_max); in sctp_rexmit()
2044 SCTP_FADDR_TIMER_RESTART(sctp, oldfp, oldfp->sf_rto); in sctp_rexmit()
2059 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_rexmit()
2061 sctp->sctp_active = ddi_get_lbolt64(); in sctp_rexmit()
2074 sctp_rexmit_packet(sctp_t *sctp, mblk_t **meta, mblk_t **mp, sctp_faddr_t *fp, in sctp_rexmit_packet() argument
2096 fill = sctp_get_padding(sctp, extra); in sctp_rexmit_packet()
2106 head = sctp_add_proto_hdr(sctp, fp, nmp, 0, NULL); in sctp_rexmit_packet()
2111 SCTP_CHUNK_SENT(sctp, *mp, sdc, fp, chunklen, *meta); in sctp_rexmit_packet()
2115 if (!sctp->sctp_zero_win_probe) in sctp_rexmit_packet()
2116 sctp->sctp_rxt_nxttsn = ntohl(sdc->sdh_tsn); in sctp_rexmit_packet()
2143 sctp)) { in sctp_rexmit_packet()
2156 if (SEQ_GT(ntohl(sdc->sdh_tsn), sctp->sctp_rxt_maxtsn)) in sctp_rexmit_packet()
2169 fill = sctp_get_padding(sctp, extra); in sctp_rexmit_packet()
2180 SCTP_CHUNK_SENT(sctp, *mp, sdc, fp, chunklen, *meta); in sctp_rexmit_packet()
2184 if (!sctp->sctp_zero_win_probe) in sctp_rexmit_packet()
2185 sctp->sctp_rxt_nxttsn = ntohl(sdc->sdh_tsn); in sctp_rexmit_packet()
2207 sctp_ss_rexmit(sctp_t *sctp) in sctp_ss_rexmit() argument
2217 sctp_stack_t *sctps = sctp->sctp_sctps; in sctp_ss_rexmit()
2219 ASSERT(!sctp->sctp_zero_win_probe); in sctp_ss_rexmit()
2225 if (SEQ_GEQ(sctp->sctp_lastack_rxd, sctp->sctp_rxt_nxttsn)) in sctp_ss_rexmit()
2226 sctp->sctp_rxt_nxttsn = sctp->sctp_lastack_rxd + 1; in sctp_ss_rexmit()
2229 ASSERT(SEQ_LEQ(sctp->sctp_rxt_nxttsn, sctp->sctp_rxt_maxtsn)); in sctp_ss_rexmit()
2235 fp = sctp->sctp_current; in sctp_ss_rexmit()
2270 for (meta = sctp->sctp_xmit_head; meta != NULL; meta = meta->b_next) { in sctp_ss_rexmit()
2274 SCTP_MSG_TO_BE_ABANDONED(meta, mhdr, sctp)) { in sctp_ss_rexmit()
2283 if (ntohl(sdc->sdh_tsn) == sctp->sctp_rxt_nxttsn) in sctp_ss_rexmit()
2293 SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto); in sctp_ss_rexmit()
2294 pkt = sctp_rexmit_packet(sctp, &meta, &mp, fp, &pkt_len); in sctp_ss_rexmit()
2309 sctp_set_iplen(sctp, pkt, fp->sf_ixa); in sctp_ss_rexmit()
2311 BUMP_LOCAL(sctp->sctp_opkts); in sctp_ss_rexmit()