~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/net/rxrpc/sysctl.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0-or-later
  2 /* sysctls for configuring RxRPC operating parameters
  3  *
  4  * Copyright (C) 2014 Red Hat, Inc. All Rights Reserved.
  5  * Written by David Howells (dhowells@redhat.com)
  6  */
  7 
  8 #include <linux/sysctl.h>
  9 #include <net/sock.h>
 10 #include <net/af_rxrpc.h>
 11 #include "ar-internal.h"
 12 
 13 static struct ctl_table_header *rxrpc_sysctl_reg_table;
 14 static const unsigned int four = 4;
 15 static const unsigned int max_backlog = RXRPC_BACKLOG_MAX - 1;
 16 static const unsigned int n_65535 = 65535;
 17 static const unsigned int n_max_acks = 255;
 18 static const unsigned long one_ms = 1;
 19 static const unsigned long max_ms = 1000;
 20 static const unsigned long one_jiffy = 1;
 21 static const unsigned long max_jiffies = MAX_JIFFY_OFFSET;
 22 #ifdef CONFIG_AF_RXRPC_INJECT_RX_DELAY
 23 static const unsigned long max_500 = 500;
 24 #endif
 25 
 26 /*
 27  * RxRPC operating parameters.
 28  *
 29  * See Documentation/networking/rxrpc.rst and the variable definitions for more
 30  * information on the individual parameters.
 31  */
 32 static struct ctl_table rxrpc_sysctl_table[] = {
 33         /* Values measured in milliseconds */
 34         {
 35                 .procname       = "soft_ack_delay",
 36                 .data           = &rxrpc_soft_ack_delay,
 37                 .maxlen         = sizeof(unsigned long),
 38                 .mode           = 0644,
 39                 .proc_handler   = proc_doulongvec_minmax,
 40                 .extra1         = (void *)&one_ms,
 41                 .extra2         = (void *)&max_ms,
 42         },
 43         {
 44                 .procname       = "idle_ack_delay",
 45                 .data           = &rxrpc_idle_ack_delay,
 46                 .maxlen         = sizeof(unsigned long),
 47                 .mode           = 0644,
 48                 .proc_handler   = proc_doulongvec_minmax,
 49                 .extra1         = (void *)&one_ms,
 50                 .extra2         = (void *)&max_ms,
 51         },
 52         {
 53                 .procname       = "idle_conn_expiry",
 54                 .data           = &rxrpc_conn_idle_client_expiry,
 55                 .maxlen         = sizeof(unsigned long),
 56                 .mode           = 0644,
 57                 .proc_handler   = proc_doulongvec_ms_jiffies_minmax,
 58                 .extra1         = (void *)&one_jiffy,
 59                 .extra2         = (void *)&max_jiffies,
 60         },
 61         {
 62                 .procname       = "idle_conn_fast_expiry",
 63                 .data           = &rxrpc_conn_idle_client_fast_expiry,
 64                 .maxlen         = sizeof(unsigned long),
 65                 .mode           = 0644,
 66                 .proc_handler   = proc_doulongvec_ms_jiffies_minmax,
 67                 .extra1         = (void *)&one_jiffy,
 68                 .extra2         = (void *)&max_jiffies,
 69         },
 70 
 71         /* Values used in milliseconds */
 72 #ifdef CONFIG_AF_RXRPC_INJECT_RX_DELAY
 73         {
 74                 .procname       = "inject_rx_delay",
 75                 .data           = &rxrpc_inject_rx_delay,
 76                 .maxlen         = sizeof(unsigned long),
 77                 .mode           = 0644,
 78                 .proc_handler   = proc_doulongvec_minmax,
 79                 .extra1         = (void *)SYSCTL_LONG_ZERO,
 80                 .extra2         = (void *)&max_500,
 81         },
 82 #endif
 83 
 84         /* Non-time values */
 85         {
 86                 .procname       = "reap_client_conns",
 87                 .data           = &rxrpc_reap_client_connections,
 88                 .maxlen         = sizeof(unsigned int),
 89                 .mode           = 0644,
 90                 .proc_handler   = proc_dointvec_minmax,
 91                 .extra1         = (void *)SYSCTL_ONE,
 92                 .extra2         = (void *)&n_65535,
 93         },
 94         {
 95                 .procname       = "max_backlog",
 96                 .data           = &rxrpc_max_backlog,
 97                 .maxlen         = sizeof(unsigned int),
 98                 .mode           = 0644,
 99                 .proc_handler   = proc_dointvec_minmax,
100                 .extra1         = (void *)&four,
101                 .extra2         = (void *)&max_backlog,
102         },
103         {
104                 .procname       = "rx_window_size",
105                 .data           = &rxrpc_rx_window_size,
106                 .maxlen         = sizeof(unsigned int),
107                 .mode           = 0644,
108                 .proc_handler   = proc_dointvec_minmax,
109                 .extra1         = (void *)SYSCTL_ONE,
110                 .extra2         = (void *)&n_max_acks,
111         },
112         {
113                 .procname       = "rx_mtu",
114                 .data           = &rxrpc_rx_mtu,
115                 .maxlen         = sizeof(unsigned int),
116                 .mode           = 0644,
117                 .proc_handler   = proc_dointvec_minmax,
118                 .extra1         = (void *)SYSCTL_ONE,
119                 .extra2         = (void *)&n_65535,
120         },
121         {
122                 .procname       = "rx_jumbo_max",
123                 .data           = &rxrpc_rx_jumbo_max,
124                 .maxlen         = sizeof(unsigned int),
125                 .mode           = 0644,
126                 .proc_handler   = proc_dointvec_minmax,
127                 .extra1         = (void *)SYSCTL_ONE,
128                 .extra2         = (void *)&four,
129         },
130 };
131 
132 int __init rxrpc_sysctl_init(void)
133 {
134         rxrpc_sysctl_reg_table = register_net_sysctl(&init_net, "net/rxrpc",
135                                                      rxrpc_sysctl_table);
136         if (!rxrpc_sysctl_reg_table)
137                 return -ENOMEM;
138         return 0;
139 }
140 
141 void rxrpc_sysctl_exit(void)
142 {
143         if (rxrpc_sysctl_reg_table)
144                 unregister_net_sysctl_table(rxrpc_sysctl_reg_table);
145 }
146 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php