0001
0002
0003
0004
0005
0006 #include <linux/mm.h>
0007 #include <linux/sysctl.h>
0008 #include <linux/init.h>
0009 #include <net/ax25.h>
0010 #include <net/netrom.h>
0011
0012
0013
0014
0015 static int min_quality[] = {0}, max_quality[] = {255};
0016 static int min_obs[] = {0}, max_obs[] = {255};
0017 static int min_ttl[] = {0}, max_ttl[] = {255};
0018 static int min_t1[] = {5 * HZ};
0019 static int max_t1[] = {600 * HZ};
0020 static int min_n2[] = {2}, max_n2[] = {127};
0021 static int min_t2[] = {1 * HZ};
0022 static int max_t2[] = {60 * HZ};
0023 static int min_t4[] = {1 * HZ};
0024 static int max_t4[] = {1000 * HZ};
0025 static int min_window[] = {1}, max_window[] = {127};
0026 static int min_idle[] = {0 * HZ};
0027 static int max_idle[] = {65535 * HZ};
0028 static int min_route[] = {0}, max_route[] = {1};
0029 static int min_fails[] = {1}, max_fails[] = {10};
0030 static int min_reset[] = {0}, max_reset[] = {1};
0031
0032 static struct ctl_table_header *nr_table_header;
0033
0034 static struct ctl_table nr_table[] = {
0035 {
0036 .procname = "default_path_quality",
0037 .data = &sysctl_netrom_default_path_quality,
0038 .maxlen = sizeof(int),
0039 .mode = 0644,
0040 .proc_handler = proc_dointvec_minmax,
0041 .extra1 = &min_quality,
0042 .extra2 = &max_quality
0043 },
0044 {
0045 .procname = "obsolescence_count_initialiser",
0046 .data = &sysctl_netrom_obsolescence_count_initialiser,
0047 .maxlen = sizeof(int),
0048 .mode = 0644,
0049 .proc_handler = proc_dointvec_minmax,
0050 .extra1 = &min_obs,
0051 .extra2 = &max_obs
0052 },
0053 {
0054 .procname = "network_ttl_initialiser",
0055 .data = &sysctl_netrom_network_ttl_initialiser,
0056 .maxlen = sizeof(int),
0057 .mode = 0644,
0058 .proc_handler = proc_dointvec_minmax,
0059 .extra1 = &min_ttl,
0060 .extra2 = &max_ttl
0061 },
0062 {
0063 .procname = "transport_timeout",
0064 .data = &sysctl_netrom_transport_timeout,
0065 .maxlen = sizeof(int),
0066 .mode = 0644,
0067 .proc_handler = proc_dointvec_minmax,
0068 .extra1 = &min_t1,
0069 .extra2 = &max_t1
0070 },
0071 {
0072 .procname = "transport_maximum_tries",
0073 .data = &sysctl_netrom_transport_maximum_tries,
0074 .maxlen = sizeof(int),
0075 .mode = 0644,
0076 .proc_handler = proc_dointvec_minmax,
0077 .extra1 = &min_n2,
0078 .extra2 = &max_n2
0079 },
0080 {
0081 .procname = "transport_acknowledge_delay",
0082 .data = &sysctl_netrom_transport_acknowledge_delay,
0083 .maxlen = sizeof(int),
0084 .mode = 0644,
0085 .proc_handler = proc_dointvec_minmax,
0086 .extra1 = &min_t2,
0087 .extra2 = &max_t2
0088 },
0089 {
0090 .procname = "transport_busy_delay",
0091 .data = &sysctl_netrom_transport_busy_delay,
0092 .maxlen = sizeof(int),
0093 .mode = 0644,
0094 .proc_handler = proc_dointvec_minmax,
0095 .extra1 = &min_t4,
0096 .extra2 = &max_t4
0097 },
0098 {
0099 .procname = "transport_requested_window_size",
0100 .data = &sysctl_netrom_transport_requested_window_size,
0101 .maxlen = sizeof(int),
0102 .mode = 0644,
0103 .proc_handler = proc_dointvec_minmax,
0104 .extra1 = &min_window,
0105 .extra2 = &max_window
0106 },
0107 {
0108 .procname = "transport_no_activity_timeout",
0109 .data = &sysctl_netrom_transport_no_activity_timeout,
0110 .maxlen = sizeof(int),
0111 .mode = 0644,
0112 .proc_handler = proc_dointvec_minmax,
0113 .extra1 = &min_idle,
0114 .extra2 = &max_idle
0115 },
0116 {
0117 .procname = "routing_control",
0118 .data = &sysctl_netrom_routing_control,
0119 .maxlen = sizeof(int),
0120 .mode = 0644,
0121 .proc_handler = proc_dointvec_minmax,
0122 .extra1 = &min_route,
0123 .extra2 = &max_route
0124 },
0125 {
0126 .procname = "link_fails_count",
0127 .data = &sysctl_netrom_link_fails_count,
0128 .maxlen = sizeof(int),
0129 .mode = 0644,
0130 .proc_handler = proc_dointvec_minmax,
0131 .extra1 = &min_fails,
0132 .extra2 = &max_fails
0133 },
0134 {
0135 .procname = "reset",
0136 .data = &sysctl_netrom_reset_circuit,
0137 .maxlen = sizeof(int),
0138 .mode = 0644,
0139 .proc_handler = proc_dointvec_minmax,
0140 .extra1 = &min_reset,
0141 .extra2 = &max_reset
0142 },
0143 { }
0144 };
0145
0146 int __init nr_register_sysctl(void)
0147 {
0148 nr_table_header = register_net_sysctl(&init_net, "net/netrom", nr_table);
0149 if (!nr_table_header)
0150 return -ENOMEM;
0151 return 0;
0152 }
0153
0154 void nr_unregister_sysctl(void)
0155 {
0156 unregister_net_sysctl_table(nr_table_header);
0157 }