* At latest on third ACK the TCP behavor is back to normal. 
* At latest on third ACK the TCP behavior is back to normal. 
static void tcp_process_frto(struct sock *sk, u32 prior_snd_una){	struct tcp_sock *tp = tcp_sk(sk);		tcp_sync_left_out(tp);		if (tp->snd_una == prior_snd_una ||	    !before(tp->snd_una, tp->frto_highmark)) {		/* RTO was caused by loss, start retransmitting in		 * go-back-N slow start		 */		tcp_enter_frto_loss(sk);		return;	}	if (tp->frto_counter == 1) {		/* First ACK after RTO advances the window: allow two new		 * segments out.		 */		tp->snd_cwnd = tcp_packets_in_flight(tp) + 2;	} else {		/* Also the second ACK after RTO advances the window.		 * The RTO was likely spurious. Reduce cwnd and continue		 * in congestion avoidance		 */		tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh);		tcp_moderate_cwnd(tp);	}	/* F-RTO affects on two new ACKs following RTO.	 * At latest on third ACK the TCP behavor is back to normal.	 */	tp->frto_counter = (tp->frto_counter + 1) % 3;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/caa20d9abe810be2ede9612b6c9db6ce7d6edf80/tcp_input.c/buggy/net/ipv4/tcp_input.c