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