with the current initial RTO of 1second. With this the final timeout
        for an active TCP connection attempt will happen after 127seconds.
 
-tcp_timestamps - BOOLEAN
-       Enable timestamps as defined in RFC1323.
+tcp_timestamps - INTEGER
+Enable timestamps as defined in RFC1323.
+       0: Disabled.
+       1: Enable timestamps as defined in RFC1323 and use random offset for
+       each connection rather than only using the current time.
+       2: Like 1, but without random offsets.
+       Default: 1
 
 tcp_min_tso_segs - INTEGER
        Minimal number of segments per TSO frame.
 
 #include <net/secure_seq.h>
 
 #if IS_ENABLED(CONFIG_IPV6) || IS_ENABLED(CONFIG_INET)
+#include <net/tcp.h>
 #define NET_SECRET_SIZE (MD5_MESSAGE_BYTES / 4)
 
 static u32 net_secret[NET_SECRET_SIZE] ____cacheline_aligned;
 
        md5_transform(hash, secret);
 
-       *tsoff = hash[1];
+       *tsoff = sysctl_tcp_timestamps == 1 ? hash[1] : 0;
        return seq_scale(hash[0]);
 }
 EXPORT_SYMBOL(secure_tcpv6_sequence_number);
 
        md5_transform(hash, net_secret);
 
-       *tsoff = hash[1];
+       *tsoff = sysctl_tcp_timestamps == 1 ? hash[1] : 0;
        return seq_scale(hash[0]);
 }
 
 
 int sysctl_tcp_app_win __read_mostly = 31;
 int sysctl_tcp_adv_win_scale __read_mostly = 1;
 EXPORT_SYMBOL(sysctl_tcp_adv_win_scale);
+EXPORT_SYMBOL(sysctl_tcp_timestamps);
 
 /* rfc5961 challenge ack rate limiting */
 int sysctl_tcp_challenge_ack_limit = 1000;