mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 08:31:37 +00:00
[TCP] FRTO: Prevent state inconsistency in corner cases
State could become inconsistent in two cases: 1) Userspace disabled FRTO by tuning sysctl when one of the TCP flows was in the middle of FRTO algorithm (and then RTO is again triggered) 2) SACK reneging occurs during FRTO algorithm A simple solution is just to abort the previous FRTO when such obscure condition occurs... Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
463236557d
commit
580e572a4a
@ -1501,6 +1501,8 @@ void tcp_enter_loss(struct sock *sk, int how)
|
||||
tcp_set_ca_state(sk, TCP_CA_Loss);
|
||||
tp->high_seq = tp->snd_nxt;
|
||||
TCP_ECN_queue_cwr(tp);
|
||||
/* Abort FRTO algorithm if one is in progress */
|
||||
tp->frto_counter = 0;
|
||||
|
||||
clear_all_retrans_hints(tp);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user