tcp: remove per-destination timestamp cache
authorSoheil Hassas Yeganeh <soheil@google.com>
Wed, 15 Mar 2017 20:30:45 +0000 (16:30 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Mar 2017 03:33:56 +0000 (20:33 -0700)
commitd82bae12dc38d79a2b77473f5eb0612a3d69c55b
tree677ef02fce0b832e01c02c21f37fa7d653663104
parent8b705f5241adb2d0b5d009abea5a865601666974
tcp: remove per-destination timestamp cache

Commit 8a5bd45f6616 (tcp: randomize tcp timestamp offsets for each connection)
randomizes TCP timestamps per connection. After this commit,
there is no guarantee that the timestamps received from the
same destination are monotonically increasing. As a result,
the per-destination timestamp cache in TCP metrics (i.e., tcpm_ts
in struct tcp_metrics_block) is broken and cannot be relied upon.

Remove the per-destination timestamp cache and all related code
paths.

Note that this cache was already broken for caching timestamps of
multiple machines behind a NAT sharing the same address.

Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Cc: Lutz Vieweg <lvml@5t9.de>
Cc: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_metrics.c
net/ipv4/tcp_minisocks.c
net/ipv6/tcp_ipv6.c