On Tue, 2017-05-16 at 14:00 -0700, Eric Dumazet wrote: > TCP Timestamps option is defined in RFC 7323 > > Traditionally on linux, it has been tied to the internal > 'jiffies' variable, because it had been a cheap and good enough > generator.
... > @@ -3003,7 +3004,7 @@ void tcp_rearm_rto(struct sock *sk) > struct sk_buff *skb = tcp_write_queue_head(sk); > const u32 rto_time_stamp = > tcp_skb_timestamp(skb) + rto; > - s32 delta = (s32)(rto_time_stamp - tcp_time_stamp); > + s32 delta = (s32)(rto_time_stamp - tcp_jiffies32); > /* delta may not be positive if the socket is locked > * when the retrans timer fires and is rescheduled. > */ RTO is broken, I will send a fix after tests.