MCPcopy Create free account
hub / github.com/F-Stack/f-stack / sctp_net_immediate_retrans

Function sctp_net_immediate_retrans

freebsd/netinet/sctp_asconf.c:1048–1073  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1046 sctp_asconf_queue_mgmt(struct sctp_tcb *, struct sctp_ifa *, uint16_t);
1047
1048void
1049sctp_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
1075static void
1076sctp_path_check_and_react(struct sctp_tcb *stcb, struct sctp_ifa *newifa)

Callers 1

Calls 2

sctp_timer_stopFunction · 0.85
sctp_chunk_outputFunction · 0.85

Tested by

no test coverage detected