sysctl.c (46557bef3f3834ac33031c7be27d39d90d507442) | sysctl.c (6d4561110a3e9fa742aeec6717248a491dfb1878) |
---|---|
1/* SCTP kernel implementation 2 * (C) Copyright IBM Corp. 2002, 2004 3 * Copyright (c) 2002 Intel Corp. 4 * 5 * This file is part of the SCTP kernel implementation 6 * 7 * Sysctl related interfaces for SCTP. 8 * --- 45 unchanged lines hidden (view full) --- 54static int addr_scope_max = 3; /* check sctp_scope_policy_t in include/net/sctp/constants.h for max entries */ 55 56extern int sysctl_sctp_mem[3]; 57extern int sysctl_sctp_rmem[3]; 58extern int sysctl_sctp_wmem[3]; 59 60static ctl_table sctp_table[] = { 61 { | 1/* SCTP kernel implementation 2 * (C) Copyright IBM Corp. 2002, 2004 3 * Copyright (c) 2002 Intel Corp. 4 * 5 * This file is part of the SCTP kernel implementation 6 * 7 * Sysctl related interfaces for SCTP. 8 * --- 45 unchanged lines hidden (view full) --- 54static int addr_scope_max = 3; /* check sctp_scope_policy_t in include/net/sctp/constants.h for max entries */ 55 56extern int sysctl_sctp_mem[3]; 57extern int sysctl_sctp_rmem[3]; 58extern int sysctl_sctp_wmem[3]; 59 60static ctl_table sctp_table[] = { 61 { |
62 .ctl_name = NET_SCTP_RTO_INITIAL, | |
63 .procname = "rto_initial", 64 .data = &sctp_rto_initial, 65 .maxlen = sizeof(unsigned int), 66 .mode = 0644, 67 .proc_handler = proc_dointvec_minmax, | 62 .procname = "rto_initial", 63 .data = &sctp_rto_initial, 64 .maxlen = sizeof(unsigned int), 65 .mode = 0644, 66 .proc_handler = proc_dointvec_minmax, |
68 .strategy = sysctl_intvec, | |
69 .extra1 = &one, 70 .extra2 = &timer_max 71 }, 72 { | 67 .extra1 = &one, 68 .extra2 = &timer_max 69 }, 70 { |
73 .ctl_name = NET_SCTP_RTO_MIN, | |
74 .procname = "rto_min", 75 .data = &sctp_rto_min, 76 .maxlen = sizeof(unsigned int), 77 .mode = 0644, 78 .proc_handler = proc_dointvec_minmax, | 71 .procname = "rto_min", 72 .data = &sctp_rto_min, 73 .maxlen = sizeof(unsigned int), 74 .mode = 0644, 75 .proc_handler = proc_dointvec_minmax, |
79 .strategy = sysctl_intvec, | |
80 .extra1 = &one, 81 .extra2 = &timer_max 82 }, 83 { | 76 .extra1 = &one, 77 .extra2 = &timer_max 78 }, 79 { |
84 .ctl_name = NET_SCTP_RTO_MAX, | |
85 .procname = "rto_max", 86 .data = &sctp_rto_max, 87 .maxlen = sizeof(unsigned int), 88 .mode = 0644, 89 .proc_handler = proc_dointvec_minmax, | 80 .procname = "rto_max", 81 .data = &sctp_rto_max, 82 .maxlen = sizeof(unsigned int), 83 .mode = 0644, 84 .proc_handler = proc_dointvec_minmax, |
90 .strategy = sysctl_intvec, | |
91 .extra1 = &one, 92 .extra2 = &timer_max 93 }, 94 { | 85 .extra1 = &one, 86 .extra2 = &timer_max 87 }, 88 { |
95 .ctl_name = NET_SCTP_VALID_COOKIE_LIFE, | |
96 .procname = "valid_cookie_life", 97 .data = &sctp_valid_cookie_life, 98 .maxlen = sizeof(unsigned int), 99 .mode = 0644, 100 .proc_handler = proc_dointvec_minmax, | 89 .procname = "valid_cookie_life", 90 .data = &sctp_valid_cookie_life, 91 .maxlen = sizeof(unsigned int), 92 .mode = 0644, 93 .proc_handler = proc_dointvec_minmax, |
101 .strategy = sysctl_intvec, | |
102 .extra1 = &one, 103 .extra2 = &timer_max 104 }, 105 { | 94 .extra1 = &one, 95 .extra2 = &timer_max 96 }, 97 { |
106 .ctl_name = NET_SCTP_MAX_BURST, | |
107 .procname = "max_burst", 108 .data = &sctp_max_burst, 109 .maxlen = sizeof(int), 110 .mode = 0644, 111 .proc_handler = proc_dointvec_minmax, | 98 .procname = "max_burst", 99 .data = &sctp_max_burst, 100 .maxlen = sizeof(int), 101 .mode = 0644, 102 .proc_handler = proc_dointvec_minmax, |
112 .strategy = sysctl_intvec, | |
113 .extra1 = &zero, 114 .extra2 = &int_max 115 }, 116 { | 103 .extra1 = &zero, 104 .extra2 = &int_max 105 }, 106 { |
117 .ctl_name = NET_SCTP_ASSOCIATION_MAX_RETRANS, | |
118 .procname = "association_max_retrans", 119 .data = &sctp_max_retrans_association, 120 .maxlen = sizeof(int), 121 .mode = 0644, 122 .proc_handler = proc_dointvec_minmax, | 107 .procname = "association_max_retrans", 108 .data = &sctp_max_retrans_association, 109 .maxlen = sizeof(int), 110 .mode = 0644, 111 .proc_handler = proc_dointvec_minmax, |
123 .strategy = sysctl_intvec, | |
124 .extra1 = &one, 125 .extra2 = &int_max 126 }, 127 { | 112 .extra1 = &one, 113 .extra2 = &int_max 114 }, 115 { |
128 .ctl_name = NET_SCTP_SNDBUF_POLICY, | |
129 .procname = "sndbuf_policy", 130 .data = &sctp_sndbuf_policy, 131 .maxlen = sizeof(int), 132 .mode = 0644, 133 .proc_handler = proc_dointvec, | 116 .procname = "sndbuf_policy", 117 .data = &sctp_sndbuf_policy, 118 .maxlen = sizeof(int), 119 .mode = 0644, 120 .proc_handler = proc_dointvec, |
134 .strategy = sysctl_intvec | |
135 }, 136 { | 121 }, 122 { |
137 .ctl_name = NET_SCTP_RCVBUF_POLICY, | |
138 .procname = "rcvbuf_policy", 139 .data = &sctp_rcvbuf_policy, 140 .maxlen = sizeof(int), 141 .mode = 0644, 142 .proc_handler = proc_dointvec, | 123 .procname = "rcvbuf_policy", 124 .data = &sctp_rcvbuf_policy, 125 .maxlen = sizeof(int), 126 .mode = 0644, 127 .proc_handler = proc_dointvec, |
143 .strategy = sysctl_intvec | |
144 }, 145 { | 128 }, 129 { |
146 .ctl_name = NET_SCTP_PATH_MAX_RETRANS, | |
147 .procname = "path_max_retrans", 148 .data = &sctp_max_retrans_path, 149 .maxlen = sizeof(int), 150 .mode = 0644, 151 .proc_handler = proc_dointvec_minmax, | 130 .procname = "path_max_retrans", 131 .data = &sctp_max_retrans_path, 132 .maxlen = sizeof(int), 133 .mode = 0644, 134 .proc_handler = proc_dointvec_minmax, |
152 .strategy = sysctl_intvec, | |
153 .extra1 = &one, 154 .extra2 = &int_max 155 }, 156 { | 135 .extra1 = &one, 136 .extra2 = &int_max 137 }, 138 { |
157 .ctl_name = NET_SCTP_MAX_INIT_RETRANSMITS, | |
158 .procname = "max_init_retransmits", 159 .data = &sctp_max_retrans_init, 160 .maxlen = sizeof(int), 161 .mode = 0644, 162 .proc_handler = proc_dointvec_minmax, | 139 .procname = "max_init_retransmits", 140 .data = &sctp_max_retrans_init, 141 .maxlen = sizeof(int), 142 .mode = 0644, 143 .proc_handler = proc_dointvec_minmax, |
163 .strategy = sysctl_intvec, | |
164 .extra1 = &one, 165 .extra2 = &int_max 166 }, 167 { | 144 .extra1 = &one, 145 .extra2 = &int_max 146 }, 147 { |
168 .ctl_name = NET_SCTP_HB_INTERVAL, | |
169 .procname = "hb_interval", 170 .data = &sctp_hb_interval, 171 .maxlen = sizeof(unsigned int), 172 .mode = 0644, 173 .proc_handler = proc_dointvec_minmax, | 148 .procname = "hb_interval", 149 .data = &sctp_hb_interval, 150 .maxlen = sizeof(unsigned int), 151 .mode = 0644, 152 .proc_handler = proc_dointvec_minmax, |
174 .strategy = sysctl_intvec, | |
175 .extra1 = &one, 176 .extra2 = &timer_max 177 }, 178 { | 153 .extra1 = &one, 154 .extra2 = &timer_max 155 }, 156 { |
179 .ctl_name = NET_SCTP_PRESERVE_ENABLE, | |
180 .procname = "cookie_preserve_enable", 181 .data = &sctp_cookie_preserve_enable, 182 .maxlen = sizeof(int), 183 .mode = 0644, 184 .proc_handler = proc_dointvec, | 157 .procname = "cookie_preserve_enable", 158 .data = &sctp_cookie_preserve_enable, 159 .maxlen = sizeof(int), 160 .mode = 0644, 161 .proc_handler = proc_dointvec, |
185 .strategy = sysctl_intvec | |
186 }, 187 { | 162 }, 163 { |
188 .ctl_name = NET_SCTP_RTO_ALPHA, | |
189 .procname = "rto_alpha_exp_divisor", 190 .data = &sctp_rto_alpha, 191 .maxlen = sizeof(int), 192 .mode = 0444, 193 .proc_handler = proc_dointvec, | 164 .procname = "rto_alpha_exp_divisor", 165 .data = &sctp_rto_alpha, 166 .maxlen = sizeof(int), 167 .mode = 0444, 168 .proc_handler = proc_dointvec, |
194 .strategy = sysctl_intvec | |
195 }, 196 { | 169 }, 170 { |
197 .ctl_name = NET_SCTP_RTO_BETA, | |
198 .procname = "rto_beta_exp_divisor", 199 .data = &sctp_rto_beta, 200 .maxlen = sizeof(int), 201 .mode = 0444, 202 .proc_handler = proc_dointvec, | 171 .procname = "rto_beta_exp_divisor", 172 .data = &sctp_rto_beta, 173 .maxlen = sizeof(int), 174 .mode = 0444, 175 .proc_handler = proc_dointvec, |
203 .strategy = sysctl_intvec | |
204 }, 205 { | 176 }, 177 { |
206 .ctl_name = NET_SCTP_ADDIP_ENABLE, | |
207 .procname = "addip_enable", 208 .data = &sctp_addip_enable, 209 .maxlen = sizeof(int), 210 .mode = 0644, 211 .proc_handler = proc_dointvec, | 178 .procname = "addip_enable", 179 .data = &sctp_addip_enable, 180 .maxlen = sizeof(int), 181 .mode = 0644, 182 .proc_handler = proc_dointvec, |
212 .strategy = sysctl_intvec | |
213 }, 214 { | 183 }, 184 { |
215 .ctl_name = NET_SCTP_PRSCTP_ENABLE, | |
216 .procname = "prsctp_enable", 217 .data = &sctp_prsctp_enable, 218 .maxlen = sizeof(int), 219 .mode = 0644, 220 .proc_handler = proc_dointvec, | 185 .procname = "prsctp_enable", 186 .data = &sctp_prsctp_enable, 187 .maxlen = sizeof(int), 188 .mode = 0644, 189 .proc_handler = proc_dointvec, |
221 .strategy = sysctl_intvec | |
222 }, 223 { | 190 }, 191 { |
224 .ctl_name = NET_SCTP_SACK_TIMEOUT, | |
225 .procname = "sack_timeout", 226 .data = &sctp_sack_timeout, 227 .maxlen = sizeof(int), 228 .mode = 0644, 229 .proc_handler = proc_dointvec_minmax, | 192 .procname = "sack_timeout", 193 .data = &sctp_sack_timeout, 194 .maxlen = sizeof(int), 195 .mode = 0644, 196 .proc_handler = proc_dointvec_minmax, |
230 .strategy = sysctl_intvec, | |
231 .extra1 = &sack_timer_min, 232 .extra2 = &sack_timer_max, 233 }, 234 { | 197 .extra1 = &sack_timer_min, 198 .extra2 = &sack_timer_max, 199 }, 200 { |
235 .ctl_name = CTL_UNNUMBERED, | |
236 .procname = "sctp_mem", 237 .data = &sysctl_sctp_mem, 238 .maxlen = sizeof(sysctl_sctp_mem), 239 .mode = 0644, 240 .proc_handler = proc_dointvec, 241 }, 242 { | 201 .procname = "sctp_mem", 202 .data = &sysctl_sctp_mem, 203 .maxlen = sizeof(sysctl_sctp_mem), 204 .mode = 0644, 205 .proc_handler = proc_dointvec, 206 }, 207 { |
243 .ctl_name = CTL_UNNUMBERED, | |
244 .procname = "sctp_rmem", 245 .data = &sysctl_sctp_rmem, 246 .maxlen = sizeof(sysctl_sctp_rmem), 247 .mode = 0644, 248 .proc_handler = proc_dointvec, 249 }, 250 { | 208 .procname = "sctp_rmem", 209 .data = &sysctl_sctp_rmem, 210 .maxlen = sizeof(sysctl_sctp_rmem), 211 .mode = 0644, 212 .proc_handler = proc_dointvec, 213 }, 214 { |
251 .ctl_name = CTL_UNNUMBERED, | |
252 .procname = "sctp_wmem", 253 .data = &sysctl_sctp_wmem, 254 .maxlen = sizeof(sysctl_sctp_wmem), 255 .mode = 0644, 256 .proc_handler = proc_dointvec, 257 }, 258 { | 215 .procname = "sctp_wmem", 216 .data = &sysctl_sctp_wmem, 217 .maxlen = sizeof(sysctl_sctp_wmem), 218 .mode = 0644, 219 .proc_handler = proc_dointvec, 220 }, 221 { |
259 .ctl_name = CTL_UNNUMBERED, | |
260 .procname = "auth_enable", 261 .data = &sctp_auth_enable, 262 .maxlen = sizeof(int), 263 .mode = 0644, 264 .proc_handler = proc_dointvec, | 222 .procname = "auth_enable", 223 .data = &sctp_auth_enable, 224 .maxlen = sizeof(int), 225 .mode = 0644, 226 .proc_handler = proc_dointvec, |
265 .strategy = sysctl_intvec | |
266 }, 267 { | 227 }, 228 { |
268 .ctl_name = CTL_UNNUMBERED, | |
269 .procname = "addip_noauth_enable", 270 .data = &sctp_addip_noauth, 271 .maxlen = sizeof(int), 272 .mode = 0644, 273 .proc_handler = proc_dointvec, | 229 .procname = "addip_noauth_enable", 230 .data = &sctp_addip_noauth, 231 .maxlen = sizeof(int), 232 .mode = 0644, 233 .proc_handler = proc_dointvec, |
274 .strategy = sysctl_intvec | |
275 }, 276 { | 234 }, 235 { |
277 .ctl_name = CTL_UNNUMBERED, | |
278 .procname = "addr_scope_policy", 279 .data = &sctp_scope_policy, 280 .maxlen = sizeof(int), 281 .mode = 0644, | 236 .procname = "addr_scope_policy", 237 .data = &sctp_scope_policy, 238 .maxlen = sizeof(int), 239 .mode = 0644, |
282 .proc_handler = &proc_dointvec_minmax, 283 .strategy = &sysctl_intvec, | 240 .proc_handler = proc_dointvec_minmax, |
284 .extra1 = &zero, 285 .extra2 = &addr_scope_max, 286 }, | 241 .extra1 = &zero, 242 .extra2 = &addr_scope_max, 243 }, |
287 { .ctl_name = 0 } | 244 { } |
288}; 289 290static struct ctl_path sctp_path[] = { | 245}; 246 247static struct ctl_path sctp_path[] = { |
291 { .procname = "net", .ctl_name = CTL_NET, }, 292 { .procname = "sctp", .ctl_name = NET_SCTP, }, | 248 { .procname = "net", }, 249 { .procname = "sctp", }, |
293 { } 294}; 295 296static struct ctl_table_header * sctp_sysctl_header; 297 298/* Sysctl registration. */ 299void sctp_sysctl_register(void) 300{ 301 sctp_sysctl_header = register_sysctl_paths(sctp_path, sctp_table); 302} 303 304/* Sysctl deregistration. */ 305void sctp_sysctl_unregister(void) 306{ 307 unregister_sysctl_table(sctp_sysctl_header); 308} | 250 { } 251}; 252 253static struct ctl_table_header * sctp_sysctl_header; 254 255/* Sysctl registration. */ 256void sctp_sysctl_register(void) 257{ 258 sctp_sysctl_header = register_sysctl_paths(sctp_path, sctp_table); 259} 260 261/* Sysctl deregistration. */ 262void sctp_sysctl_unregister(void) 263{ 264 unregister_sysctl_table(sctp_sysctl_header); 265} |