--- linux-2.4.29/include/net/tcp.h.orig	2005-03-10 19:36:06.000000000 +0100
+++ linux-2.4.29/include/net/tcp.h	2005-03-10 19:47:04.000000000 +0100
@@ -494,6 +494,10 @@
 extern int sysctl_tcp_default_win_scale;
 extern int sysctl_tcp_moderate_rcvbuf;
 
+extern int sysctl_tcp_asac_spoof;
+extern int sysctl_tcp_asac_spoof_offset;
+
+
 extern atomic_t tcp_memory_allocated;
 extern atomic_t tcp_sockets_allocated;
 extern int tcp_memory_pressure;
@@ -1015,7 +1019,7 @@
  * only use of the low 32-bits of jiffies and hide the ugly
  * casts with the following macro.
  */
-#define tcp_time_stamp		((__u32)(jiffies))
+#define tcp_time_stamp		(sysctl_tcp_asac_spoof ? (__u32)( jiffies + (100 /* Hz */ * 60 /* sec */ * 60 /* min */ * 24 /* hrs */ * sysctl_tcp_asac_spoof_offset)) : (__u32)(jiffies))
 
 /* This is what the send packet queueing engine uses to pass
  * TCP per-packet control information to the transmission
diff -uwr linux-2.4.29/net/ipv4.orig/sysctl_net_ipv4.c linux-2.4.29/net/ipv4/sysctl_net_ipv4.c
--- linux-2.4.29/net/ipv4.orig/sysctl_net_ipv4.c	2005-03-10 19:36:32.000000000 +0100
+++ linux-2.4.29/net/ipv4/sysctl_net_ipv4.c	2005-03-10 19:43:31.000000000 +0100
@@ -268,6 +268,12 @@
  	{NET_TCP_MODERATE_RCVBUF, "tcp_moderate_rcvbuf",
 	 &sysctl_tcp_moderate_rcvbuf, sizeof(int), 0644, NULL,
 	 &proc_dointvec},
+ 	{NET_TCP_ASAC_SPOOF, "tcp_asac_spoof",
+	 &sysctl_tcp_asac_spoof, sizeof(int), 0644, NULL,
+	 &proc_dointvec},
+ 	{NET_TCP_MODERATE_RCVBUF, "tcp_asac_spoof_offset",
+	 &sysctl_tcp_asac_spoof_offset, sizeof(int), 0644, NULL,
+	 &proc_dointvec},
 	{0}
 };
 
diff -uwr linux-2.4.29/net/ipv4.orig/tcp_input.c linux-2.4.29/net/ipv4/tcp_input.c
--- linux-2.4.29/net/ipv4.orig/tcp_input.c	2005-03-10 19:36:32.000000000 +0100
+++ linux-2.4.29/net/ipv4/tcp_input.c	2005-03-10 19:44:45.000000000 +0100
@@ -108,6 +108,10 @@
 int sysctl_tcp_bic_fast_convergence = 1;
 int sysctl_tcp_bic_low_window = 14;
 
+/* asac spoof flags */
+int sysctl_tcp_asac_spoof = 1;
+int sysctl_tcp_asac_spoof_offset = 300;
+
 #define FLAG_DATA		0x01 /* Incoming frame contained data.		*/
 #define FLAG_WIN_UPDATE		0x02 /* Incoming ACK was a window update.	*/
 #define FLAG_DATA_ACKED		0x04 /* This ACK acknowledged new data.		*/
