Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003  *
0004  * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com)
0005  */
0006 #include <linux/mm.h>
0007 #include <linux/sysctl.h>
0008 #include <linux/init.h>
0009 #include <net/ax25.h>
0010 #include <net/rose.h>
0011 
0012 static int min_timer[]  = {1 * HZ};
0013 static int max_timer[]  = {300 * HZ};
0014 static int min_idle[]   = {0 * HZ};
0015 static int max_idle[]   = {65535 * HZ};
0016 static int min_route[1],       max_route[] = {1};
0017 static int min_ftimer[] = {60 * HZ};
0018 static int max_ftimer[] = {600 * HZ};
0019 static int min_maxvcs[] = {1}, max_maxvcs[] = {254};
0020 static int min_window[] = {1}, max_window[] = {7};
0021 
0022 static struct ctl_table_header *rose_table_header;
0023 
0024 static struct ctl_table rose_table[] = {
0025     {
0026         .procname   = "restart_request_timeout",
0027         .data       = &sysctl_rose_restart_request_timeout,
0028         .maxlen     = sizeof(int),
0029         .mode       = 0644,
0030         .proc_handler   = proc_dointvec_minmax,
0031         .extra1     = &min_timer,
0032         .extra2     = &max_timer
0033     },
0034     {
0035         .procname   = "call_request_timeout",
0036         .data       = &sysctl_rose_call_request_timeout,
0037         .maxlen     = sizeof(int),
0038         .mode       = 0644,
0039         .proc_handler   = proc_dointvec_minmax,
0040         .extra1     = &min_timer,
0041         .extra2     = &max_timer
0042     },
0043     {
0044         .procname   = "reset_request_timeout",
0045         .data       = &sysctl_rose_reset_request_timeout,
0046         .maxlen     = sizeof(int),
0047         .mode       = 0644,
0048         .proc_handler   = proc_dointvec_minmax,
0049         .extra1     = &min_timer,
0050         .extra2     = &max_timer
0051     },
0052     {
0053         .procname   = "clear_request_timeout",
0054         .data       = &sysctl_rose_clear_request_timeout,
0055         .maxlen     = sizeof(int),
0056         .mode       = 0644,
0057         .proc_handler   = proc_dointvec_minmax,
0058         .extra1     = &min_timer,
0059         .extra2     = &max_timer
0060     },
0061     {
0062         .procname   = "no_activity_timeout",
0063         .data       = &sysctl_rose_no_activity_timeout,
0064         .maxlen     = sizeof(int),
0065         .mode       = 0644,
0066         .proc_handler   = proc_dointvec_minmax,
0067         .extra1     = &min_idle,
0068         .extra2     = &max_idle
0069     },
0070     {
0071         .procname   = "acknowledge_hold_back_timeout",
0072         .data       = &sysctl_rose_ack_hold_back_timeout,
0073         .maxlen     = sizeof(int),
0074         .mode       = 0644,
0075         .proc_handler   = proc_dointvec_minmax,
0076         .extra1     = &min_timer,
0077         .extra2     = &max_timer
0078     },
0079     {
0080         .procname   = "routing_control",
0081         .data       = &sysctl_rose_routing_control,
0082         .maxlen     = sizeof(int),
0083         .mode       = 0644,
0084         .proc_handler   = proc_dointvec_minmax,
0085         .extra1     = &min_route,
0086         .extra2     = &max_route
0087     },
0088     {
0089         .procname   = "link_fail_timeout",
0090         .data       = &sysctl_rose_link_fail_timeout,
0091         .maxlen     = sizeof(int),
0092         .mode       = 0644,
0093         .proc_handler   = proc_dointvec_minmax,
0094         .extra1     = &min_ftimer,
0095         .extra2     = &max_ftimer
0096     },
0097     {
0098         .procname   = "maximum_virtual_circuits",
0099         .data       = &sysctl_rose_maximum_vcs,
0100         .maxlen     = sizeof(int),
0101         .mode       = 0644,
0102         .proc_handler   = proc_dointvec_minmax,
0103         .extra1     = &min_maxvcs,
0104         .extra2     = &max_maxvcs
0105     },
0106     {
0107         .procname   = "window_size",
0108         .data       = &sysctl_rose_window_size,
0109         .maxlen     = sizeof(int),
0110         .mode       = 0644,
0111         .proc_handler   = proc_dointvec_minmax,
0112         .extra1     = &min_window,
0113         .extra2     = &max_window
0114     },
0115     { }
0116 };
0117 
0118 void __init rose_register_sysctl(void)
0119 {
0120     rose_table_header = register_net_sysctl(&init_net, "net/rose", rose_table);
0121 }
0122 
0123 void rose_unregister_sysctl(void)
0124 {
0125     unregister_net_sysctl_table(rose_table_header);
0126 }