Lines Matching refs:stcb
87 sctp_threshold_management(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_threshold_management() argument
90 KASSERT(stcb != NULL, ("stcb is NULL")); in sctp_threshold_management()
91 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_threshold_management()
105 stcb, 0, in sctp_threshold_management()
113 sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED); in sctp_threshold_management()
115 inp, stcb, net, in sctp_threshold_management()
117 sctp_timer_start(SCTP_TIMER_TYPE_HEARTBEAT, inp, stcb, net); in sctp_threshold_management()
123 stcb->asoc.overall_error_count, in sctp_threshold_management()
124 (stcb->asoc.overall_error_count + 1), in sctp_threshold_management()
128 stcb->asoc.overall_error_count++; in sctp_threshold_management()
133 stcb->asoc.overall_error_count, in sctp_threshold_management()
134 (stcb->asoc.overall_error_count + 1), in sctp_threshold_management()
138 stcb->asoc.overall_error_count++; in sctp_threshold_management()
141 (void *)&stcb->asoc, stcb->asoc.overall_error_count, in sctp_threshold_management()
148 if (stcb->asoc.overall_error_count > threshold) { in sctp_threshold_management()
155 sctp_abort_an_association(inp, stcb, op_err, true, SCTP_SO_NOT_LOCKED); in sctp_threshold_management()
166 sctp_find_alternate_net(struct sctp_tcb *stcb, in sctp_find_alternate_net() argument
178 if (stcb->asoc.numnets == 1) { in sctp_find_alternate_net()
180 return (TAILQ_FIRST(&stcb->asoc.nets)); in sctp_find_alternate_net()
191 TAILQ_FOREACH(mnet, &stcb->asoc.nets, sctp_next) { in sctp_find_alternate_net()
260 if (stcb->asoc.hb_random_idx > 3) { in sctp_find_alternate_net()
261 rndval = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep); in sctp_find_alternate_net()
262 memcpy(stcb->asoc.hb_random_values, &rndval, sizeof(stcb->asoc.hb_random_values)); in sctp_find_alternate_net()
263 this_random = stcb->asoc.hb_random_values[0]; in sctp_find_alternate_net()
264 stcb->asoc.hb_random_idx++; in sctp_find_alternate_net()
265 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
267 this_random = stcb->asoc.hb_random_values[stcb->asoc.hb_random_idx]; in sctp_find_alternate_net()
268 stcb->asoc.hb_random_idx++; in sctp_find_alternate_net()
269 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
288 TAILQ_FOREACH(mnet, &stcb->asoc.nets, sctp_next) { in sctp_find_alternate_net()
304 if (stcb->asoc.hb_random_idx > 3) { in sctp_find_alternate_net()
305 rndval = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep); in sctp_find_alternate_net()
306 memcpy(stcb->asoc.hb_random_values, &rndval, in sctp_find_alternate_net()
307 sizeof(stcb->asoc.hb_random_values)); in sctp_find_alternate_net()
308 this_random = stcb->asoc.hb_random_values[0]; in sctp_find_alternate_net()
309 stcb->asoc.hb_random_idx = 0; in sctp_find_alternate_net()
310 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
312 this_random = stcb->asoc.hb_random_values[stcb->asoc.hb_random_idx]; in sctp_find_alternate_net()
313 stcb->asoc.hb_random_idx++; in sctp_find_alternate_net()
314 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
330 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
336 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
369 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
375 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
404 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
411 sctp_backoff_on_timeout(struct sctp_tcb *stcb, in sctp_backoff_on_timeout() argument
418 net->RTO = stcb->asoc.minrto; in sctp_backoff_on_timeout()
420 net->RTO = stcb->asoc.initial_rto; in sctp_backoff_on_timeout()
424 if (net->RTO > stcb->asoc.maxrto) { in sctp_backoff_on_timeout()
425 net->RTO = stcb->asoc.maxrto; in sctp_backoff_on_timeout()
430 stcb->asoc.cc_functions.sctp_cwnd_update_after_timeout(stcb, net); in sctp_backoff_on_timeout()
436 sctp_recover_sent_list(struct sctp_tcb *stcb) in sctp_recover_sent_list() argument
441 asoc = &stcb->asoc; in sctp_recover_sent_list()
463 sctp_free_bufspace(stcb, asoc, chk, 1); in sctp_recover_sent_list()
471 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_recover_sent_list()
482 sctp_mark_all_for_resend(struct sctp_tcb *stcb, in sctp_mark_all_for_resend() argument
522 stcb->asoc.peers_rwnd, in sctp_mark_all_for_resend()
526 sctp_log_fr(net->flight_size, net->cwnd, stcb->asoc.total_flight, SCTP_FR_CWND_REPORT); in sctp_mark_all_for_resend()
550 orig_tf = stcb->asoc.total_flight; in sctp_mark_all_for_resend()
560 TAILQ_FOREACH_SAFE(chk, &stcb->asoc.sent_queue, sctp_next, nchk) { in sctp_mark_all_for_resend()
561 if (SCTP_TSN_GE(stcb->asoc.last_acked_seq, chk->rec.data.tsn)) { in sctp_mark_all_for_resend()
564 (unsigned int)stcb->asoc.last_acked_seq, (unsigned int)chk->rec.data.tsn); in sctp_mark_all_for_resend()
570 sctp_recover_sent_list(stcb); in sctp_mark_all_for_resend()
621 if (stcb->asoc.prsctp_supported && PR_SCTP_TTL_ENABLED(chk->flags)) { in sctp_mark_all_for_resend()
626 (void)sctp_release_pr_sctp_chunk(stcb, in sctp_mark_all_for_resend()
635 if (stcb->asoc.prsctp_supported && PR_SCTP_RTX_ENABLED(chk->flags)) { in sctp_mark_all_for_resend()
639 (void)sctp_release_pr_sctp_chunk(stcb, in sctp_mark_all_for_resend()
649 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_mark_all_for_resend()
667 stcb->asoc.marked_retrans++; in sctp_mark_all_for_resend()
676 sctp_total_flight_decrease(stcb, chk); in sctp_mark_all_for_resend()
677 stcb->asoc.peers_rwnd += chk->send_size; in sctp_mark_all_for_resend()
678 stcb->asoc.peers_rwnd += SCTP_BASE_SYSCTL(sctp_peer_chunk_oh); in sctp_mark_all_for_resend()
701 if (TAILQ_EMPTY(&stcb->asoc.send_queue)) { in sctp_mark_all_for_resend()
702 chk->rec.data.fast_retran_tsn = stcb->asoc.sending_seq; in sctp_mark_all_for_resend()
704 chk->rec.data.fast_retran_tsn = (TAILQ_FIRST(&stcb->asoc.send_queue))->rec.data.tsn; in sctp_mark_all_for_resend()
710 if (stcb->asoc.sctp_cmt_on_off > 0) { in sctp_mark_all_for_resend()
723 if ((orig_flight - net->flight_size) != (orig_tf - stcb->asoc.total_flight)) { in sctp_mark_all_for_resend()
737 stcb->asoc.peers_rwnd); in sctp_mark_all_for_resend()
746 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) { in sctp_mark_all_for_resend()
757 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_mark_all_for_resend()
764 if ((stcb->asoc.sent_queue_retran_cnt == 0) && (could_be_sent)) { in sctp_mark_all_for_resend()
766 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_mark_all_for_resend()
771 if (stcb->asoc.sent_queue_retran_cnt != cnt_mk) { in sctp_mark_all_for_resend()
774 cnt_mk, stcb->asoc.sent_queue_retran_cnt, num_mk); in sctp_mark_all_for_resend()
777 stcb->asoc.sent_queue_retran_cnt = cnt_mk; in sctp_mark_all_for_resend()
784 stcb->asoc.total_flight = 0; in sctp_mark_all_for_resend()
785 stcb->asoc.total_flight_count = 0; in sctp_mark_all_for_resend()
787 TAILQ_FOREACH(lnets, &stcb->asoc.nets, sctp_next) { in sctp_mark_all_for_resend()
793 TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) { in sctp_mark_all_for_resend()
804 sctp_total_flight_increase(stcb, chk); in sctp_mark_all_for_resend()
814 struct sctp_tcb *stcb, in sctp_t3rxt_timer() argument
826 TAILQ_FOREACH(lnet, &stcb->asoc.nets, sctp_next) { in sctp_t3rxt_timer()
828 sctp_log_cwnd(stcb, lnet, 1, SCTP_CWND_LOG_FROM_T3); in sctp_t3rxt_timer()
830 sctp_log_cwnd(stcb, lnet, 0, SCTP_CWND_LOG_FROM_T3); in sctp_t3rxt_timer()
835 if ((stcb->asoc.peers_rwnd == 0) && in sctp_t3rxt_timer()
836 (stcb->asoc.total_flight < net->mtu)) { in sctp_t3rxt_timer()
845 if (sctp_threshold_management(inp, stcb, net, in sctp_t3rxt_timer()
846 stcb->asoc.max_send_times)) { in sctp_t3rxt_timer()
850 if (net != stcb->asoc.primary_destination) { in sctp_t3rxt_timer()
868 sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED); in sctp_t3rxt_timer()
880 if (sctp_threshold_management(inp, stcb, NULL, in sctp_t3rxt_timer()
881 stcb->asoc.max_send_times)) { in sctp_t3rxt_timer()
886 if (stcb->asoc.sctp_cmt_on_off > 0) { in sctp_t3rxt_timer()
888 alt = sctp_find_alternate_net(stcb, net, 2); in sctp_t3rxt_timer()
895 alt = sctp_find_alternate_net(stcb, net, 1); in sctp_t3rxt_timer()
906 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_t3rxt_timer()
911 (void)sctp_mark_all_for_resend(stcb, net, alt, win_probe, in sctp_t3rxt_timer()
914 stcb->asoc.fast_retran_loss_recovery = 0; in sctp_t3rxt_timer()
918 if ((stcb->asoc.cc_functions.sctp_cwnd_new_transmission_begins) && in sctp_t3rxt_timer()
920 (*stcb->asoc.cc_functions.sctp_cwnd_new_transmission_begins) (stcb, net); in sctp_t3rxt_timer()
926 stcb->asoc.sat_t3_loss_recovery = 1; in sctp_t3rxt_timer()
927 stcb->asoc.sat_t3_recovery_tsn = stcb->asoc.sending_seq; in sctp_t3rxt_timer()
930 sctp_backoff_on_timeout(stcb, net, win_probe, num_mk, num_abandoned); in sctp_t3rxt_timer()
934 sctp_move_chunks_from_net(stcb, net); in sctp_t3rxt_timer()
950 if ((stcb->asoc.primary_destination == net) && (alt != net)) { in sctp_t3rxt_timer()
958 if (stcb->asoc.alternate != NULL) { in sctp_t3rxt_timer()
959 sctp_free_remote_addr(stcb->asoc.alternate); in sctp_t3rxt_timer()
961 stcb->asoc.alternate = alt; in sctp_t3rxt_timer()
962 atomic_add_int(&stcb->asoc.alternate->ref_count, 1); in sctp_t3rxt_timer()
969 if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) { in sctp_t3rxt_timer()
974 sctp_timer_start(SCTP_TIMER_TYPE_SEND, inp, stcb, net); in sctp_t3rxt_timer()
977 if (stcb->asoc.prsctp_supported) { in sctp_t3rxt_timer()
980 lchk = sctp_try_advance_peer_ack_point(stcb, &stcb->asoc); in sctp_t3rxt_timer()
982 if (SCTP_TSN_GT(stcb->asoc.advanced_peer_ack_point, stcb->asoc.last_acked_seq)) { in sctp_t3rxt_timer()
983 send_forward_tsn(stcb, &stcb->asoc); in sctp_t3rxt_timer()
991 sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, lchk->whoTo); in sctp_t3rxt_timer()
996 sctp_log_cwnd(stcb, net, net->cwnd, SCTP_CWND_LOG_FROM_RTX); in sctp_t3rxt_timer()
1003 struct sctp_tcb *stcb, in sctp_t1init_timer() argument
1007 if (stcb->asoc.delayed_connection) { in sctp_t1init_timer()
1012 stcb->asoc.delayed_connection = 0; in sctp_t1init_timer()
1013 sctp_send_initiate(inp, stcb, SCTP_SO_NOT_LOCKED); in sctp_t1init_timer()
1016 if (SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT) { in sctp_t1init_timer()
1019 if (sctp_threshold_management(inp, stcb, net, in sctp_t1init_timer()
1020 stcb->asoc.max_init_times)) { in sctp_t1init_timer()
1024 stcb->asoc.dropped_special_cnt = 0; in sctp_t1init_timer()
1025 sctp_backoff_on_timeout(stcb, stcb->asoc.primary_destination, 1, 0, 0); in sctp_t1init_timer()
1026 if (stcb->asoc.initial_init_rto_max < net->RTO) { in sctp_t1init_timer()
1027 net->RTO = stcb->asoc.initial_init_rto_max; in sctp_t1init_timer()
1029 if (stcb->asoc.numnets > 1) { in sctp_t1init_timer()
1033 alt = sctp_find_alternate_net(stcb, stcb->asoc.primary_destination, 0); in sctp_t1init_timer()
1034 if (alt != stcb->asoc.primary_destination) { in sctp_t1init_timer()
1035 sctp_move_chunks_from_net(stcb, stcb->asoc.primary_destination); in sctp_t1init_timer()
1036 stcb->asoc.primary_destination = alt; in sctp_t1init_timer()
1040 sctp_send_initiate(inp, stcb, SCTP_SO_NOT_LOCKED); in sctp_t1init_timer()
1051 struct sctp_tcb *stcb, in sctp_cookie_timer() argument
1058 TAILQ_FOREACH(cookie, &stcb->asoc.control_send_queue, sctp_next) { in sctp_cookie_timer()
1064 if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) { in sctp_cookie_timer()
1071 sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_NOT_LOCKED); in sctp_cookie_timer()
1076 …CTP_PRINTF("Strange in state %d not cookie-echoed yet c-e timer expires?\n", SCTP_GET_STATE(stcb)); in sctp_cookie_timer()
1083 if (sctp_threshold_management(inp, stcb, cookie->whoTo, in sctp_cookie_timer()
1084 stcb->asoc.max_init_times)) { in sctp_cookie_timer()
1092 stcb->asoc.dropped_special_cnt = 0; in sctp_cookie_timer()
1093 sctp_backoff_on_timeout(stcb, cookie->whoTo, 1, 0, 0); in sctp_cookie_timer()
1094 alt = sctp_find_alternate_net(stcb, cookie->whoTo, 0); in sctp_cookie_timer()
1102 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_cookie_timer()
1115 sctp_strreset_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb) in sctp_strreset_timer() argument
1120 if (stcb->asoc.stream_reset_outstanding == 0) { in sctp_strreset_timer()
1124 (void)sctp_find_stream_reset(stcb, stcb->asoc.str_reset_seq_out, &strrst); in sctp_strreset_timer()
1130 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_strreset_timer()
1138 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_strreset_timer()
1139 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_strreset_timer()
1144 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) { in sctp_strreset_timer()
1151 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_strreset_timer()
1162 sctp_move_chunks_from_net(stcb, net); in sctp_strreset_timer()
1168 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_strreset_timer()
1173 sctp_timer_start(SCTP_TIMER_TYPE_STRRESET, inp, stcb, alt); in sctp_strreset_timer()
1178 sctp_asconf_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_asconf_timer() argument
1185 if (TAILQ_EMPTY(&stcb->asoc.asconf_send_queue)) { in sctp_asconf_timer()
1187 sctp_send_asconf(stcb, net, SCTP_ADDR_NOT_LOCKED); in sctp_asconf_timer()
1194 asconf = TAILQ_FIRST(&stcb->asoc.asconf_send_queue); in sctp_asconf_timer()
1200 if (sctp_threshold_management(inp, stcb, net, in sctp_asconf_timer()
1201 stcb->asoc.max_send_times)) { in sctp_asconf_timer()
1205 if (asconf->snd_count > stcb->asoc.max_send_times) { in sctp_asconf_timer()
1214 sctp_asconf_cleanup(stcb); in sctp_asconf_timer()
1221 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_asconf_timer()
1222 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_asconf_timer()
1229 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) { in sctp_asconf_timer()
1237 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_asconf_timer()
1242 TAILQ_FOREACH(chk, &stcb->asoc.asconf_send_queue, sctp_next) { in sctp_asconf_timer()
1249 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_asconf_timer()
1258 sctp_move_chunks_from_net(stcb, net); in sctp_asconf_timer()
1264 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_asconf_timer()
1269 sctp_send_asconf(stcb, alt, SCTP_ADDR_NOT_LOCKED); in sctp_asconf_timer()
1276 sctp_delete_prim_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb) in sctp_delete_prim_timer() argument
1278 if (stcb->asoc.deleted_primary == NULL) { in sctp_delete_prim_timer()
1284 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &stcb->asoc.deleted_primary->ro._l_addr.sa); in sctp_delete_prim_timer()
1285 sctp_free_remote_addr(stcb->asoc.deleted_primary); in sctp_delete_prim_timer()
1286 stcb->asoc.deleted_primary = NULL; in sctp_delete_prim_timer()
1298 sctp_shutdown_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_shutdown_timer() argument
1304 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_shutdown_timer()
1308 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_shutdown_timer()
1310 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_shutdown_timer()
1313 sctp_send_shutdown(stcb, alt); in sctp_shutdown_timer()
1316 sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, inp, stcb, alt); in sctp_shutdown_timer()
1321 sctp_shutdownack_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_shutdownack_timer() argument
1327 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_shutdownack_timer()
1331 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_shutdownack_timer()
1333 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_shutdownack_timer()
1336 sctp_send_shutdown_ack(stcb, alt); in sctp_shutdownack_timer()
1339 sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNACK, inp, stcb, alt); in sctp_shutdownack_timer()
1344 sctp_audit_stream_queues_for_size(struct sctp_inpcb *inp, struct sctp_tcb *stcb) in sctp_audit_stream_queues_for_size() argument
1351 KASSERT(stcb != NULL, ("stcb is NULL")); in sctp_audit_stream_queues_for_size()
1352 SCTP_TCB_LOCK_ASSERT(stcb); in sctp_audit_stream_queues_for_size()
1353 KASSERT(TAILQ_EMPTY(&stcb->asoc.send_queue), ("send_queue not empty")); in sctp_audit_stream_queues_for_size()
1354 KASSERT(TAILQ_EMPTY(&stcb->asoc.sent_queue), ("sent_queue not empty")); in sctp_audit_stream_queues_for_size()
1356 if (stcb->asoc.sent_queue_retran_cnt) { in sctp_audit_stream_queues_for_size()
1358 stcb->asoc.sent_queue_retran_cnt); in sctp_audit_stream_queues_for_size()
1359 stcb->asoc.sent_queue_retran_cnt = 0; in sctp_audit_stream_queues_for_size()
1361 if (stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, &stcb->asoc)) { in sctp_audit_stream_queues_for_size()
1363 stcb->asoc.ss_functions.sctp_ss_init(stcb, &stcb->asoc); in sctp_audit_stream_queues_for_size()
1364 if (!stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, &stcb->asoc)) { in sctp_audit_stream_queues_for_size()
1369 stcb->asoc.total_output_queue_size = 0; in sctp_audit_stream_queues_for_size()
1373 for (i = 0; i < stcb->asoc.streamoutcnt; i++) { in sctp_audit_stream_queues_for_size()
1374 if (!TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) { in sctp_audit_stream_queues_for_size()
1375 TAILQ_FOREACH(sp, &stcb->asoc.strmout[i].outqueue, next) { in sctp_audit_stream_queues_for_size()
1382 if (chks_in_queue != stcb->asoc.stream_queue_cnt) { in sctp_audit_stream_queues_for_size()
1384 stcb->asoc.stream_queue_cnt, chks_in_queue); in sctp_audit_stream_queues_for_size()
1388 sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED); in sctp_audit_stream_queues_for_size()
1389 if ((TAILQ_EMPTY(&stcb->asoc.send_queue)) && in sctp_audit_stream_queues_for_size()
1390 (TAILQ_EMPTY(&stcb->asoc.sent_queue))) { in sctp_audit_stream_queues_for_size()
1402 (u_long)stcb->asoc.total_output_queue_size); in sctp_audit_stream_queues_for_size()
1403 stcb->asoc.total_output_queue_size = 0; in sctp_audit_stream_queues_for_size()
1408 sctp_heartbeat_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_heartbeat_timer() argument
1424 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_heartbeat_timer()
1425 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_heartbeat_timer()
1434 if ((stcb->asoc.total_output_queue_size > 0) && in sctp_heartbeat_timer()
1435 (TAILQ_EMPTY(&stcb->asoc.send_queue)) && in sctp_heartbeat_timer()
1436 (TAILQ_EMPTY(&stcb->asoc.sent_queue))) { in sctp_heartbeat_timer()
1437 sctp_audit_stream_queues_for_size(inp, stcb); in sctp_heartbeat_timer()
1462 sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED); in sctp_heartbeat_timer()
1470 struct sctp_tcb *stcb, in sctp_pathmtu_timer() argument
1496 stcb, in sctp_pathmtu_timer()
1498 net, 0, stcb->asoc.vrf_id); in sctp_pathmtu_timer()
1525 sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net); in sctp_pathmtu_timer()
1529 sctp_autoclose_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb) in sctp_autoclose_timer() argument
1536 if (stcb->asoc.sctp_autoclose_ticks > 0 && in sctp_autoclose_timer()
1539 asoc = &stcb->asoc; in sctp_autoclose_timer()
1557 sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_AUTOCLOSE_TMR, SCTP_SO_NOT_LOCKED); in sctp_autoclose_timer()
1565 if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) { in sctp_autoclose_timer()
1569 if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) || in sctp_autoclose_timer()
1570 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) { in sctp_autoclose_timer()
1573 SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT); in sctp_autoclose_timer()
1574 sctp_stop_timers_for_shutdown(stcb); in sctp_autoclose_timer()
1575 if (stcb->asoc.alternate) { in sctp_autoclose_timer()
1576 net = stcb->asoc.alternate; in sctp_autoclose_timer()
1578 net = stcb->asoc.primary_destination; in sctp_autoclose_timer()
1580 sctp_send_shutdown(stcb, net); in sctp_autoclose_timer()
1582 stcb->sctp_ep, stcb, net); in sctp_autoclose_timer()
1584 stcb->sctp_ep, stcb, NULL); in sctp_autoclose_timer()
1597 sctp_timer_start(SCTP_TIMER_TYPE_AUTOCLOSE, inp, stcb, NULL); in sctp_autoclose_timer()