.. | .. |
---|
79 | 79 | { /* sentinel */ } |
---|
80 | 80 | }; |
---|
81 | 81 | |
---|
| 82 | +/* The following index defines are used in sctp_sysctl_net_register(). |
---|
| 83 | + * If you add new items to the sctp_net_table, please ensure that |
---|
| 84 | + * the index values of these defines hold the same meaning indicated by |
---|
| 85 | + * their macro names when they appear in sctp_net_table. |
---|
| 86 | + */ |
---|
| 87 | +#define SCTP_RTO_MIN_IDX 0 |
---|
| 88 | +#define SCTP_RTO_MAX_IDX 1 |
---|
| 89 | +#define SCTP_PF_RETRANS_IDX 2 |
---|
| 90 | +#define SCTP_PS_RETRANS_IDX 3 |
---|
| 91 | + |
---|
82 | 92 | static struct ctl_table sctp_net_table[] = { |
---|
83 | | - { |
---|
84 | | - .procname = "rto_initial", |
---|
85 | | - .data = &init_net.sctp.rto_initial, |
---|
86 | | - .maxlen = sizeof(unsigned int), |
---|
87 | | - .mode = 0644, |
---|
88 | | - .proc_handler = proc_dointvec_minmax, |
---|
89 | | - .extra1 = SYSCTL_ONE, |
---|
90 | | - .extra2 = &timer_max |
---|
91 | | - }, |
---|
92 | | - { |
---|
| 93 | + [SCTP_RTO_MIN_IDX] = { |
---|
93 | 94 | .procname = "rto_min", |
---|
94 | 95 | .data = &init_net.sctp.rto_min, |
---|
95 | 96 | .maxlen = sizeof(unsigned int), |
---|
.. | .. |
---|
98 | 99 | .extra1 = SYSCTL_ONE, |
---|
99 | 100 | .extra2 = &init_net.sctp.rto_max |
---|
100 | 101 | }, |
---|
101 | | - { |
---|
| 102 | + [SCTP_RTO_MAX_IDX] = { |
---|
102 | 103 | .procname = "rto_max", |
---|
103 | 104 | .data = &init_net.sctp.rto_max, |
---|
104 | 105 | .maxlen = sizeof(unsigned int), |
---|
105 | 106 | .mode = 0644, |
---|
106 | 107 | .proc_handler = proc_sctp_do_rto_max, |
---|
107 | 108 | .extra1 = &init_net.sctp.rto_min, |
---|
| 109 | + .extra2 = &timer_max |
---|
| 110 | + }, |
---|
| 111 | + [SCTP_PF_RETRANS_IDX] = { |
---|
| 112 | + .procname = "pf_retrans", |
---|
| 113 | + .data = &init_net.sctp.pf_retrans, |
---|
| 114 | + .maxlen = sizeof(int), |
---|
| 115 | + .mode = 0644, |
---|
| 116 | + .proc_handler = proc_dointvec_minmax, |
---|
| 117 | + .extra1 = SYSCTL_ZERO, |
---|
| 118 | + .extra2 = &init_net.sctp.ps_retrans, |
---|
| 119 | + }, |
---|
| 120 | + [SCTP_PS_RETRANS_IDX] = { |
---|
| 121 | + .procname = "ps_retrans", |
---|
| 122 | + .data = &init_net.sctp.ps_retrans, |
---|
| 123 | + .maxlen = sizeof(int), |
---|
| 124 | + .mode = 0644, |
---|
| 125 | + .proc_handler = proc_dointvec_minmax, |
---|
| 126 | + .extra1 = &init_net.sctp.pf_retrans, |
---|
| 127 | + .extra2 = &ps_retrans_max, |
---|
| 128 | + }, |
---|
| 129 | + { |
---|
| 130 | + .procname = "rto_initial", |
---|
| 131 | + .data = &init_net.sctp.rto_initial, |
---|
| 132 | + .maxlen = sizeof(unsigned int), |
---|
| 133 | + .mode = 0644, |
---|
| 134 | + .proc_handler = proc_dointvec_minmax, |
---|
| 135 | + .extra1 = SYSCTL_ONE, |
---|
108 | 136 | .extra2 = &timer_max |
---|
109 | 137 | }, |
---|
110 | 138 | { |
---|
.. | .. |
---|
201 | 229 | .proc_handler = proc_dointvec_minmax, |
---|
202 | 230 | .extra1 = SYSCTL_ONE, |
---|
203 | 231 | .extra2 = SYSCTL_INT_MAX, |
---|
204 | | - }, |
---|
205 | | - { |
---|
206 | | - .procname = "pf_retrans", |
---|
207 | | - .data = &init_net.sctp.pf_retrans, |
---|
208 | | - .maxlen = sizeof(int), |
---|
209 | | - .mode = 0644, |
---|
210 | | - .proc_handler = proc_dointvec_minmax, |
---|
211 | | - .extra1 = SYSCTL_ZERO, |
---|
212 | | - .extra2 = &init_net.sctp.ps_retrans, |
---|
213 | | - }, |
---|
214 | | - { |
---|
215 | | - .procname = "ps_retrans", |
---|
216 | | - .data = &init_net.sctp.ps_retrans, |
---|
217 | | - .maxlen = sizeof(int), |
---|
218 | | - .mode = 0644, |
---|
219 | | - .proc_handler = proc_dointvec_minmax, |
---|
220 | | - .extra1 = &init_net.sctp.pf_retrans, |
---|
221 | | - .extra2 = &ps_retrans_max, |
---|
222 | 232 | }, |
---|
223 | 233 | { |
---|
224 | 234 | .procname = "sndbuf_policy", |
---|
.. | .. |
---|
489 | 499 | for (i = 0; table[i].data; i++) |
---|
490 | 500 | table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp; |
---|
491 | 501 | |
---|
| 502 | + table[SCTP_RTO_MIN_IDX].extra2 = &net->sctp.rto_max; |
---|
| 503 | + table[SCTP_RTO_MAX_IDX].extra1 = &net->sctp.rto_min; |
---|
| 504 | + table[SCTP_PF_RETRANS_IDX].extra2 = &net->sctp.ps_retrans; |
---|
| 505 | + table[SCTP_PS_RETRANS_IDX].extra1 = &net->sctp.pf_retrans; |
---|
| 506 | + |
---|
492 | 507 | net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table); |
---|
493 | 508 | if (net->sctp.sysctl_header == NULL) { |
---|
494 | 509 | kfree(table); |
---|