[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 | ||||
| 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 | ||||
| ------------------ | ||||
| 
 | ||||
|  |  | |||
|  | @ -290,6 +290,7 @@ enum | |||
| 	NET_CORE_BUDGET=19, | ||||
| 	NET_CORE_AEVENT_ETIME=20, | ||||
| 	NET_CORE_AEVENT_RSEQTH=21, | ||||
| 	NET_CORE_WARNINGS=22, | ||||
| }; | ||||
| 
 | ||||
| /* /proc/sys/net/ethernet */ | ||||
|  |  | |||
|  | @ -1334,14 +1334,12 @@ extern int sock_get_timestampns(struct sock *, struct timespec __user *); | |||
| /* 
 | ||||
|  *	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 NETDEBUG(fmt, args...)	printk(fmt,##args) | ||||
| #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 | ||||
| #define LIMIT_NETDEBUG(fmt, args...) \ | ||||
| 	do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0) | ||||
| 
 | ||||
| /*
 | ||||
|  * Macros for sleeping on a socket. Use them like this: | ||||
|  |  | |||
|  | @ -27,13 +27,6 @@ if NET | |||
| 
 | ||||
| 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/unix/Kconfig" | ||||
| source "net/xfrm/Kconfig" | ||||
|  |  | |||
|  | @ -136,6 +136,14 @@ ctl_table core_table[] = { | |||
| 		.mode		= 0644, | ||||
| 		.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 } | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -32,6 +32,8 @@ | |||
| 
 | ||||
| int net_msg_cost = 5*HZ; | ||||
| 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. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Stephen Hemminger
				Stephen Hemminger