Subject: [PATCH 1/3] icmp: fix units for ratelimit

From: Stephen Hemminger <[email-masked]>
Date: Tue, 1 Jul 2008 15:38:20 -0700

Convert the sysctl values for icmp ratelimit to use milliseconds instead
of jiffies which is based on kernel configured HZ.
Internal kernel jiffies are not a proper unit for any userspace API.

Signed-off-by: Stephen Hemminger <[email-masked]>

---
Patch against net-next-2.6

--- a/Documentation/networking/ip-sysctl.txt	2008-07-01 14:11:39.000000000 -0700
+++ b/Documentation/networking/ip-sysctl.txt	2008-07-01 14:14:15.000000000 -0700
@@ -548,8 +548,9 @@ icmp_echo_ignore_broadcasts - BOOLEAN
 icmp_ratelimit - INTEGER
 	Limit the maximal rates for sending ICMP packets whose type matches
 	icmp_ratemask (see below) to specific targets.
-	0 to disable any limiting, otherwise the maximal rate in jiffies(1)
-	Default: 100
+	0 to disable any limiting,
+	otherwise the minimal space between responses in milliseconds.
+	Default: 1000
 
 icmp_ratemask - INTEGER
 	Mask made of ICMP types for which rates are being limited.
@@ -1027,8 +1028,9 @@ max_addresses - INTEGER
 icmp/*:
 ratelimit - INTEGER
 	Limit the maximal rates for sending ICMPv6 packets.
-	0 to disable any limiting, otherwise the maximal rate in jiffies(1)
-	Default: 100
+	0 to disable any limiting,
+	otherwise the minimal space between responses in milliseconds.
+	Default: 1000

 IPv6 Update by:
--- a/net/ipv4/sysctl_net_ipv4.c	2008-07-01 14:14:34.000000000 -0700
+++ b/net/ipv4/sysctl_net_ipv4.c	2008-07-01 14:17:10.000000000 -0700
@@ -793,7 +793,8 @@ static struct ctl_table ipv4_net_table[]
 		.data		= &init_net.ipv4.sysctl_icmp_ratelimit,
 		.maxlen		= sizeof(int),
 		.mode		= 0644,
-		.proc_handler	= &proc_dointvec
+		.proc_handler	= &proc_dointvec_ms_jiffies,
+		.strategy	= &sysctl_ms_jiffies
 	},
 	{
 		.ctl_name	= NET_IPV4_ICMP_RATEMASK,
--- a/net/ipv6/icmp.c	2008-07-01 14:15:37.000000000 -0700
+++ b/net/ipv6/icmp.c	2008-07-01 14:17:06.000000000 -0700
@@ -954,7 +954,8 @@ ctl_table ipv6_icmp_table_template[] = {
 		.data		= &init_net.ipv6.sysctl.icmpv6_time,
 		.maxlen		= sizeof(int),
 		.mode		= 0644,
-		.proc_handler	= &proc_dointvec
+		.proc_handler	= &proc_dointvec_ms_jiffies,
+		.strategy	= &sysctl_ms_jiffies
 	},
 	{ .ctl_name = 0 },
 };