diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2007-10-01 18:28:48 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:54:00 -0400 |
commit | 3de96471bd7fb76406e975ef6387abe3a0698149 (patch) | |
tree | e075e0ce74b97d906bdca160fe02b60e3cb9d907 /net/ipv4/tcp_input.c | |
parent | 0e835331e3111e5a92eb3a852405ea71ca8fff97 (diff) |
[TCP]: Wrap-safed reordering detection FRTO check
In case somebody has a suggestion about a better place for this
check, which must guarantee execution "early enough" (i.e,
before the wrap can occur), I'm very open to them.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index c1339d88bbf3..7c1a92ffa083 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -3027,6 +3027,9 @@ static int tcp_ack(struct sock *sk, struct sk_buff *skb, int flag) | |||
3027 | /* See if we can take anything off of the retransmit queue. */ | 3027 | /* See if we can take anything off of the retransmit queue. */ |
3028 | flag |= tcp_clean_rtx_queue(sk, &seq_rtt); | 3028 | flag |= tcp_clean_rtx_queue(sk, &seq_rtt); |
3029 | 3029 | ||
3030 | /* Guarantee sacktag reordering detection against wrap-arounds */ | ||
3031 | if (before(tp->frto_highmark, tp->snd_una)) | ||
3032 | tp->frto_highmark = 0; | ||
3030 | if (tp->frto_counter) | 3033 | if (tp->frto_counter) |
3031 | frto_cwnd = tcp_process_frto(sk, flag); | 3034 | frto_cwnd = tcp_process_frto(sk, flag); |
3032 | 3035 | ||