summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_timer.c
diff options
context:
space:
mode:
authorJeffrey Hsu <hsu@FreeBSD.org>2003-07-15 21:49:53 +0000
committerJeffrey Hsu <hsu@FreeBSD.org>2003-07-15 21:49:53 +0000
commit9d11646de7094383d45b3d9a538a0f6b99c32f05 (patch)
tree36d4a503a9c109905df229081f20d0f9c880956b /sys/netinet/tcp_timer.c
parentff40920e9e2405f24b6d5a1f10f1f9b91ae07ff7 (diff)
Notes
Diffstat (limited to 'sys/netinet/tcp_timer.c')
-rw-r--r--sys/netinet/tcp_timer.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c
index 4dfdba45b130..12b63a558eff 100644
--- a/sys/netinet/tcp_timer.c
+++ b/sys/netinet/tcp_timer.c
@@ -528,7 +528,11 @@ tcp_timer_rexmt(xtp)
*/
tp->snd_cwnd_prev = tp->snd_cwnd;
tp->snd_ssthresh_prev = tp->snd_ssthresh;
- tp->snd_high_prev = tp->snd_high;
+ tp->snd_recover_prev = tp->snd_recover;
+ if (IN_FASTRECOVERY(tp))
+ tp->t_flags |= TF_WASFRECOVERY;
+ else
+ tp->t_flags &= ~TF_WASFRECOVERY;
tp->t_badrxtwin = ticks + (tp->t_srtt >> (TCP_RTT_SHIFT + 1));
}
tcpstat.tcps_rexmttimeo++;
@@ -566,7 +570,7 @@ tcp_timer_rexmt(xtp)
tp->t_srtt = 0;
}
tp->snd_nxt = tp->snd_una;
- tp->snd_high = tp->snd_max;
+ tp->snd_recover = tp->snd_max;
/*
* Force a segment to be sent.
*/
@@ -607,6 +611,7 @@ tcp_timer_rexmt(xtp)
tp->snd_ssthresh = win * tp->t_maxseg;
tp->t_dupacks = 0;
}
+ EXIT_FASTRECOVERY(tp);
(void) tcp_output(tp);
out: