18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* -*- linux-c -*- 38c2ecf20Sopenharmony_ci * sysctl_net_x25.c: sysctl interface to net X.25 subsystem. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Begun April 1, 1996, Mike Shaver. 68c2ecf20Sopenharmony_ci * Added /proc/sys/net/x25 directory entry (empty =) ). [MS] 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <linux/sysctl.h> 108c2ecf20Sopenharmony_ci#include <linux/skbuff.h> 118c2ecf20Sopenharmony_ci#include <linux/socket.h> 128c2ecf20Sopenharmony_ci#include <linux/netdevice.h> 138c2ecf20Sopenharmony_ci#include <linux/init.h> 148c2ecf20Sopenharmony_ci#include <net/x25.h> 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_cistatic int min_timer[] = { 1 * HZ }; 178c2ecf20Sopenharmony_cistatic int max_timer[] = { 300 * HZ }; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cistatic struct ctl_table_header *x25_table_header; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_cistatic struct ctl_table x25_table[] = { 228c2ecf20Sopenharmony_ci { 238c2ecf20Sopenharmony_ci .procname = "restart_request_timeout", 248c2ecf20Sopenharmony_ci .data = &sysctl_x25_restart_request_timeout, 258c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 268c2ecf20Sopenharmony_ci .mode = 0644, 278c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 288c2ecf20Sopenharmony_ci .extra1 = &min_timer, 298c2ecf20Sopenharmony_ci .extra2 = &max_timer, 308c2ecf20Sopenharmony_ci }, 318c2ecf20Sopenharmony_ci { 328c2ecf20Sopenharmony_ci .procname = "call_request_timeout", 338c2ecf20Sopenharmony_ci .data = &sysctl_x25_call_request_timeout, 348c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 358c2ecf20Sopenharmony_ci .mode = 0644, 368c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 378c2ecf20Sopenharmony_ci .extra1 = &min_timer, 388c2ecf20Sopenharmony_ci .extra2 = &max_timer, 398c2ecf20Sopenharmony_ci }, 408c2ecf20Sopenharmony_ci { 418c2ecf20Sopenharmony_ci .procname = "reset_request_timeout", 428c2ecf20Sopenharmony_ci .data = &sysctl_x25_reset_request_timeout, 438c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 448c2ecf20Sopenharmony_ci .mode = 0644, 458c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 468c2ecf20Sopenharmony_ci .extra1 = &min_timer, 478c2ecf20Sopenharmony_ci .extra2 = &max_timer, 488c2ecf20Sopenharmony_ci }, 498c2ecf20Sopenharmony_ci { 508c2ecf20Sopenharmony_ci .procname = "clear_request_timeout", 518c2ecf20Sopenharmony_ci .data = &sysctl_x25_clear_request_timeout, 528c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 538c2ecf20Sopenharmony_ci .mode = 0644, 548c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 558c2ecf20Sopenharmony_ci .extra1 = &min_timer, 568c2ecf20Sopenharmony_ci .extra2 = &max_timer, 578c2ecf20Sopenharmony_ci }, 588c2ecf20Sopenharmony_ci { 598c2ecf20Sopenharmony_ci .procname = "acknowledgement_hold_back_timeout", 608c2ecf20Sopenharmony_ci .data = &sysctl_x25_ack_holdback_timeout, 618c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 628c2ecf20Sopenharmony_ci .mode = 0644, 638c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 648c2ecf20Sopenharmony_ci .extra1 = &min_timer, 658c2ecf20Sopenharmony_ci .extra2 = &max_timer, 668c2ecf20Sopenharmony_ci }, 678c2ecf20Sopenharmony_ci { 688c2ecf20Sopenharmony_ci .procname = "x25_forward", 698c2ecf20Sopenharmony_ci .data = &sysctl_x25_forward, 708c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 718c2ecf20Sopenharmony_ci .mode = 0644, 728c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec, 738c2ecf20Sopenharmony_ci }, 748c2ecf20Sopenharmony_ci { }, 758c2ecf20Sopenharmony_ci}; 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ciint __init x25_register_sysctl(void) 788c2ecf20Sopenharmony_ci{ 798c2ecf20Sopenharmony_ci x25_table_header = register_net_sysctl(&init_net, "net/x25", x25_table); 808c2ecf20Sopenharmony_ci if (!x25_table_header) 818c2ecf20Sopenharmony_ci return -ENOMEM; 828c2ecf20Sopenharmony_ci return 0; 838c2ecf20Sopenharmony_ci} 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_civoid x25_unregister_sysctl(void) 868c2ecf20Sopenharmony_ci{ 878c2ecf20Sopenharmony_ci unregister_net_sysctl_table(x25_table_header); 888c2ecf20Sopenharmony_ci} 89