Merge branch 'bugzilla-14782' into release
[sfrench/cifs-2.6.git] / net / netrom / sysctl_net_netrom.c
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 2 of the License, or
5  * (at your option) any later version.
6  *
7  * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com)
8  */
9 #include <linux/mm.h>
10 #include <linux/sysctl.h>
11 #include <linux/init.h>
12 #include <net/ax25.h>
13 #include <net/netrom.h>
14
15 /*
16  *      Values taken from NET/ROM documentation.
17  */
18 static int min_quality[] = {0}, max_quality[] = {255};
19 static int min_obs[]     = {0}, max_obs[]     = {255};
20 static int min_ttl[]     = {0}, max_ttl[]     = {255};
21 static int min_t1[]      = {5 * HZ};
22 static int max_t1[]      = {600 * HZ};
23 static int min_n2[]      = {2}, max_n2[]      = {127};
24 static int min_t2[]      = {1 * HZ};
25 static int max_t2[]      = {60 * HZ};
26 static int min_t4[]      = {1 * HZ};
27 static int max_t4[]      = {1000 * HZ};
28 static int min_window[]  = {1}, max_window[]  = {127};
29 static int min_idle[]    = {0 * HZ};
30 static int max_idle[]    = {65535 * HZ};
31 static int min_route[]   = {0}, max_route[]   = {1};
32 static int min_fails[]   = {1}, max_fails[]   = {10};
33 static int min_reset[]   = {0}, max_reset[]   = {1};
34
35 static struct ctl_table_header *nr_table_header;
36
37 static ctl_table nr_table[] = {
38         {
39                 .procname       = "default_path_quality",
40                 .data           = &sysctl_netrom_default_path_quality,
41                 .maxlen         = sizeof(int),
42                 .mode           = 0644,
43                 .proc_handler   = proc_dointvec_minmax,
44                 .extra1         = &min_quality,
45                 .extra2         = &max_quality
46         },
47         {
48                 .procname       = "obsolescence_count_initialiser",
49                 .data           = &sysctl_netrom_obsolescence_count_initialiser,
50                 .maxlen         = sizeof(int),
51                 .mode           = 0644,
52                 .proc_handler   = proc_dointvec_minmax,
53                 .extra1         = &min_obs,
54                 .extra2         = &max_obs
55         },
56         {
57                 .procname       = "network_ttl_initialiser",
58                 .data           = &sysctl_netrom_network_ttl_initialiser,
59                 .maxlen         = sizeof(int),
60                 .mode           = 0644,
61                 .proc_handler   = proc_dointvec_minmax,
62                 .extra1         = &min_ttl,
63                 .extra2         = &max_ttl
64         },
65         {
66                 .procname       = "transport_timeout",
67                 .data           = &sysctl_netrom_transport_timeout,
68                 .maxlen         = sizeof(int),
69                 .mode           = 0644,
70                 .proc_handler   = proc_dointvec_minmax,
71                 .extra1         = &min_t1,
72                 .extra2         = &max_t1
73         },
74         {
75                 .procname       = "transport_maximum_tries",
76                 .data           = &sysctl_netrom_transport_maximum_tries,
77                 .maxlen         = sizeof(int),
78                 .mode           = 0644,
79                 .proc_handler   = proc_dointvec_minmax,
80                 .extra1         = &min_n2,
81                 .extra2         = &max_n2
82         },
83         {
84                 .procname       = "transport_acknowledge_delay",
85                 .data           = &sysctl_netrom_transport_acknowledge_delay,
86                 .maxlen         = sizeof(int),
87                 .mode           = 0644,
88                 .proc_handler   = proc_dointvec_minmax,
89                 .extra1         = &min_t2,
90                 .extra2         = &max_t2
91         },
92         {
93                 .procname       = "transport_busy_delay",
94                 .data           = &sysctl_netrom_transport_busy_delay,
95                 .maxlen         = sizeof(int),
96                 .mode           = 0644,
97                 .proc_handler   = proc_dointvec_minmax,
98                 .extra1         = &min_t4,
99                 .extra2         = &max_t4
100         },
101         {
102                 .procname       = "transport_requested_window_size",
103                 .data           = &sysctl_netrom_transport_requested_window_size,
104                 .maxlen         = sizeof(int),
105                 .mode           = 0644,
106                 .proc_handler   = proc_dointvec_minmax,
107                 .extra1         = &min_window,
108                 .extra2         = &max_window
109         },
110         {
111                 .procname       = "transport_no_activity_timeout",
112                 .data           = &sysctl_netrom_transport_no_activity_timeout,
113                 .maxlen         = sizeof(int),
114                 .mode           = 0644,
115                 .proc_handler   = proc_dointvec_minmax,
116                 .extra1         = &min_idle,
117                 .extra2         = &max_idle
118         },
119         {
120                 .procname       = "routing_control",
121                 .data           = &sysctl_netrom_routing_control,
122                 .maxlen         = sizeof(int),
123                 .mode           = 0644,
124                 .proc_handler   = proc_dointvec_minmax,
125                 .extra1         = &min_route,
126                 .extra2         = &max_route
127         },
128         {
129                 .procname       = "link_fails_count",
130                 .data           = &sysctl_netrom_link_fails_count,
131                 .maxlen         = sizeof(int),
132                 .mode           = 0644,
133                 .proc_handler   = proc_dointvec_minmax,
134                 .extra1         = &min_fails,
135                 .extra2         = &max_fails
136         },
137         {
138                 .procname       = "reset",
139                 .data           = &sysctl_netrom_reset_circuit,
140                 .maxlen         = sizeof(int),
141                 .mode           = 0644,
142                 .proc_handler   = proc_dointvec_minmax,
143                 .extra1         = &min_reset,
144                 .extra2         = &max_reset
145         },
146         { }
147 };
148
149 static struct ctl_path nr_path[] = {
150         { .procname = "net", },
151         { .procname = "netrom", },
152         { }
153 };
154
155 void __init nr_register_sysctl(void)
156 {
157         nr_table_header = register_sysctl_paths(nr_path, nr_table);
158 }
159
160 void nr_unregister_sysctl(void)
161 {
162         unregister_sysctl_table(nr_table_header);
163 }