[TCP]: Verify the presence of RETRANS bit when leaving FRTO
For yet unknown reason, something cleared SACKED_RETRANS bit underneath FRTO. 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
063ed369c9
commit
0a9f2a467d
1 changed files with 3 additions and 1 deletions
|
@ -1398,7 +1398,9 @@ static void tcp_enter_frto_loss(struct sock *sk, int allowed_segments, int flag)
|
|||
* waiting for the first ACK and did not get it)...
|
||||
*/
|
||||
if ((tp->frto_counter == 1) && !(flag&FLAG_DATA_ACKED)) {
|
||||
tp->retrans_out += tcp_skb_pcount(skb);
|
||||
/* For some reason this R-bit might get cleared? */
|
||||
if (TCP_SKB_CB(skb)->sacked & TCPCB_SACKED_RETRANS)
|
||||
tp->retrans_out += tcp_skb_pcount(skb);
|
||||
/* ...enter this if branch just for the first segment */
|
||||
flag |= FLAG_DATA_ACKED;
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue