xref: /linux/net/core/sysctl_net_core.c (revision 4bedea94545165364618d403d03b61d797acba0b)
1 /* -*- linux-c -*-
2  * sysctl_net_core.c: sysctl interface to net core subsystem.
3  *
4  * Begun April 1, 1996, Mike Shaver.
5  * Added /proc/sys/net/core directory entry (empty =) ). [MS]
6  */
7 
8 #include <linux/mm.h>
9 #include <linux/sysctl.h>
10 #include <linux/config.h>
11 #include <linux/module.h>
12 
13 #ifdef CONFIG_SYSCTL
14 
15 extern int netdev_max_backlog;
16 extern int weight_p;
17 extern int no_cong_thresh;
18 extern int no_cong;
19 extern int lo_cong;
20 extern int mod_cong;
21 extern int netdev_fastroute;
22 extern int net_msg_cost;
23 extern int net_msg_burst;
24 
25 extern __u32 sysctl_wmem_max;
26 extern __u32 sysctl_rmem_max;
27 extern __u32 sysctl_wmem_default;
28 extern __u32 sysctl_rmem_default;
29 
30 extern int sysctl_core_destroy_delay;
31 extern int sysctl_optmem_max;
32 extern int sysctl_somaxconn;
33 
34 #ifdef CONFIG_NET_DIVERT
35 extern char sysctl_divert_version[];
36 #endif /* CONFIG_NET_DIVERT */
37 
38 ctl_table core_table[] = {
39 #ifdef CONFIG_NET
40 	{
41 		.ctl_name	= NET_CORE_WMEM_MAX,
42 		.procname	= "wmem_max",
43 		.data		= &sysctl_wmem_max,
44 		.maxlen		= sizeof(int),
45 		.mode		= 0644,
46 		.proc_handler	= &proc_dointvec
47 	},
48 	{
49 		.ctl_name	= NET_CORE_RMEM_MAX,
50 		.procname	= "rmem_max",
51 		.data		= &sysctl_rmem_max,
52 		.maxlen		= sizeof(int),
53 		.mode		= 0644,
54 		.proc_handler	= &proc_dointvec
55 	},
56 	{
57 		.ctl_name	= NET_CORE_WMEM_DEFAULT,
58 		.procname	= "wmem_default",
59 		.data		= &sysctl_wmem_default,
60 		.maxlen		= sizeof(int),
61 		.mode		= 0644,
62 		.proc_handler	= &proc_dointvec
63 	},
64 	{
65 		.ctl_name	= NET_CORE_RMEM_DEFAULT,
66 		.procname	= "rmem_default",
67 		.data		= &sysctl_rmem_default,
68 		.maxlen		= sizeof(int),
69 		.mode		= 0644,
70 		.proc_handler	= &proc_dointvec
71 	},
72 	{
73 		.ctl_name	= NET_CORE_DEV_WEIGHT,
74 		.procname	= "dev_weight",
75 		.data		= &weight_p,
76 		.maxlen		= sizeof(int),
77 		.mode		= 0644,
78 		.proc_handler	= &proc_dointvec
79 	},
80 	{
81 		.ctl_name	= NET_CORE_MAX_BACKLOG,
82 		.procname	= "netdev_max_backlog",
83 		.data		= &netdev_max_backlog,
84 		.maxlen		= sizeof(int),
85 		.mode		= 0644,
86 		.proc_handler	= &proc_dointvec
87 	},
88 	{
89 		.ctl_name	= NET_CORE_NO_CONG_THRESH,
90 		.procname	= "no_cong_thresh",
91 		.data		= &no_cong_thresh,
92 		.maxlen		= sizeof(int),
93 		.mode		= 0644,
94 		.proc_handler	= &proc_dointvec
95 	},
96 	{
97 		.ctl_name	= NET_CORE_NO_CONG,
98 		.procname	= "no_cong",
99 		.data		= &no_cong,
100 		.maxlen		= sizeof(int),
101 		.mode		= 0644,
102 		.proc_handler	= &proc_dointvec
103 	},
104 	{
105 		.ctl_name	= NET_CORE_LO_CONG,
106 		.procname	= "lo_cong",
107 		.data		= &lo_cong,
108 		.maxlen		= sizeof(int),
109 		.mode		= 0644,
110 		.proc_handler	= &proc_dointvec
111 	},
112 	{
113 		.ctl_name	= NET_CORE_MOD_CONG,
114 		.procname	= "mod_cong",
115 		.data		= &mod_cong,
116 		.maxlen		= sizeof(int),
117 		.mode		= 0644,
118 		.proc_handler	= &proc_dointvec
119 	},
120 	{
121 		.ctl_name	= NET_CORE_MSG_COST,
122 		.procname	= "message_cost",
123 		.data		= &net_msg_cost,
124 		.maxlen		= sizeof(int),
125 		.mode		= 0644,
126 		.proc_handler	= &proc_dointvec_jiffies,
127 		.strategy	= &sysctl_jiffies,
128 	},
129 	{
130 		.ctl_name	= NET_CORE_MSG_BURST,
131 		.procname	= "message_burst",
132 		.data		= &net_msg_burst,
133 		.maxlen		= sizeof(int),
134 		.mode		= 0644,
135 		.proc_handler	= &proc_dointvec,
136 	},
137 	{
138 		.ctl_name	= NET_CORE_OPTMEM_MAX,
139 		.procname	= "optmem_max",
140 		.data		= &sysctl_optmem_max,
141 		.maxlen		= sizeof(int),
142 		.mode		= 0644,
143 		.proc_handler	= &proc_dointvec
144 	},
145 #ifdef CONFIG_NET_DIVERT
146 	{
147 		.ctl_name	= NET_CORE_DIVERT_VERSION,
148 		.procname	= "divert_version",
149 		.data		= (void *)sysctl_divert_version,
150 		.maxlen		= 32,
151 		.mode		= 0444,
152 		.proc_handler	= &proc_dostring
153 	},
154 #endif /* CONFIG_NET_DIVERT */
155 #endif /* CONFIG_NET */
156 	{
157 		.ctl_name	= NET_CORE_SOMAXCONN,
158 		.procname	= "somaxconn",
159 		.data		= &sysctl_somaxconn,
160 		.maxlen		= sizeof(int),
161 		.mode		= 0644,
162 		.proc_handler	= &proc_dointvec
163 	},
164 	{ .ctl_name = 0 }
165 };
166 
167 #endif
168