On Tue, Feb 2, 2016 at 11:30 AM, Kenneth Klette Jonassen <kenne...@ifi.uio.no> wrote: > > On Sat, Oct 17, 2015 at 6:57 AM, Yuchung Cheng <ych...@google.com> wrote: > > Currently ca_seq_rtt_us does not use Kern's check. Fix that by > > checking if any packet acked is a retransmit, for both RTT used > > for RTT estimation and congestion control. > > > *snip* > > This patch (commit 9e45a3e) puzzles me, because Karn's check was > already in effect: > http://lxr.free-electrons.com/source/net/ipv4/tcp_input.c?v=4.3#L3117 > > Since first_ackt/last_ackt is only set when non-retransmitted packets > are ACKed (sequentially), we know them to be unambiguous samples for > RTTM. Even if a (sequential) ACK covers retransmitted packets, we can > still make a valid RTTM if that ACK also covers non-retransmitted > packets. But this patch seems to prevent that? Perhaps the commit message is not clear. Here is an example: an ACK acks 2 packets where the 1st packet was retransmitted but the 2nd packet is not.
Since we don't know if the ACk was caused by the retransmission (plugs a hole) or by the original, we should not take an RTT sample. In other words, we should refrain from taking RTT sample as long as the ACK covers any retransmitted sequence.