forked from mirrors/linux
		
	[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:
		
							parent
							
								
									ae40eb1ef3
								
							
						
					
					
						commit
						a2a316fd06
					
				
					 6 changed files with 25 additions and 14 deletions
				
			
		| 
						 | 
					@ -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
 | 
				
			||||||
------------------
 | 
					------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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 }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue