|
@@ -2414,15 +2414,12 @@ bool tcp_schedule_loss_probe(struct sock *sk, bool advancing_rto)
|
|
|
|
|
|
early_retrans = sock_net(sk)->ipv4.sysctl_tcp_early_retrans;
|
|
early_retrans = sock_net(sk)->ipv4.sysctl_tcp_early_retrans;
|
|
/* Schedule a loss probe in 2*RTT for SACK capable connections
|
|
/* Schedule a loss probe in 2*RTT for SACK capable connections
|
|
- * in Open state, that are either limited by cwnd or application.
|
|
|
|
|
|
+ * not in loss recovery, that are either limited by cwnd or application.
|
|
*/
|
|
*/
|
|
if ((early_retrans != 3 && early_retrans != 4) ||
|
|
if ((early_retrans != 3 && early_retrans != 4) ||
|
|
!tp->packets_out || !tcp_is_sack(tp) ||
|
|
!tp->packets_out || !tcp_is_sack(tp) ||
|
|
- icsk->icsk_ca_state != TCP_CA_Open)
|
|
|
|
- return false;
|
|
|
|
-
|
|
|
|
- if ((tp->snd_cwnd > tcp_packets_in_flight(tp)) &&
|
|
|
|
- !tcp_write_queue_empty(sk))
|
|
|
|
|
|
+ (icsk->icsk_ca_state != TCP_CA_Open &&
|
|
|
|
+ icsk->icsk_ca_state != TCP_CA_CWR))
|
|
return false;
|
|
return false;
|
|
|
|
|
|
/* Probe timeout is 2*rtt. Add minimum RTO to account
|
|
/* Probe timeout is 2*rtt. Add minimum RTO to account
|