18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com) 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci#include <linux/mm.h> 78c2ecf20Sopenharmony_ci#include <linux/sysctl.h> 88c2ecf20Sopenharmony_ci#include <linux/init.h> 98c2ecf20Sopenharmony_ci#include <net/ax25.h> 108c2ecf20Sopenharmony_ci#include <net/rose.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cistatic int min_timer[] = {1 * HZ}; 138c2ecf20Sopenharmony_cistatic int max_timer[] = {300 * HZ}; 148c2ecf20Sopenharmony_cistatic int min_idle[] = {0 * HZ}; 158c2ecf20Sopenharmony_cistatic int max_idle[] = {65535 * HZ}; 168c2ecf20Sopenharmony_cistatic int min_route[1], max_route[] = {1}; 178c2ecf20Sopenharmony_cistatic int min_ftimer[] = {60 * HZ}; 188c2ecf20Sopenharmony_cistatic int max_ftimer[] = {600 * HZ}; 198c2ecf20Sopenharmony_cistatic int min_maxvcs[] = {1}, max_maxvcs[] = {254}; 208c2ecf20Sopenharmony_cistatic int min_window[] = {1}, max_window[] = {7}; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cistatic struct ctl_table_header *rose_table_header; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic struct ctl_table rose_table[] = { 258c2ecf20Sopenharmony_ci { 268c2ecf20Sopenharmony_ci .procname = "restart_request_timeout", 278c2ecf20Sopenharmony_ci .data = &sysctl_rose_restart_request_timeout, 288c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 298c2ecf20Sopenharmony_ci .mode = 0644, 308c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 318c2ecf20Sopenharmony_ci .extra1 = &min_timer, 328c2ecf20Sopenharmony_ci .extra2 = &max_timer 338c2ecf20Sopenharmony_ci }, 348c2ecf20Sopenharmony_ci { 358c2ecf20Sopenharmony_ci .procname = "call_request_timeout", 368c2ecf20Sopenharmony_ci .data = &sysctl_rose_call_request_timeout, 378c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 388c2ecf20Sopenharmony_ci .mode = 0644, 398c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 408c2ecf20Sopenharmony_ci .extra1 = &min_timer, 418c2ecf20Sopenharmony_ci .extra2 = &max_timer 428c2ecf20Sopenharmony_ci }, 438c2ecf20Sopenharmony_ci { 448c2ecf20Sopenharmony_ci .procname = "reset_request_timeout", 458c2ecf20Sopenharmony_ci .data = &sysctl_rose_reset_request_timeout, 468c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 478c2ecf20Sopenharmony_ci .mode = 0644, 488c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 498c2ecf20Sopenharmony_ci .extra1 = &min_timer, 508c2ecf20Sopenharmony_ci .extra2 = &max_timer 518c2ecf20Sopenharmony_ci }, 528c2ecf20Sopenharmony_ci { 538c2ecf20Sopenharmony_ci .procname = "clear_request_timeout", 548c2ecf20Sopenharmony_ci .data = &sysctl_rose_clear_request_timeout, 558c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 568c2ecf20Sopenharmony_ci .mode = 0644, 578c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 588c2ecf20Sopenharmony_ci .extra1 = &min_timer, 598c2ecf20Sopenharmony_ci .extra2 = &max_timer 608c2ecf20Sopenharmony_ci }, 618c2ecf20Sopenharmony_ci { 628c2ecf20Sopenharmony_ci .procname = "no_activity_timeout", 638c2ecf20Sopenharmony_ci .data = &sysctl_rose_no_activity_timeout, 648c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 658c2ecf20Sopenharmony_ci .mode = 0644, 668c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 678c2ecf20Sopenharmony_ci .extra1 = &min_idle, 688c2ecf20Sopenharmony_ci .extra2 = &max_idle 698c2ecf20Sopenharmony_ci }, 708c2ecf20Sopenharmony_ci { 718c2ecf20Sopenharmony_ci .procname = "acknowledge_hold_back_timeout", 728c2ecf20Sopenharmony_ci .data = &sysctl_rose_ack_hold_back_timeout, 738c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 748c2ecf20Sopenharmony_ci .mode = 0644, 758c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 768c2ecf20Sopenharmony_ci .extra1 = &min_timer, 778c2ecf20Sopenharmony_ci .extra2 = &max_timer 788c2ecf20Sopenharmony_ci }, 798c2ecf20Sopenharmony_ci { 808c2ecf20Sopenharmony_ci .procname = "routing_control", 818c2ecf20Sopenharmony_ci .data = &sysctl_rose_routing_control, 828c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 838c2ecf20Sopenharmony_ci .mode = 0644, 848c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 858c2ecf20Sopenharmony_ci .extra1 = &min_route, 868c2ecf20Sopenharmony_ci .extra2 = &max_route 878c2ecf20Sopenharmony_ci }, 888c2ecf20Sopenharmony_ci { 898c2ecf20Sopenharmony_ci .procname = "link_fail_timeout", 908c2ecf20Sopenharmony_ci .data = &sysctl_rose_link_fail_timeout, 918c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 928c2ecf20Sopenharmony_ci .mode = 0644, 938c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 948c2ecf20Sopenharmony_ci .extra1 = &min_ftimer, 958c2ecf20Sopenharmony_ci .extra2 = &max_ftimer 968c2ecf20Sopenharmony_ci }, 978c2ecf20Sopenharmony_ci { 988c2ecf20Sopenharmony_ci .procname = "maximum_virtual_circuits", 998c2ecf20Sopenharmony_ci .data = &sysctl_rose_maximum_vcs, 1008c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 1018c2ecf20Sopenharmony_ci .mode = 0644, 1028c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 1038c2ecf20Sopenharmony_ci .extra1 = &min_maxvcs, 1048c2ecf20Sopenharmony_ci .extra2 = &max_maxvcs 1058c2ecf20Sopenharmony_ci }, 1068c2ecf20Sopenharmony_ci { 1078c2ecf20Sopenharmony_ci .procname = "window_size", 1088c2ecf20Sopenharmony_ci .data = &sysctl_rose_window_size, 1098c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 1108c2ecf20Sopenharmony_ci .mode = 0644, 1118c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 1128c2ecf20Sopenharmony_ci .extra1 = &min_window, 1138c2ecf20Sopenharmony_ci .extra2 = &max_window 1148c2ecf20Sopenharmony_ci }, 1158c2ecf20Sopenharmony_ci { } 1168c2ecf20Sopenharmony_ci}; 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_civoid __init rose_register_sysctl(void) 1198c2ecf20Sopenharmony_ci{ 1208c2ecf20Sopenharmony_ci rose_table_header = register_net_sysctl(&init_net, "net/rose", rose_table); 1218c2ecf20Sopenharmony_ci} 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_civoid rose_unregister_sysctl(void) 1248c2ecf20Sopenharmony_ci{ 1258c2ecf20Sopenharmony_ci unregister_net_sysctl_table(rose_table_header); 1268c2ecf20Sopenharmony_ci} 127