Merge tag 'stable/frontswap.v16-tag' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / net / rose / sysctl_net_rose.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/rose.h>
14
15 static int min_timer[]  = {1 * HZ};
16 static int max_timer[]  = {300 * HZ};
17 static int min_idle[]   = {0 * HZ};
18 static int max_idle[]   = {65535 * HZ};
19 static int min_route[1],       max_route[] = {1};
20 static int min_ftimer[] = {60 * HZ};
21 static int max_ftimer[] = {600 * HZ};
22 static int min_maxvcs[] = {1}, max_maxvcs[] = {254};
23 static int min_window[] = {1}, max_window[] = {7};
24
25 static struct ctl_table_header *rose_table_header;
26
27 static ctl_table rose_table[] = {
28         {
29                 .procname       = "restart_request_timeout",
30                 .data           = &sysctl_rose_restart_request_timeout,
31                 .maxlen         = sizeof(int),
32                 .mode           = 0644,
33                 .proc_handler   = proc_dointvec_minmax,
34                 .extra1         = &min_timer,
35                 .extra2         = &max_timer
36         },
37         {
38                 .procname       = "call_request_timeout",
39                 .data           = &sysctl_rose_call_request_timeout,
40                 .maxlen         = sizeof(int),
41                 .mode           = 0644,
42                 .proc_handler   = proc_dointvec_minmax,
43                 .extra1         = &min_timer,
44                 .extra2         = &max_timer
45         },
46         {
47                 .procname       = "reset_request_timeout",
48                 .data           = &sysctl_rose_reset_request_timeout,
49                 .maxlen         = sizeof(int),
50                 .mode           = 0644,
51                 .proc_handler   = proc_dointvec_minmax,
52                 .extra1         = &min_timer,
53                 .extra2         = &max_timer
54         },
55         {
56                 .procname       = "clear_request_timeout",
57                 .data           = &sysctl_rose_clear_request_timeout,
58                 .maxlen         = sizeof(int),
59                 .mode           = 0644,
60                 .proc_handler   = proc_dointvec_minmax,
61                 .extra1         = &min_timer,
62                 .extra2         = &max_timer
63         },
64         {
65                 .procname       = "no_activity_timeout",
66                 .data           = &sysctl_rose_no_activity_timeout,
67                 .maxlen         = sizeof(int),
68                 .mode           = 0644,
69                 .proc_handler   = proc_dointvec_minmax,
70                 .extra1         = &min_idle,
71                 .extra2         = &max_idle
72         },
73         {
74                 .procname       = "acknowledge_hold_back_timeout",
75                 .data           = &sysctl_rose_ack_hold_back_timeout,
76                 .maxlen         = sizeof(int),
77                 .mode           = 0644,
78                 .proc_handler   = proc_dointvec_minmax,
79                 .extra1         = &min_timer,
80                 .extra2         = &max_timer
81         },
82         {
83                 .procname       = "routing_control",
84                 .data           = &sysctl_rose_routing_control,
85                 .maxlen         = sizeof(int),
86                 .mode           = 0644,
87                 .proc_handler   = proc_dointvec_minmax,
88                 .extra1         = &min_route,
89                 .extra2         = &max_route
90         },
91         {
92                 .procname       = "link_fail_timeout",
93                 .data           = &sysctl_rose_link_fail_timeout,
94                 .maxlen         = sizeof(int),
95                 .mode           = 0644,
96                 .proc_handler   = proc_dointvec_minmax,
97                 .extra1         = &min_ftimer,
98                 .extra2         = &max_ftimer
99         },
100         {
101                 .procname       = "maximum_virtual_circuits",
102                 .data           = &sysctl_rose_maximum_vcs,
103                 .maxlen         = sizeof(int),
104                 .mode           = 0644,
105                 .proc_handler   = proc_dointvec_minmax,
106                 .extra1         = &min_maxvcs,
107                 .extra2         = &max_maxvcs
108         },
109         {
110                 .procname       = "window_size",
111                 .data           = &sysctl_rose_window_size,
112                 .maxlen         = sizeof(int),
113                 .mode           = 0644,
114                 .proc_handler   = proc_dointvec_minmax,
115                 .extra1         = &min_window,
116                 .extra2         = &max_window
117         },
118         { }
119 };
120
121 void __init rose_register_sysctl(void)
122 {
123         rose_table_header = register_net_sysctl(&init_net, "net/rose", rose_table);
124 }
125
126 void rose_unregister_sysctl(void)
127 {
128         unregister_net_sysctl_table(rose_table_header);
129 }