]> git.hungrycats.org Git - linux/commitdiff
[TCP]: Add sysctl to turn off matrics caching.
authorStephen Hemminger <shemminger@osdl.org>
Wed, 21 Apr 2004 10:00:02 +0000 (03:00 -0700)
committerDavid S. Miller <davem@nuts.davemloft.net>
Wed, 21 Apr 2004 10:00:02 +0000 (03:00 -0700)
include/linux/sysctl.h
include/net/tcp.h
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_input.c

index d63d07fe674fd082e61444d519e4d6e976eb612c..f32c83568201de96f25088bec8e97a2f399df831 100644 (file)
@@ -326,6 +326,7 @@ enum
        NET_IPV4_IPFRAG_SECRET_INTERVAL=94,
        NET_TCP_WESTWOOD=95,
        NET_IPV4_IGMP_MAX_MSF=96,
+       NET_TCP_NO_METRICS_SAVE=97,
 };
 
 enum {
index 865c85133169578e125201570235b3cf170fe105..268da91f64dd6363d21e4ccb9f814531eb5f180b 100644 (file)
@@ -583,6 +583,7 @@ extern int sysctl_tcp_tw_reuse;
 extern int sysctl_tcp_frto;
 extern int sysctl_tcp_low_latency;
 extern int sysctl_tcp_westwood;
+extern int sysctl_tcp_nometrics_save;
 
 extern atomic_t tcp_memory_allocated;
 extern atomic_t tcp_sockets_allocated;
index dcf636b5926d22a777b038426e50f63d003b2bfc..db468d5fb33cd49a9e44952f89cced3c1cf36805 100644 (file)
@@ -593,6 +593,14 @@ ctl_table ipv4_table[] = {
                .proc_handler   = &proc_dointvec_jiffies,
                .strategy       = &sysctl_jiffies
        },
+       {
+               .ctl_name       = NET_TCP_NO_METRICS_SAVE,
+               .procname       = "tcp_no_metrics_save",
+               .data           = &sysctl_tcp_nometrics_save,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+       },
        {
                .ctl_name       = NET_TCP_WESTWOOD, 
                .procname       = "tcp_westwood",
@@ -601,6 +609,7 @@ ctl_table ipv4_table[] = {
                .mode           = 0644,
                .proc_handler   = &proc_dointvec,
        },
+
        { .ctl_name = 0 }
 };
 
index 1b551ac6e06a21755e50693e132f81a6482ff5c5..c0f55ad0e5739cc94db84c4a5ac2e1d2e611b4cd 100644 (file)
@@ -87,6 +87,7 @@ int sysctl_tcp_rfc1337;
 int sysctl_tcp_max_orphans = NR_FILE;
 int sysctl_tcp_frto;
 int sysctl_tcp_westwood;
+int sysctl_tcp_nometrics_save;
 
 #define FLAG_DATA              0x01 /* Incoming frame contained data.          */
 #define FLAG_WIN_UPDATE                0x02 /* Incoming ACK was a window update.       */
@@ -518,6 +519,9 @@ void tcp_update_metrics(struct sock *sk)
        struct tcp_opt *tp = tcp_sk(sk);
        struct dst_entry *dst = __sk_dst_get(sk);
 
+       if (sysctl_tcp_nometrics_save)
+               return;
+
        dst_confirm(dst);
 
        if (dst && (dst->flags&DST_HOST)) {