1*b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvalds /* -*- linux-c -*-
31da177e4SLinus Torvalds * sysctl_net_x25.c: sysctl interface to net X.25 subsystem.
41da177e4SLinus Torvalds *
51da177e4SLinus Torvalds * Begun April 1, 1996, Mike Shaver.
61da177e4SLinus Torvalds * Added /proc/sys/net/x25 directory entry (empty =) ). [MS]
71da177e4SLinus Torvalds */
81da177e4SLinus Torvalds
91da177e4SLinus Torvalds #include <linux/sysctl.h>
101da177e4SLinus Torvalds #include <linux/skbuff.h>
111da177e4SLinus Torvalds #include <linux/socket.h>
121da177e4SLinus Torvalds #include <linux/netdevice.h>
131da177e4SLinus Torvalds #include <linux/init.h>
141da177e4SLinus Torvalds #include <net/x25.h>
151da177e4SLinus Torvalds
161da177e4SLinus Torvalds static int min_timer[] = { 1 * HZ };
171da177e4SLinus Torvalds static int max_timer[] = { 300 * HZ };
181da177e4SLinus Torvalds
191da177e4SLinus Torvalds static struct ctl_table_header *x25_table_header;
201da177e4SLinus Torvalds
211da177e4SLinus Torvalds static struct ctl_table x25_table[] = {
221da177e4SLinus Torvalds {
231da177e4SLinus Torvalds .procname = "restart_request_timeout",
241da177e4SLinus Torvalds .data = &sysctl_x25_restart_request_timeout,
251da177e4SLinus Torvalds .maxlen = sizeof(int),
261da177e4SLinus Torvalds .mode = 0644,
276d9f239aSAlexey Dobriyan .proc_handler = proc_dointvec_minmax,
281da177e4SLinus Torvalds .extra1 = &min_timer,
291da177e4SLinus Torvalds .extra2 = &max_timer,
301da177e4SLinus Torvalds },
311da177e4SLinus Torvalds {
321da177e4SLinus Torvalds .procname = "call_request_timeout",
331da177e4SLinus Torvalds .data = &sysctl_x25_call_request_timeout,
341da177e4SLinus Torvalds .maxlen = sizeof(int),
351da177e4SLinus Torvalds .mode = 0644,
366d9f239aSAlexey Dobriyan .proc_handler = proc_dointvec_minmax,
371da177e4SLinus Torvalds .extra1 = &min_timer,
381da177e4SLinus Torvalds .extra2 = &max_timer,
391da177e4SLinus Torvalds },
401da177e4SLinus Torvalds {
411da177e4SLinus Torvalds .procname = "reset_request_timeout",
421da177e4SLinus Torvalds .data = &sysctl_x25_reset_request_timeout,
431da177e4SLinus Torvalds .maxlen = sizeof(int),
441da177e4SLinus Torvalds .mode = 0644,
456d9f239aSAlexey Dobriyan .proc_handler = proc_dointvec_minmax,
461da177e4SLinus Torvalds .extra1 = &min_timer,
471da177e4SLinus Torvalds .extra2 = &max_timer,
481da177e4SLinus Torvalds },
491da177e4SLinus Torvalds {
501da177e4SLinus Torvalds .procname = "clear_request_timeout",
511da177e4SLinus Torvalds .data = &sysctl_x25_clear_request_timeout,
521da177e4SLinus Torvalds .maxlen = sizeof(int),
531da177e4SLinus Torvalds .mode = 0644,
546d9f239aSAlexey Dobriyan .proc_handler = proc_dointvec_minmax,
551da177e4SLinus Torvalds .extra1 = &min_timer,
561da177e4SLinus Torvalds .extra2 = &max_timer,
571da177e4SLinus Torvalds },
581da177e4SLinus Torvalds {
591da177e4SLinus Torvalds .procname = "acknowledgement_hold_back_timeout",
601da177e4SLinus Torvalds .data = &sysctl_x25_ack_holdback_timeout,
611da177e4SLinus Torvalds .maxlen = sizeof(int),
621da177e4SLinus Torvalds .mode = 0644,
636d9f239aSAlexey Dobriyan .proc_handler = proc_dointvec_minmax,
641da177e4SLinus Torvalds .extra1 = &min_timer,
651da177e4SLinus Torvalds .extra2 = &max_timer,
661da177e4SLinus Torvalds },
6739e21c0dSAndrew Hendry {
6839e21c0dSAndrew Hendry .procname = "x25_forward",
6939e21c0dSAndrew Hendry .data = &sysctl_x25_forward,
7039e21c0dSAndrew Hendry .maxlen = sizeof(int),
7139e21c0dSAndrew Hendry .mode = 0644,
726d9f239aSAlexey Dobriyan .proc_handler = proc_dointvec,
7339e21c0dSAndrew Hendry },
74e999cb43SKees Cook { },
751da177e4SLinus Torvalds };
761da177e4SLinus Torvalds
x25_register_sysctl(void)7764df6d52Slinzhang int __init x25_register_sysctl(void)
781da177e4SLinus Torvalds {
79ec8f23ceSEric W. Biederman x25_table_header = register_net_sysctl(&init_net, "net/x25", x25_table);
8064df6d52Slinzhang if (!x25_table_header)
8164df6d52Slinzhang return -ENOMEM;
8264df6d52Slinzhang return 0;
831da177e4SLinus Torvalds }
841da177e4SLinus Torvalds
x25_unregister_sysctl(void)851da177e4SLinus Torvalds void x25_unregister_sysctl(void)
861da177e4SLinus Torvalds {
875dd3df10SEric W. Biederman unregister_net_sysctl_table(x25_table_header);
881da177e4SLinus Torvalds }
89