[NET]: Replace CONFIG_NET_DEBUG with sysctl.

Covert network warning messages from a compile time to runtime choice.
Removes kernel config option and replaces it with new /proc/sys/net/core/warnings.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Stephen Hemminger 2007-03-08 20:41:08 -08:00 committed by David S. Miller
parent ae40eb1ef3
commit a2a316fd06
6 changed files with 25 additions and 14 deletions

View file

@ -1421,6 +1421,15 @@ fewer messages that will be written. Message_burst controls when messages will
be dropped. The default settings limit warning messages to one every five be dropped. The default settings limit warning messages to one every five
seconds. seconds.
warnings
--------
This controls console messages from the networking stack that can occur because
of problems on the network like duplicate address or bad checksums. Normally,
this should be enabled, but if the problem persists the messages can be
disabled.
netdev_max_backlog netdev_max_backlog
------------------ ------------------

View file

@ -290,6 +290,7 @@ enum
NET_CORE_BUDGET=19, NET_CORE_BUDGET=19,
NET_CORE_AEVENT_ETIME=20, NET_CORE_AEVENT_ETIME=20,
NET_CORE_AEVENT_RSEQTH=21, NET_CORE_AEVENT_RSEQTH=21,
NET_CORE_WARNINGS=22,
}; };
/* /proc/sys/net/ethernet */ /* /proc/sys/net/ethernet */

View file

@ -1334,14 +1334,12 @@ extern int sock_get_timestampns(struct sock *, struct timespec __user *);
/* /*
* Enable debug/info messages * Enable debug/info messages
*/ */
extern int net_msg_warn;
#define NETDEBUG(fmt, args...) \
do { if (net_msg_warn) printk(fmt,##args); } while (0)
#ifdef CONFIG_NETDEBUG #define LIMIT_NETDEBUG(fmt, args...) \
#define NETDEBUG(fmt, args...) printk(fmt,##args) do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0)
#define LIMIT_NETDEBUG(fmt, args...) do { if (net_ratelimit()) printk(fmt,##args); } while(0)
#else
#define NETDEBUG(fmt, args...) do { } while (0)
#define LIMIT_NETDEBUG(fmt, args...) do { } while(0)
#endif
/* /*
* Macros for sleeping on a socket. Use them like this: * Macros for sleeping on a socket. Use them like this:

View file

@ -27,13 +27,6 @@ if NET
menu "Networking options" menu "Networking options"
config NETDEBUG
bool "Network packet debugging"
help
You can say Y here if you want to get additional messages useful in
debugging bad packets, but can overwhelm logs under denial of service
attacks.
source "net/packet/Kconfig" source "net/packet/Kconfig"
source "net/unix/Kconfig" source "net/unix/Kconfig"
source "net/xfrm/Kconfig" source "net/xfrm/Kconfig"

View file

@ -136,6 +136,14 @@ ctl_table core_table[] = {
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec .proc_handler = &proc_dointvec
}, },
{
.ctl_name = NET_CORE_WARNINGS,
.procname = "warnings",
.data = &net_msg_warn,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec
},
{ .ctl_name = 0 } { .ctl_name = 0 }
}; };

View file

@ -32,6 +32,8 @@
int net_msg_cost = 5*HZ; int net_msg_cost = 5*HZ;
int net_msg_burst = 10; int net_msg_burst = 10;
int net_msg_warn = 1;
EXPORT_SYMBOL(net_msg_warn);
/* /*
* All net warning printk()s should be guarded by this function. * All net warning printk()s should be guarded by this function.