1 /* sysctls for configuring RxRPC operating parameters
3 * Copyright (C) 2014 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
12 #include <linux/sysctl.h>
14 #include <net/af_rxrpc.h>
15 #include "ar-internal.h"
17 static struct ctl_table_header
*rxrpc_sysctl_reg_table
;
18 static const unsigned int zero
= 0;
19 static const unsigned int one
= 1;
20 static const unsigned int four
= 4;
21 static const unsigned int thirtytwo
= 32;
22 static const unsigned int n_65535
= 65535;
23 static const unsigned int n_max_acks
= RXRPC_MAXACKS
;
26 * RxRPC operating parameters.
28 * See Documentation/networking/rxrpc.txt and the variable definitions for more
29 * information on the individual parameters.
31 static struct ctl_table rxrpc_sysctl_table
[] = {
32 /* Values measured in milliseconds */
34 .procname
= "req_ack_delay",
35 .data
= &rxrpc_requested_ack_delay
,
36 .maxlen
= sizeof(unsigned int),
38 .proc_handler
= proc_dointvec_ms_jiffies
,
39 .extra1
= (void *)&zero
,
42 .procname
= "soft_ack_delay",
43 .data
= &rxrpc_soft_ack_delay
,
44 .maxlen
= sizeof(unsigned int),
46 .proc_handler
= proc_dointvec_ms_jiffies
,
47 .extra1
= (void *)&one
,
50 .procname
= "idle_ack_delay",
51 .data
= &rxrpc_idle_ack_delay
,
52 .maxlen
= sizeof(unsigned int),
54 .proc_handler
= proc_dointvec_ms_jiffies
,
55 .extra1
= (void *)&one
,
58 .procname
= "resend_timeout",
59 .data
= &rxrpc_resend_timeout
,
60 .maxlen
= sizeof(unsigned int),
62 .proc_handler
= proc_dointvec_ms_jiffies
,
63 .extra1
= (void *)&one
,
66 .procname
= "idle_conn_expiry",
67 .data
= &rxrpc_conn_idle_client_expiry
,
68 .maxlen
= sizeof(unsigned int),
70 .proc_handler
= proc_dointvec_ms_jiffies
,
71 .extra1
= (void *)&one
,
74 .procname
= "idle_conn_fast_expiry",
75 .data
= &rxrpc_conn_idle_client_fast_expiry
,
76 .maxlen
= sizeof(unsigned int),
78 .proc_handler
= proc_dointvec_ms_jiffies
,
79 .extra1
= (void *)&one
,
82 /* Values measured in seconds but used in jiffies */
84 .procname
= "max_call_lifetime",
85 .data
= &rxrpc_max_call_lifetime
,
86 .maxlen
= sizeof(unsigned int),
88 .proc_handler
= proc_dointvec_jiffies
,
89 .extra1
= (void *)&one
,
92 .procname
= "dead_call_expiry",
93 .data
= &rxrpc_dead_call_expiry
,
94 .maxlen
= sizeof(unsigned int),
96 .proc_handler
= proc_dointvec_jiffies
,
97 .extra1
= (void *)&one
,
100 /* Non-time values */
102 .procname
= "max_client_conns",
103 .data
= &rxrpc_max_client_connections
,
104 .maxlen
= sizeof(unsigned int),
106 .proc_handler
= proc_dointvec_minmax
,
107 .extra1
= (void *)&rxrpc_reap_client_connections
,
110 .procname
= "reap_client_conns",
111 .data
= &rxrpc_reap_client_connections
,
112 .maxlen
= sizeof(unsigned int),
114 .proc_handler
= proc_dointvec_minmax
,
115 .extra1
= (void *)&one
,
116 .extra2
= (void *)&rxrpc_max_client_connections
,
119 .procname
= "max_backlog",
120 .data
= &rxrpc_max_backlog
,
121 .maxlen
= sizeof(unsigned int),
123 .proc_handler
= proc_dointvec_minmax
,
124 .extra1
= (void *)&four
,
125 .extra2
= (void *)&thirtytwo
,
128 .procname
= "rx_window_size",
129 .data
= &rxrpc_rx_window_size
,
130 .maxlen
= sizeof(unsigned int),
132 .proc_handler
= proc_dointvec_minmax
,
133 .extra1
= (void *)&one
,
134 .extra2
= (void *)&n_max_acks
,
137 .procname
= "rx_mtu",
138 .data
= &rxrpc_rx_mtu
,
139 .maxlen
= sizeof(unsigned int),
141 .proc_handler
= proc_dointvec_minmax
,
142 .extra1
= (void *)&one
,
143 .extra2
= (void *)&n_65535
,
146 .procname
= "rx_jumbo_max",
147 .data
= &rxrpc_rx_jumbo_max
,
148 .maxlen
= sizeof(unsigned int),
150 .proc_handler
= proc_dointvec_minmax
,
151 .extra1
= (void *)&one
,
152 .extra2
= (void *)&four
,
158 int __init
rxrpc_sysctl_init(void)
160 rxrpc_sysctl_reg_table
= register_net_sysctl(&init_net
, "net/rxrpc",
162 if (!rxrpc_sysctl_reg_table
)
167 void rxrpc_sysctl_exit(void)
169 if (rxrpc_sysctl_reg_table
)
170 unregister_net_sysctl_table(rxrpc_sysctl_reg_table
);