Merge /spare/repo/linux-2.6/
[linux-2.6] / net / core / sysctl_net_core.c
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 netdev_budget;
17 extern int weight_p;
18 extern int net_msg_cost;
19 extern int net_msg_burst;
20
21 extern __u32 sysctl_wmem_max;
22 extern __u32 sysctl_rmem_max;
23 extern __u32 sysctl_wmem_default;
24 extern __u32 sysctl_rmem_default;
25
26 extern int sysctl_core_destroy_delay;
27 extern int sysctl_optmem_max;
28 extern int sysctl_somaxconn;
29
30 #ifdef CONFIG_NET_DIVERT
31 extern char sysctl_divert_version[];
32 #endif /* CONFIG_NET_DIVERT */
33
34 ctl_table core_table[] = {
35 #ifdef CONFIG_NET
36         {
37                 .ctl_name       = NET_CORE_WMEM_MAX,
38                 .procname       = "wmem_max",
39                 .data           = &sysctl_wmem_max,
40                 .maxlen         = sizeof(int),
41                 .mode           = 0644,
42                 .proc_handler   = &proc_dointvec
43         },
44         {
45                 .ctl_name       = NET_CORE_RMEM_MAX,
46                 .procname       = "rmem_max",
47                 .data           = &sysctl_rmem_max,
48                 .maxlen         = sizeof(int),
49                 .mode           = 0644,
50                 .proc_handler   = &proc_dointvec
51         },
52         {
53                 .ctl_name       = NET_CORE_WMEM_DEFAULT,
54                 .procname       = "wmem_default",
55                 .data           = &sysctl_wmem_default,
56                 .maxlen         = sizeof(int),
57                 .mode           = 0644,
58                 .proc_handler   = &proc_dointvec
59         },
60         {
61                 .ctl_name       = NET_CORE_RMEM_DEFAULT,
62                 .procname       = "rmem_default",
63                 .data           = &sysctl_rmem_default,
64                 .maxlen         = sizeof(int),
65                 .mode           = 0644,
66                 .proc_handler   = &proc_dointvec
67         },
68         {
69                 .ctl_name       = NET_CORE_DEV_WEIGHT,
70                 .procname       = "dev_weight",
71                 .data           = &weight_p,
72                 .maxlen         = sizeof(int),
73                 .mode           = 0644,
74                 .proc_handler   = &proc_dointvec
75         },
76         {
77                 .ctl_name       = NET_CORE_MAX_BACKLOG,
78                 .procname       = "netdev_max_backlog",
79                 .data           = &netdev_max_backlog,
80                 .maxlen         = sizeof(int),
81                 .mode           = 0644,
82                 .proc_handler   = &proc_dointvec
83         },
84         {
85                 .ctl_name       = NET_CORE_MSG_COST,
86                 .procname       = "message_cost",
87                 .data           = &net_msg_cost,
88                 .maxlen         = sizeof(int),
89                 .mode           = 0644,
90                 .proc_handler   = &proc_dointvec_jiffies,
91                 .strategy       = &sysctl_jiffies,
92         },
93         {
94                 .ctl_name       = NET_CORE_MSG_BURST,
95                 .procname       = "message_burst",
96                 .data           = &net_msg_burst,
97                 .maxlen         = sizeof(int),
98                 .mode           = 0644,
99                 .proc_handler   = &proc_dointvec,
100         },
101         {
102                 .ctl_name       = NET_CORE_OPTMEM_MAX,
103                 .procname       = "optmem_max",
104                 .data           = &sysctl_optmem_max,
105                 .maxlen         = sizeof(int),
106                 .mode           = 0644,
107                 .proc_handler   = &proc_dointvec
108         },
109 #ifdef CONFIG_NET_DIVERT
110         {
111                 .ctl_name       = NET_CORE_DIVERT_VERSION,
112                 .procname       = "divert_version",
113                 .data           = (void *)sysctl_divert_version,
114                 .maxlen         = 32,
115                 .mode           = 0444,
116                 .proc_handler   = &proc_dostring
117         },
118 #endif /* CONFIG_NET_DIVERT */
119 #endif /* CONFIG_NET */
120         {
121                 .ctl_name       = NET_CORE_SOMAXCONN,
122                 .procname       = "somaxconn",
123                 .data           = &sysctl_somaxconn,
124                 .maxlen         = sizeof(int),
125                 .mode           = 0644,
126                 .proc_handler   = &proc_dointvec
127         },
128         {
129                 .ctl_name       = NET_CORE_BUDGET,
130                 .procname       = "netdev_budget",
131                 .data           = &netdev_budget,
132                 .maxlen         = sizeof(int),
133                 .mode           = 0644,
134                 .proc_handler   = &proc_dointvec
135         },
136         { .ctl_name = 0 }
137 };
138
139 #endif