]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - net/netrom/sysctl_net_netrom.c
Linux-2.6.12-rc2
[mirror_ubuntu-bionic-kernel.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
34 static struct ctl_table_header *nr_table_header;
35
36 static ctl_table nr_table[] = {
37 {
38 .ctl_name = NET_NETROM_DEFAULT_PATH_QUALITY,
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 .strategy = &sysctl_intvec,
45 .extra1 = &min_quality,
46 .extra2 = &max_quality
47 },
48 {
49 .ctl_name = NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER,
50 .procname = "obsolescence_count_initialiser",
51 .data = &sysctl_netrom_obsolescence_count_initialiser,
52 .maxlen = sizeof(int),
53 .mode = 0644,
54 .proc_handler = &proc_dointvec_minmax,
55 .strategy = &sysctl_intvec,
56 .extra1 = &min_obs,
57 .extra2 = &max_obs
58 },
59 {
60 .ctl_name = NET_NETROM_NETWORK_TTL_INITIALISER,
61 .procname = "network_ttl_initialiser",
62 .data = &sysctl_netrom_network_ttl_initialiser,
63 .maxlen = sizeof(int),
64 .mode = 0644,
65 .proc_handler = &proc_dointvec_minmax,
66 .strategy = &sysctl_intvec,
67 .extra1 = &min_ttl,
68 .extra2 = &max_ttl
69 },
70 {
71 .ctl_name = NET_NETROM_TRANSPORT_TIMEOUT,
72 .procname = "transport_timeout",
73 .data = &sysctl_netrom_transport_timeout,
74 .maxlen = sizeof(int),
75 .mode = 0644,
76 .proc_handler = &proc_dointvec_minmax,
77 .strategy = &sysctl_intvec,
78 .extra1 = &min_t1,
79 .extra2 = &max_t1
80 },
81 {
82 .ctl_name = NET_NETROM_TRANSPORT_MAXIMUM_TRIES,
83 .procname = "transport_maximum_tries",
84 .data = &sysctl_netrom_transport_maximum_tries,
85 .maxlen = sizeof(int),
86 .mode = 0644,
87 .proc_handler = &proc_dointvec_minmax,
88 .strategy = &sysctl_intvec,
89 .extra1 = &min_n2,
90 .extra2 = &max_n2
91 },
92 {
93 .ctl_name = NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY,
94 .procname = "transport_acknowledge_delay",
95 .data = &sysctl_netrom_transport_acknowledge_delay,
96 .maxlen = sizeof(int),
97 .mode = 0644,
98 .proc_handler = &proc_dointvec_minmax,
99 .strategy = &sysctl_intvec,
100 .extra1 = &min_t2,
101 .extra2 = &max_t2
102 },
103 {
104 .ctl_name = NET_NETROM_TRANSPORT_BUSY_DELAY,
105 .procname = "transport_busy_delay",
106 .data = &sysctl_netrom_transport_busy_delay,
107 .maxlen = sizeof(int),
108 .mode = 0644,
109 .proc_handler = &proc_dointvec_minmax,
110 .strategy = &sysctl_intvec,
111 .extra1 = &min_t4,
112 .extra2 = &max_t4
113 },
114 {
115 .ctl_name = NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE,
116 .procname = "transport_requested_window_size",
117 .data = &sysctl_netrom_transport_requested_window_size,
118 .maxlen = sizeof(int),
119 .mode = 0644,
120 .proc_handler = &proc_dointvec_minmax,
121 .strategy = &sysctl_intvec,
122 .extra1 = &min_window,
123 .extra2 = &max_window
124 },
125 {
126 .ctl_name = NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT,
127 .procname = "transport_no_activity_timeout",
128 .data = &sysctl_netrom_transport_no_activity_timeout,
129 .maxlen = sizeof(int),
130 .mode = 0644,
131 .proc_handler = &proc_dointvec_minmax,
132 .strategy = &sysctl_intvec,
133 .extra1 = &min_idle,
134 .extra2 = &max_idle
135 },
136 {
137 .ctl_name = NET_NETROM_ROUTING_CONTROL,
138 .procname = "routing_control",
139 .data = &sysctl_netrom_routing_control,
140 .maxlen = sizeof(int),
141 .mode = 0644,
142 .proc_handler = &proc_dointvec_minmax,
143 .strategy = &sysctl_intvec,
144 .extra1 = &min_route,
145 .extra2 = &max_route
146 },
147 {
148 .ctl_name = NET_NETROM_LINK_FAILS_COUNT,
149 .procname = "link_fails_count",
150 .data = &sysctl_netrom_link_fails_count,
151 .maxlen = sizeof(int),
152 .mode = 0644,
153 .proc_handler = &proc_dointvec_minmax,
154 .strategy = &sysctl_intvec,
155 .extra1 = &min_fails,
156 .extra2 = &max_fails
157 },
158 { .ctl_name = 0 }
159 };
160
161 static ctl_table nr_dir_table[] = {
162 {
163 .ctl_name = NET_NETROM,
164 .procname = "netrom",
165 .mode = 0555,
166 .child = nr_table
167 },
168 { .ctl_name = 0 }
169 };
170
171 static ctl_table nr_root_table[] = {
172 {
173 .ctl_name = CTL_NET,
174 .procname = "net",
175 .mode = 0555,
176 .child = nr_dir_table
177 },
178 { .ctl_name = 0 }
179 };
180
181 void __init nr_register_sysctl(void)
182 {
183 nr_table_header = register_sysctl_table(nr_root_table, 1);
184 }
185
186 void nr_unregister_sysctl(void)
187 {
188 unregister_sysctl_table(nr_table_header);
189 }