162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com) 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci#include <linux/mm.h> 762306a36Sopenharmony_ci#include <linux/sysctl.h> 862306a36Sopenharmony_ci#include <linux/init.h> 962306a36Sopenharmony_ci#include <net/ax25.h> 1062306a36Sopenharmony_ci#include <net/rose.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cistatic int min_timer[] = {1 * HZ}; 1362306a36Sopenharmony_cistatic int max_timer[] = {300 * HZ}; 1462306a36Sopenharmony_cistatic int min_idle[] = {0 * HZ}; 1562306a36Sopenharmony_cistatic int max_idle[] = {65535 * HZ}; 1662306a36Sopenharmony_cistatic int min_route[1], max_route[] = {1}; 1762306a36Sopenharmony_cistatic int min_ftimer[] = {60 * HZ}; 1862306a36Sopenharmony_cistatic int max_ftimer[] = {600 * HZ}; 1962306a36Sopenharmony_cistatic int min_maxvcs[] = {1}, max_maxvcs[] = {254}; 2062306a36Sopenharmony_cistatic int min_window[] = {1}, max_window[] = {7}; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_cistatic struct ctl_table_header *rose_table_header; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_cistatic struct ctl_table rose_table[] = { 2562306a36Sopenharmony_ci { 2662306a36Sopenharmony_ci .procname = "restart_request_timeout", 2762306a36Sopenharmony_ci .data = &sysctl_rose_restart_request_timeout, 2862306a36Sopenharmony_ci .maxlen = sizeof(int), 2962306a36Sopenharmony_ci .mode = 0644, 3062306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 3162306a36Sopenharmony_ci .extra1 = &min_timer, 3262306a36Sopenharmony_ci .extra2 = &max_timer 3362306a36Sopenharmony_ci }, 3462306a36Sopenharmony_ci { 3562306a36Sopenharmony_ci .procname = "call_request_timeout", 3662306a36Sopenharmony_ci .data = &sysctl_rose_call_request_timeout, 3762306a36Sopenharmony_ci .maxlen = sizeof(int), 3862306a36Sopenharmony_ci .mode = 0644, 3962306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 4062306a36Sopenharmony_ci .extra1 = &min_timer, 4162306a36Sopenharmony_ci .extra2 = &max_timer 4262306a36Sopenharmony_ci }, 4362306a36Sopenharmony_ci { 4462306a36Sopenharmony_ci .procname = "reset_request_timeout", 4562306a36Sopenharmony_ci .data = &sysctl_rose_reset_request_timeout, 4662306a36Sopenharmony_ci .maxlen = sizeof(int), 4762306a36Sopenharmony_ci .mode = 0644, 4862306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 4962306a36Sopenharmony_ci .extra1 = &min_timer, 5062306a36Sopenharmony_ci .extra2 = &max_timer 5162306a36Sopenharmony_ci }, 5262306a36Sopenharmony_ci { 5362306a36Sopenharmony_ci .procname = "clear_request_timeout", 5462306a36Sopenharmony_ci .data = &sysctl_rose_clear_request_timeout, 5562306a36Sopenharmony_ci .maxlen = sizeof(int), 5662306a36Sopenharmony_ci .mode = 0644, 5762306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 5862306a36Sopenharmony_ci .extra1 = &min_timer, 5962306a36Sopenharmony_ci .extra2 = &max_timer 6062306a36Sopenharmony_ci }, 6162306a36Sopenharmony_ci { 6262306a36Sopenharmony_ci .procname = "no_activity_timeout", 6362306a36Sopenharmony_ci .data = &sysctl_rose_no_activity_timeout, 6462306a36Sopenharmony_ci .maxlen = sizeof(int), 6562306a36Sopenharmony_ci .mode = 0644, 6662306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 6762306a36Sopenharmony_ci .extra1 = &min_idle, 6862306a36Sopenharmony_ci .extra2 = &max_idle 6962306a36Sopenharmony_ci }, 7062306a36Sopenharmony_ci { 7162306a36Sopenharmony_ci .procname = "acknowledge_hold_back_timeout", 7262306a36Sopenharmony_ci .data = &sysctl_rose_ack_hold_back_timeout, 7362306a36Sopenharmony_ci .maxlen = sizeof(int), 7462306a36Sopenharmony_ci .mode = 0644, 7562306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 7662306a36Sopenharmony_ci .extra1 = &min_timer, 7762306a36Sopenharmony_ci .extra2 = &max_timer 7862306a36Sopenharmony_ci }, 7962306a36Sopenharmony_ci { 8062306a36Sopenharmony_ci .procname = "routing_control", 8162306a36Sopenharmony_ci .data = &sysctl_rose_routing_control, 8262306a36Sopenharmony_ci .maxlen = sizeof(int), 8362306a36Sopenharmony_ci .mode = 0644, 8462306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 8562306a36Sopenharmony_ci .extra1 = &min_route, 8662306a36Sopenharmony_ci .extra2 = &max_route 8762306a36Sopenharmony_ci }, 8862306a36Sopenharmony_ci { 8962306a36Sopenharmony_ci .procname = "link_fail_timeout", 9062306a36Sopenharmony_ci .data = &sysctl_rose_link_fail_timeout, 9162306a36Sopenharmony_ci .maxlen = sizeof(int), 9262306a36Sopenharmony_ci .mode = 0644, 9362306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 9462306a36Sopenharmony_ci .extra1 = &min_ftimer, 9562306a36Sopenharmony_ci .extra2 = &max_ftimer 9662306a36Sopenharmony_ci }, 9762306a36Sopenharmony_ci { 9862306a36Sopenharmony_ci .procname = "maximum_virtual_circuits", 9962306a36Sopenharmony_ci .data = &sysctl_rose_maximum_vcs, 10062306a36Sopenharmony_ci .maxlen = sizeof(int), 10162306a36Sopenharmony_ci .mode = 0644, 10262306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 10362306a36Sopenharmony_ci .extra1 = &min_maxvcs, 10462306a36Sopenharmony_ci .extra2 = &max_maxvcs 10562306a36Sopenharmony_ci }, 10662306a36Sopenharmony_ci { 10762306a36Sopenharmony_ci .procname = "window_size", 10862306a36Sopenharmony_ci .data = &sysctl_rose_window_size, 10962306a36Sopenharmony_ci .maxlen = sizeof(int), 11062306a36Sopenharmony_ci .mode = 0644, 11162306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 11262306a36Sopenharmony_ci .extra1 = &min_window, 11362306a36Sopenharmony_ci .extra2 = &max_window 11462306a36Sopenharmony_ci }, 11562306a36Sopenharmony_ci { } 11662306a36Sopenharmony_ci}; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_civoid __init rose_register_sysctl(void) 11962306a36Sopenharmony_ci{ 12062306a36Sopenharmony_ci rose_table_header = register_net_sysctl(&init_net, "net/rose", rose_table); 12162306a36Sopenharmony_ci} 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_civoid rose_unregister_sysctl(void) 12462306a36Sopenharmony_ci{ 12562306a36Sopenharmony_ci unregister_net_sysctl_table(rose_table_header); 12662306a36Sopenharmony_ci} 127