Re: [PATCH][v4] tcp: fix ICMP-RTO war
From: David Miller <davem@davemloft.net>
Date: 2010-02-22 02:10:11
From: "Ilpo Järvinen" <redacted> Date: Tue, 16 Feb 2010 14:45:25 +0200 (EET)
On Wed, 10 Feb 2010, Damian Lukowski wrote:quoted
@@ -5783,12 +5783,10 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb, /* tcp_ack considers this ACK as duplicate * and does not calculate rtt. - * Fix it at least with timestamps. + * Force it here. */ - if (tp->rx_opt.saw_tstamp && - tp->rx_opt.rcv_tsecr && !tp->srtt) - tcp_ack_saw_tstamp(sk, 0); - + tcp_ack_update_rtt(sk, 0, 0); +...Here a zero seq_rtt is given to RTT estimator (it will be effective only in the case w/o timestamps, TS case recalculates it from the stored timestamps). Maybe we could use some field (timestamp related one comes to my mind) in request sock to get a real RTT estimate for non-timestamp case too. ...It seems possible to me, though tricky because the request_sock is no longer that easily available here so some parameter passing would be needed.
Agreed. But even more simply I think we should make even the current tcp_ack_update_rtt() call here conditional on at least tp->srtt being zero. Damian do you at least agree with that?