Lines Matching refs:stcb

90 sctp_threshold_management(struct sctp_inpcb *inp, struct sctp_tcb *stcb,  in sctp_threshold_management()  argument
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()
121 if (stcb == NULL) in sctp_threshold_management()
128 stcb->asoc.overall_error_count, in sctp_threshold_management()
129 (stcb->asoc.overall_error_count + 1), in sctp_threshold_management()
133 stcb->asoc.overall_error_count++; in sctp_threshold_management()
138 stcb->asoc.overall_error_count, in sctp_threshold_management()
139 (stcb->asoc.overall_error_count + 1), in sctp_threshold_management()
143 stcb->asoc.overall_error_count++; in sctp_threshold_management()
146 (void *)&stcb->asoc, stcb->asoc.overall_error_count, in sctp_threshold_management()
153 if (stcb->asoc.overall_error_count > threshold) { in sctp_threshold_management()
160 sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED); in sctp_threshold_management()
171 sctp_find_alternate_net(struct sctp_tcb *stcb, in sctp_find_alternate_net() argument
183 if (stcb->asoc.numnets == 1) { in sctp_find_alternate_net()
185 return (TAILQ_FIRST(&stcb->asoc.nets)); in sctp_find_alternate_net()
196 TAILQ_FOREACH(mnet, &stcb->asoc.nets, sctp_next) { in sctp_find_alternate_net()
265 if (stcb->asoc.hb_random_idx > 3) { in sctp_find_alternate_net()
266 rndval = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep); in sctp_find_alternate_net()
267 memcpy(stcb->asoc.hb_random_values, &rndval, sizeof(stcb->asoc.hb_random_values)); in sctp_find_alternate_net()
268 this_random = stcb->asoc.hb_random_values[0]; in sctp_find_alternate_net()
269 stcb->asoc.hb_random_idx++; in sctp_find_alternate_net()
270 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
272 this_random = stcb->asoc.hb_random_values[stcb->asoc.hb_random_idx]; in sctp_find_alternate_net()
273 stcb->asoc.hb_random_idx++; in sctp_find_alternate_net()
274 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
293 TAILQ_FOREACH(mnet, &stcb->asoc.nets, sctp_next) { in sctp_find_alternate_net()
309 if (stcb->asoc.hb_random_idx > 3) { in sctp_find_alternate_net()
310 rndval = sctp_select_initial_TSN(&stcb->sctp_ep->sctp_ep); in sctp_find_alternate_net()
311 memcpy(stcb->asoc.hb_random_values, &rndval, in sctp_find_alternate_net()
312 sizeof(stcb->asoc.hb_random_values)); in sctp_find_alternate_net()
313 this_random = stcb->asoc.hb_random_values[0]; in sctp_find_alternate_net()
314 stcb->asoc.hb_random_idx = 0; in sctp_find_alternate_net()
315 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
317 this_random = stcb->asoc.hb_random_values[stcb->asoc.hb_random_idx]; in sctp_find_alternate_net()
318 stcb->asoc.hb_random_idx++; in sctp_find_alternate_net()
319 stcb->asoc.hb_ect_randombit = 0; in sctp_find_alternate_net()
335 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
341 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
374 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
380 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
409 alt = TAILQ_FIRST(&stcb->asoc.nets); in sctp_find_alternate_net()
416 sctp_backoff_on_timeout(struct sctp_tcb *stcb, in sctp_backoff_on_timeout() argument
423 net->RTO = stcb->asoc.minrto; in sctp_backoff_on_timeout()
425 net->RTO = stcb->asoc.initial_rto; in sctp_backoff_on_timeout()
429 if (net->RTO > stcb->asoc.maxrto) { in sctp_backoff_on_timeout()
430 net->RTO = stcb->asoc.maxrto; in sctp_backoff_on_timeout()
435 stcb->asoc.cc_functions.sctp_cwnd_update_after_timeout(stcb, net); in sctp_backoff_on_timeout()
441 sctp_recover_sent_list(struct sctp_tcb *stcb) in sctp_recover_sent_list() argument
446 asoc = &stcb->asoc; in sctp_recover_sent_list()
468 sctp_free_bufspace(stcb, asoc, chk, 1); in sctp_recover_sent_list()
476 sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); in sctp_recover_sent_list()
487 sctp_mark_all_for_resend(struct sctp_tcb *stcb, in sctp_mark_all_for_resend() argument
525 stcb->asoc.peers_rwnd, in sctp_mark_all_for_resend()
529 sctp_log_fr(net->flight_size, net->cwnd, stcb->asoc.total_flight, SCTP_FR_CWND_REPORT); in sctp_mark_all_for_resend()
553 orig_tf = stcb->asoc.total_flight; in sctp_mark_all_for_resend()
563 TAILQ_FOREACH_SAFE(chk, &stcb->asoc.sent_queue, sctp_next, nchk) { in sctp_mark_all_for_resend()
564 if (SCTP_TSN_GE(stcb->asoc.last_acked_seq, chk->rec.data.tsn)) { in sctp_mark_all_for_resend()
567 (unsigned int)stcb->asoc.last_acked_seq, (unsigned int)chk->rec.data.tsn); in sctp_mark_all_for_resend()
573 sctp_recover_sent_list(stcb); in sctp_mark_all_for_resend()
624 if (stcb->asoc.prsctp_supported && PR_SCTP_TTL_ENABLED(chk->flags)) { in sctp_mark_all_for_resend()
629 (void)sctp_release_pr_sctp_chunk(stcb, in sctp_mark_all_for_resend()
638 if (stcb->asoc.prsctp_supported && PR_SCTP_RTX_ENABLED(chk->flags)) { in sctp_mark_all_for_resend()
642 (void)sctp_release_pr_sctp_chunk(stcb, in sctp_mark_all_for_resend()
652 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_mark_all_for_resend()
670 stcb->asoc.marked_retrans++; in sctp_mark_all_for_resend()
679 sctp_total_flight_decrease(stcb, chk); in sctp_mark_all_for_resend()
680 stcb->asoc.peers_rwnd += chk->send_size; in sctp_mark_all_for_resend()
681 stcb->asoc.peers_rwnd += SCTP_BASE_SYSCTL(sctp_peer_chunk_oh); in sctp_mark_all_for_resend()
704 if (TAILQ_EMPTY(&stcb->asoc.send_queue)) { in sctp_mark_all_for_resend()
705 chk->rec.data.fast_retran_tsn = stcb->asoc.sending_seq; in sctp_mark_all_for_resend()
707 chk->rec.data.fast_retran_tsn = (TAILQ_FIRST(&stcb->asoc.send_queue))->rec.data.tsn; in sctp_mark_all_for_resend()
713 if (stcb->asoc.sctp_cmt_on_off > 0) { in sctp_mark_all_for_resend()
726 if ((orig_flight - net->flight_size) != (orig_tf - stcb->asoc.total_flight)) { in sctp_mark_all_for_resend()
740 stcb->asoc.peers_rwnd); in sctp_mark_all_for_resend()
749 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) { in sctp_mark_all_for_resend()
760 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_mark_all_for_resend()
767 if ((stcb->asoc.sent_queue_retran_cnt == 0) && (could_be_sent)) { in sctp_mark_all_for_resend()
769 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_mark_all_for_resend()
774 if (stcb->asoc.sent_queue_retran_cnt != cnt_mk) { in sctp_mark_all_for_resend()
777 cnt_mk, stcb->asoc.sent_queue_retran_cnt, num_mk); in sctp_mark_all_for_resend()
780 stcb->asoc.sent_queue_retran_cnt = cnt_mk; in sctp_mark_all_for_resend()
787 stcb->asoc.total_flight = 0; in sctp_mark_all_for_resend()
788 stcb->asoc.total_flight_count = 0; in sctp_mark_all_for_resend()
790 TAILQ_FOREACH(lnets, &stcb->asoc.nets, sctp_next) { in sctp_mark_all_for_resend()
796 TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) { in sctp_mark_all_for_resend()
807 sctp_total_flight_increase(stcb, chk); in sctp_mark_all_for_resend()
817 struct sctp_tcb *stcb, in sctp_t3rxt_timer() argument
829 TAILQ_FOREACH(lnet, &stcb->asoc.nets, sctp_next) { in sctp_t3rxt_timer()
831 sctp_log_cwnd(stcb, lnet, 1, SCTP_CWND_LOG_FROM_T3); in sctp_t3rxt_timer()
833 sctp_log_cwnd(stcb, lnet, 0, SCTP_CWND_LOG_FROM_T3); in sctp_t3rxt_timer()
838 if ((stcb->asoc.peers_rwnd == 0) && in sctp_t3rxt_timer()
839 (stcb->asoc.total_flight < net->mtu)) { in sctp_t3rxt_timer()
848 if (sctp_threshold_management(inp, stcb, net, in sctp_t3rxt_timer()
849 stcb->asoc.max_send_times)) { in sctp_t3rxt_timer()
853 if (net != stcb->asoc.primary_destination) { in sctp_t3rxt_timer()
871 sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED); in sctp_t3rxt_timer()
883 if (sctp_threshold_management(inp, stcb, NULL, in sctp_t3rxt_timer()
884 stcb->asoc.max_send_times)) { in sctp_t3rxt_timer()
889 if (stcb->asoc.sctp_cmt_on_off > 0) { in sctp_t3rxt_timer()
891 alt = sctp_find_alternate_net(stcb, net, 2); in sctp_t3rxt_timer()
898 alt = sctp_find_alternate_net(stcb, net, 1); in sctp_t3rxt_timer()
909 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_t3rxt_timer()
914 (void)sctp_mark_all_for_resend(stcb, net, alt, win_probe, in sctp_t3rxt_timer()
917 stcb->asoc.fast_retran_loss_recovery = 0; in sctp_t3rxt_timer()
921 if ((stcb->asoc.cc_functions.sctp_cwnd_new_transmission_begins) && in sctp_t3rxt_timer()
923 (*stcb->asoc.cc_functions.sctp_cwnd_new_transmission_begins) (stcb, net); in sctp_t3rxt_timer()
929 stcb->asoc.sat_t3_loss_recovery = 1; in sctp_t3rxt_timer()
930 stcb->asoc.sat_t3_recovery_tsn = stcb->asoc.sending_seq; in sctp_t3rxt_timer()
933 sctp_backoff_on_timeout(stcb, net, win_probe, num_mk, num_abandoned); in sctp_t3rxt_timer()
937 sctp_move_chunks_from_net(stcb, net); in sctp_t3rxt_timer()
953 if ((stcb->asoc.primary_destination == net) && (alt != net)) { in sctp_t3rxt_timer()
961 if (stcb->asoc.alternate) { in sctp_t3rxt_timer()
962 sctp_free_remote_addr(stcb->asoc.alternate); in sctp_t3rxt_timer()
964 stcb->asoc.alternate = alt; in sctp_t3rxt_timer()
965 atomic_add_int(&stcb->asoc.alternate->ref_count, 1); in sctp_t3rxt_timer()
972 if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) { in sctp_t3rxt_timer()
977 sctp_timer_start(SCTP_TIMER_TYPE_SEND, inp, stcb, net); in sctp_t3rxt_timer()
980 if (stcb->asoc.prsctp_supported) { in sctp_t3rxt_timer()
983 lchk = sctp_try_advance_peer_ack_point(stcb, &stcb->asoc); in sctp_t3rxt_timer()
985 if (SCTP_TSN_GT(stcb->asoc.advanced_peer_ack_point, stcb->asoc.last_acked_seq)) { in sctp_t3rxt_timer()
986 send_forward_tsn(stcb, &stcb->asoc); in sctp_t3rxt_timer()
994 sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, lchk->whoTo); in sctp_t3rxt_timer()
999 sctp_log_cwnd(stcb, net, net->cwnd, SCTP_CWND_LOG_FROM_RTX); in sctp_t3rxt_timer()
1006 struct sctp_tcb *stcb, in sctp_t1init_timer() argument
1010 if (stcb->asoc.delayed_connection) { in sctp_t1init_timer()
1015 stcb->asoc.delayed_connection = 0; in sctp_t1init_timer()
1016 sctp_send_initiate(inp, stcb, SCTP_SO_NOT_LOCKED); in sctp_t1init_timer()
1019 if (SCTP_GET_STATE(stcb) != SCTP_STATE_COOKIE_WAIT) { in sctp_t1init_timer()
1022 if (sctp_threshold_management(inp, stcb, net, in sctp_t1init_timer()
1023 stcb->asoc.max_init_times)) { in sctp_t1init_timer()
1027 stcb->asoc.dropped_special_cnt = 0; in sctp_t1init_timer()
1028 sctp_backoff_on_timeout(stcb, stcb->asoc.primary_destination, 1, 0, 0); in sctp_t1init_timer()
1029 if (stcb->asoc.initial_init_rto_max < net->RTO) { in sctp_t1init_timer()
1030 net->RTO = stcb->asoc.initial_init_rto_max; in sctp_t1init_timer()
1032 if (stcb->asoc.numnets > 1) { in sctp_t1init_timer()
1036 alt = sctp_find_alternate_net(stcb, stcb->asoc.primary_destination, 0); in sctp_t1init_timer()
1037 if (alt != stcb->asoc.primary_destination) { in sctp_t1init_timer()
1038 sctp_move_chunks_from_net(stcb, stcb->asoc.primary_destination); in sctp_t1init_timer()
1039 stcb->asoc.primary_destination = alt; in sctp_t1init_timer()
1043 sctp_send_initiate(inp, stcb, SCTP_SO_NOT_LOCKED); in sctp_t1init_timer()
1054 struct sctp_tcb *stcb, in sctp_cookie_timer() argument
1061 TAILQ_FOREACH(cookie, &stcb->asoc.control_send_queue, sctp_next) { in sctp_cookie_timer()
1067 if (SCTP_GET_STATE(stcb) == SCTP_STATE_COOKIE_ECHOED) { in sctp_cookie_timer()
1074 sctp_abort_an_association(inp, stcb, op_err, SCTP_SO_NOT_LOCKED); in sctp_cookie_timer()
1079 …CTP_PRINTF("Strange in state %d not cookie-echoed yet c-e timer expires?\n", SCTP_GET_STATE(stcb)); in sctp_cookie_timer()
1086 if (sctp_threshold_management(inp, stcb, cookie->whoTo, in sctp_cookie_timer()
1087 stcb->asoc.max_init_times)) { in sctp_cookie_timer()
1095 stcb->asoc.dropped_special_cnt = 0; in sctp_cookie_timer()
1096 sctp_backoff_on_timeout(stcb, cookie->whoTo, 1, 0, 0); in sctp_cookie_timer()
1097 alt = sctp_find_alternate_net(stcb, cookie->whoTo, 0); in sctp_cookie_timer()
1105 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_cookie_timer()
1118 sctp_strreset_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb) in sctp_strreset_timer() argument
1123 if (stcb->asoc.stream_reset_outstanding == 0) { in sctp_strreset_timer()
1127 (void)sctp_find_stream_reset(stcb, stcb->asoc.str_reset_seq_out, &strrst); in sctp_strreset_timer()
1133 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_strreset_timer()
1141 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_strreset_timer()
1142 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_strreset_timer()
1147 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) { in sctp_strreset_timer()
1154 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_strreset_timer()
1165 sctp_move_chunks_from_net(stcb, net); in sctp_strreset_timer()
1171 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_strreset_timer()
1176 sctp_timer_start(SCTP_TIMER_TYPE_STRRESET, inp, stcb, alt); in sctp_strreset_timer()
1181 sctp_asconf_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_asconf_timer() argument
1188 if (TAILQ_EMPTY(&stcb->asoc.asconf_send_queue)) { in sctp_asconf_timer()
1190 sctp_send_asconf(stcb, net, SCTP_ADDR_NOT_LOCKED); in sctp_asconf_timer()
1197 asconf = TAILQ_FIRST(&stcb->asoc.asconf_send_queue); in sctp_asconf_timer()
1203 if (sctp_threshold_management(inp, stcb, net, in sctp_asconf_timer()
1204 stcb->asoc.max_send_times)) { in sctp_asconf_timer()
1208 if (asconf->snd_count > stcb->asoc.max_send_times) { in sctp_asconf_timer()
1217 sctp_asconf_cleanup(stcb); in sctp_asconf_timer()
1224 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_asconf_timer()
1225 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_asconf_timer()
1232 TAILQ_FOREACH(chk, &stcb->asoc.control_send_queue, sctp_next) { in sctp_asconf_timer()
1240 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_asconf_timer()
1245 TAILQ_FOREACH(chk, &stcb->asoc.asconf_send_queue, sctp_next) { in sctp_asconf_timer()
1252 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_asconf_timer()
1261 sctp_move_chunks_from_net(stcb, net); in sctp_asconf_timer()
1267 sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); in sctp_asconf_timer()
1272 sctp_send_asconf(stcb, alt, SCTP_ADDR_NOT_LOCKED); in sctp_asconf_timer()
1279 sctp_delete_prim_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb) in sctp_delete_prim_timer() argument
1281 if (stcb->asoc.deleted_primary == NULL) { in sctp_delete_prim_timer()
1287 SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &stcb->asoc.deleted_primary->ro._l_addr.sa); in sctp_delete_prim_timer()
1288 sctp_free_remote_addr(stcb->asoc.deleted_primary); in sctp_delete_prim_timer()
1289 stcb->asoc.deleted_primary = NULL; in sctp_delete_prim_timer()
1301 sctp_shutdown_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_shutdown_timer() argument
1307 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_shutdown_timer()
1311 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_shutdown_timer()
1313 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_shutdown_timer()
1316 sctp_send_shutdown(stcb, alt); in sctp_shutdown_timer()
1319 sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWN, inp, stcb, alt); in sctp_shutdown_timer()
1324 sctp_shutdownack_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_shutdownack_timer() argument
1330 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_shutdownack_timer()
1334 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_shutdownack_timer()
1336 alt = sctp_find_alternate_net(stcb, net, 0); in sctp_shutdownack_timer()
1339 sctp_send_shutdown_ack(stcb, alt); in sctp_shutdownack_timer()
1342 sctp_timer_start(SCTP_TIMER_TYPE_SHUTDOWNACK, inp, stcb, alt); in sctp_shutdownack_timer()
1348 struct sctp_tcb *stcb) in sctp_audit_stream_queues_for_size() argument
1357 if ((stcb == NULL) || (inp == NULL)) in sctp_audit_stream_queues_for_size()
1360 if (stcb->asoc.sent_queue_retran_cnt) { in sctp_audit_stream_queues_for_size()
1362 stcb->asoc.sent_queue_retran_cnt); in sctp_audit_stream_queues_for_size()
1363 stcb->asoc.sent_queue_retran_cnt = 0; in sctp_audit_stream_queues_for_size()
1365 if (stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, &stcb->asoc)) { in sctp_audit_stream_queues_for_size()
1367 stcb->asoc.ss_functions.sctp_ss_init(stcb, &stcb->asoc, 0); in sctp_audit_stream_queues_for_size()
1368 if (!stcb->asoc.ss_functions.sctp_ss_is_empty(stcb, &stcb->asoc)) { in sctp_audit_stream_queues_for_size()
1373 stcb->asoc.total_output_queue_size = 0; in sctp_audit_stream_queues_for_size()
1377 for (i = 0; i < stcb->asoc.streamoutcnt; i++) { in sctp_audit_stream_queues_for_size()
1378 if (!TAILQ_EMPTY(&stcb->asoc.strmout[i].outqueue)) { in sctp_audit_stream_queues_for_size()
1379 TAILQ_FOREACH(sp, &stcb->asoc.strmout[i].outqueue, next) { in sctp_audit_stream_queues_for_size()
1386 if (chks_in_queue != stcb->asoc.stream_queue_cnt) { in sctp_audit_stream_queues_for_size()
1388 stcb->asoc.stream_queue_cnt, chks_in_queue); in sctp_audit_stream_queues_for_size()
1392 sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED); in sctp_audit_stream_queues_for_size()
1393 if ((TAILQ_EMPTY(&stcb->asoc.send_queue)) && in sctp_audit_stream_queues_for_size()
1394 (TAILQ_EMPTY(&stcb->asoc.sent_queue))) { in sctp_audit_stream_queues_for_size()
1406 (u_long)stcb->asoc.total_output_queue_size); in sctp_audit_stream_queues_for_size()
1407 stcb->asoc.total_output_queue_size = 0; in sctp_audit_stream_queues_for_size()
1412 sctp_heartbeat_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb, in sctp_heartbeat_timer() argument
1432 sctp_backoff_on_timeout(stcb, net, 1, 0, 0); in sctp_heartbeat_timer()
1433 if (sctp_threshold_management(inp, stcb, net, stcb->asoc.max_send_times)) { in sctp_heartbeat_timer()
1442 if ((stcb->asoc.total_output_queue_size > 0) && in sctp_heartbeat_timer()
1443 (TAILQ_EMPTY(&stcb->asoc.send_queue)) && in sctp_heartbeat_timer()
1444 (TAILQ_EMPTY(&stcb->asoc.sent_queue))) { in sctp_heartbeat_timer()
1445 sctp_audit_stream_queues_for_size(inp, stcb); in sctp_heartbeat_timer()
1468 sctp_send_hb(stcb, net, SCTP_SO_NOT_LOCKED); in sctp_heartbeat_timer()
1476 struct sctp_tcb *stcb, in sctp_pathmtu_timer() argument
1502 stcb, in sctp_pathmtu_timer()
1504 net, 0, stcb->asoc.vrf_id); in sctp_pathmtu_timer()
1531 sctp_timer_start(SCTP_TIMER_TYPE_PATHMTURAISE, inp, stcb, net); in sctp_pathmtu_timer()
1535 sctp_autoclose_timer(struct sctp_inpcb *inp, struct sctp_tcb *stcb) in sctp_autoclose_timer() argument
1542 if (stcb->asoc.sctp_autoclose_ticks > 0 && in sctp_autoclose_timer()
1545 asoc = &stcb->asoc; in sctp_autoclose_timer()
1563 sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_AUTOCLOSE_TMR, SCTP_SO_NOT_LOCKED); in sctp_autoclose_timer()
1571 if (SCTP_GET_STATE(stcb) != SCTP_STATE_SHUTDOWN_SENT) { in sctp_autoclose_timer()
1575 if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) || in sctp_autoclose_timer()
1576 (SCTP_GET_STATE(stcb) == SCTP_STATE_SHUTDOWN_RECEIVED)) { in sctp_autoclose_timer()
1579 SCTP_SET_STATE(stcb, SCTP_STATE_SHUTDOWN_SENT); in sctp_autoclose_timer()
1580 sctp_stop_timers_for_shutdown(stcb); in sctp_autoclose_timer()
1581 if (stcb->asoc.alternate) { in sctp_autoclose_timer()
1582 net = stcb->asoc.alternate; in sctp_autoclose_timer()
1584 net = stcb->asoc.primary_destination; in sctp_autoclose_timer()
1586 sctp_send_shutdown(stcb, net); in sctp_autoclose_timer()
1588 stcb->sctp_ep, stcb, net); in sctp_autoclose_timer()
1590 stcb->sctp_ep, stcb, NULL); in sctp_autoclose_timer()
1603 sctp_timer_start(SCTP_TIMER_TYPE_AUTOCLOSE, inp, stcb, NULL); in sctp_autoclose_timer()