| 1046 | sctp_asconf_queue_mgmt(struct sctp_tcb *, struct sctp_ifa *, uint16_t); |
| 1047 | |
| 1048 | void |
| 1049 | sctp_net_immediate_retrans(struct sctp_tcb *stcb, struct sctp_nets *net) |
| 1050 | { |
| 1051 | struct sctp_tmit_chunk *chk; |
| 1052 | |
| 1053 | SCTPDBG(SCTP_DEBUG_ASCONF1, "net_immediate_retrans: RTO is %d\n", net->RTO); |
| 1054 | sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, net, |
| 1055 | SCTP_FROM_SCTP_ASCONF + SCTP_LOC_4); |
| 1056 | stcb->asoc.cc_functions.sctp_set_initial_cc_param(stcb, net); |
| 1057 | net->error_count = 0; |
| 1058 | TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) { |
| 1059 | if (chk->whoTo == net) { |
| 1060 | if (chk->sent < SCTP_DATAGRAM_RESEND) { |
| 1061 | chk->sent = SCTP_DATAGRAM_RESEND; |
| 1062 | sctp_ucount_incr(stcb->asoc.sent_queue_retran_cnt); |
| 1063 | sctp_flight_size_decrease(chk); |
| 1064 | sctp_total_flight_decrease(stcb, chk); |
| 1065 | net->marked_retrans++; |
| 1066 | stcb->asoc.marked_retrans++; |
| 1067 | } |
| 1068 | } |
| 1069 | } |
| 1070 | if (net->marked_retrans) { |
| 1071 | sctp_chunk_output(stcb->sctp_ep, stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED); |
| 1072 | } |
| 1073 | } |
| 1074 | |
| 1075 | static void |
| 1076 | sctp_path_check_and_react(struct sctp_tcb *stcb, struct sctp_ifa *newifa) |
no test coverage detected