summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2016-01-16 17:53:04 +0000
committertuexen <tuexen@FreeBSD.org>2016-01-16 17:53:04 +0000
commitee86c09c66f4dc7609980658671f8eb96a6b6f0e (patch)
tree534a669088518600d44a6ea11e4ca39b7f4a25e3 /sys/netinet
parent2dd9413da1f0d93b1ea0da075ef1a50ffcdb3c52 (diff)
downloadFreeBSD-src-ee86c09c66f4dc7609980658671f8eb96a6b6f0e.zip
FreeBSD-src-ee86c09c66f4dc7609980658671f8eb96a6b6f0e.tar.gz
MFC r289240:
Fix the timeout for INIT retransmissions in the case where RTO_MIN is smaller than RTO_INITIAL.
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/sctp_timer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netinet/sctp_timer.c b/sys/netinet/sctp_timer.c
index 3e72585..bbb7306 100644
--- a/sys/netinet/sctp_timer.c
+++ b/sys/netinet/sctp_timer.c
@@ -408,7 +408,11 @@ sctp_backoff_on_timeout(struct sctp_tcb *stcb,
int num_marked, int num_abandoned)
{
if (net->RTO == 0) {
- net->RTO = stcb->asoc.minrto;
+ if (net->RTO_measured) {
+ net->RTO = stcb->asoc.minrto;
+ } else {
+ net->RTO = stcb->asoc.initial_rto;
+ }
}
net->RTO <<= 1;
if (net->RTO > stcb->asoc.maxrto) {
OpenPOWER on IntegriCloud