[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)...
|
* waiting for the first ACK and did not get it)...
|
||||||
*/
|
*/
|
||||||
if ((tp->frto_counter == 1) && !(flag&FLAG_DATA_ACKED)) {
|
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 */
|
/* ...enter this if branch just for the first segment */
|
||||||
flag |= FLAG_DATA_ACKED;
|
flag |= FLAG_DATA_ACKED;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue