linux/net/rose/sysctl_net_rose.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-or-later
   2/*
   3 *
   4 * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com)
   5 */
   6#include <linux/mm.h>
   7#include <linux/sysctl.h>
   8#include <linux/init.h>
   9#include <net/ax25.h>
  10#include <net/rose.h>
  11
  12static int min_timer[]  = {1 * HZ};
  13static int max_timer[]  = {300 * HZ};
  14static int min_idle[]   = {0 * HZ};
  15static int max_idle[]   = {65535 * HZ};
  16static int min_route[1],       max_route[] = {1};
  17static int min_ftimer[] = {60 * HZ};
  18static int max_ftimer[] = {600 * HZ};
  19static int min_maxvcs[] = {1}, max_maxvcs[] = {254};
  20static int min_window[] = {1}, max_window[] = {7};
  21
  22static struct ctl_table_header *rose_table_header;
  23
  24static struct ctl_table rose_table[] = {
  25        {
  26                .procname       = "restart_request_timeout",
  27                .data           = &sysctl_rose_restart_request_timeout,
  28                .maxlen         = sizeof(int),
  29                .mode           = 0644,
  30                .proc_handler   = proc_dointvec_minmax,
  31                .extra1         = &min_timer,
  32                .extra2         = &max_timer
  33        },
  34        {
  35                .procname       = "call_request_timeout",
  36                .data           = &sysctl_rose_call_request_timeout,
  37                .maxlen         = sizeof(int),
  38                .mode           = 0644,
  39                .proc_handler   = proc_dointvec_minmax,
  40                .extra1         = &min_timer,
  41                .extra2         = &max_timer
  42        },
  43        {
  44                .procname       = "reset_request_timeout",
  45                .data           = &sysctl_rose_reset_request_timeout,
  46                .maxlen         = sizeof(int),
  47                .mode           = 0644,
  48                .proc_handler   = proc_dointvec_minmax,
  49                .extra1         = &min_timer,
  50                .extra2         = &max_timer
  51        },
  52        {
  53                .procname       = "clear_request_timeout",
  54                .data           = &sysctl_rose_clear_request_timeout,
  55                .maxlen         = sizeof(int),
  56                .mode           = 0644,
  57                .proc_handler   = proc_dointvec_minmax,
  58                .extra1         = &min_timer,
  59                .extra2         = &max_timer
  60        },
  61        {
  62                .procname       = "no_activity_timeout",
  63                .data           = &sysctl_rose_no_activity_timeout,
  64                .maxlen         = sizeof(int),
  65                .mode           = 0644,
  66                .proc_handler   = proc_dointvec_minmax,
  67                .extra1         = &min_idle,
  68                .extra2         = &max_idle
  69        },
  70        {
  71                .procname       = "acknowledge_hold_back_timeout",
  72                .data           = &sysctl_rose_ack_hold_back_timeout,
  73                .maxlen         = sizeof(int),
  74                .mode           = 0644,
  75                .proc_handler   = proc_dointvec_minmax,
  76                .extra1         = &min_timer,
  77                .extra2         = &max_timer
  78        },
  79        {
  80                .procname       = "routing_control",
  81                .data           = &sysctl_rose_routing_control,
  82                .maxlen         = sizeof(int),
  83                .mode           = 0644,
  84                .proc_handler   = proc_dointvec_minmax,
  85                .extra1         = &min_route,
  86                .extra2         = &max_route
  87        },
  88        {
  89                .procname       = "link_fail_timeout",
  90                .data           = &sysctl_rose_link_fail_timeout,
  91                .maxlen         = sizeof(int),
  92                .mode           = 0644,
  93                .proc_handler   = proc_dointvec_minmax,
  94                .extra1         = &min_ftimer,
  95                .extra2         = &max_ftimer
  96        },
  97        {
  98                .procname       = "maximum_virtual_circuits",
  99                .data           = &sysctl_rose_maximum_vcs,
 100                .maxlen         = sizeof(int),
 101                .mode           = 0644,
 102                .proc_handler   = proc_dointvec_minmax,
 103                .extra1         = &min_maxvcs,
 104                .extra2         = &max_maxvcs
 105        },
 106        {
 107                .procname       = "window_size",
 108                .data           = &sysctl_rose_window_size,
 109                .maxlen         = sizeof(int),
 110                .mode           = 0644,
 111                .proc_handler   = proc_dointvec_minmax,
 112                .extra1         = &min_window,
 113                .extra2         = &max_window
 114        },
 115        { }
 116};
 117
 118void __init rose_register_sysctl(void)
 119{
 120        rose_table_header = register_net_sysctl(&init_net, "net/rose", rose_table);
 121}
 122
 123void rose_unregister_sysctl(void)
 124{
 125        unregister_net_sysctl_table(rose_table_header);
 126}
 127