162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* -*- linux-c -*- 362306a36Sopenharmony_ci * sysctl_net_x25.c: sysctl interface to net X.25 subsystem. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Begun April 1, 1996, Mike Shaver. 662306a36Sopenharmony_ci * Added /proc/sys/net/x25 directory entry (empty =) ). [MS] 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/sysctl.h> 1062306a36Sopenharmony_ci#include <linux/skbuff.h> 1162306a36Sopenharmony_ci#include <linux/socket.h> 1262306a36Sopenharmony_ci#include <linux/netdevice.h> 1362306a36Sopenharmony_ci#include <linux/init.h> 1462306a36Sopenharmony_ci#include <net/x25.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistatic int min_timer[] = { 1 * HZ }; 1762306a36Sopenharmony_cistatic int max_timer[] = { 300 * HZ }; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cistatic struct ctl_table_header *x25_table_header; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cistatic struct ctl_table x25_table[] = { 2262306a36Sopenharmony_ci { 2362306a36Sopenharmony_ci .procname = "restart_request_timeout", 2462306a36Sopenharmony_ci .data = &sysctl_x25_restart_request_timeout, 2562306a36Sopenharmony_ci .maxlen = sizeof(int), 2662306a36Sopenharmony_ci .mode = 0644, 2762306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 2862306a36Sopenharmony_ci .extra1 = &min_timer, 2962306a36Sopenharmony_ci .extra2 = &max_timer, 3062306a36Sopenharmony_ci }, 3162306a36Sopenharmony_ci { 3262306a36Sopenharmony_ci .procname = "call_request_timeout", 3362306a36Sopenharmony_ci .data = &sysctl_x25_call_request_timeout, 3462306a36Sopenharmony_ci .maxlen = sizeof(int), 3562306a36Sopenharmony_ci .mode = 0644, 3662306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 3762306a36Sopenharmony_ci .extra1 = &min_timer, 3862306a36Sopenharmony_ci .extra2 = &max_timer, 3962306a36Sopenharmony_ci }, 4062306a36Sopenharmony_ci { 4162306a36Sopenharmony_ci .procname = "reset_request_timeout", 4262306a36Sopenharmony_ci .data = &sysctl_x25_reset_request_timeout, 4362306a36Sopenharmony_ci .maxlen = sizeof(int), 4462306a36Sopenharmony_ci .mode = 0644, 4562306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 4662306a36Sopenharmony_ci .extra1 = &min_timer, 4762306a36Sopenharmony_ci .extra2 = &max_timer, 4862306a36Sopenharmony_ci }, 4962306a36Sopenharmony_ci { 5062306a36Sopenharmony_ci .procname = "clear_request_timeout", 5162306a36Sopenharmony_ci .data = &sysctl_x25_clear_request_timeout, 5262306a36Sopenharmony_ci .maxlen = sizeof(int), 5362306a36Sopenharmony_ci .mode = 0644, 5462306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 5562306a36Sopenharmony_ci .extra1 = &min_timer, 5662306a36Sopenharmony_ci .extra2 = &max_timer, 5762306a36Sopenharmony_ci }, 5862306a36Sopenharmony_ci { 5962306a36Sopenharmony_ci .procname = "acknowledgement_hold_back_timeout", 6062306a36Sopenharmony_ci .data = &sysctl_x25_ack_holdback_timeout, 6162306a36Sopenharmony_ci .maxlen = sizeof(int), 6262306a36Sopenharmony_ci .mode = 0644, 6362306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 6462306a36Sopenharmony_ci .extra1 = &min_timer, 6562306a36Sopenharmony_ci .extra2 = &max_timer, 6662306a36Sopenharmony_ci }, 6762306a36Sopenharmony_ci { 6862306a36Sopenharmony_ci .procname = "x25_forward", 6962306a36Sopenharmony_ci .data = &sysctl_x25_forward, 7062306a36Sopenharmony_ci .maxlen = sizeof(int), 7162306a36Sopenharmony_ci .mode = 0644, 7262306a36Sopenharmony_ci .proc_handler = proc_dointvec, 7362306a36Sopenharmony_ci }, 7462306a36Sopenharmony_ci { }, 7562306a36Sopenharmony_ci}; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciint __init x25_register_sysctl(void) 7862306a36Sopenharmony_ci{ 7962306a36Sopenharmony_ci x25_table_header = register_net_sysctl(&init_net, "net/x25", x25_table); 8062306a36Sopenharmony_ci if (!x25_table_header) 8162306a36Sopenharmony_ci return -ENOMEM; 8262306a36Sopenharmony_ci return 0; 8362306a36Sopenharmony_ci} 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_civoid x25_unregister_sysctl(void) 8662306a36Sopenharmony_ci{ 8762306a36Sopenharmony_ci unregister_net_sysctl_table(x25_table_header); 8862306a36Sopenharmony_ci} 89