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 /* Values measured in seconds but used in jiffies */
68 .procname
= "max_call_lifetime",
69 .data
= &rxrpc_max_call_lifetime
,
70 .maxlen
= sizeof(unsigned int),
72 .proc_handler
= proc_dointvec_jiffies
,
73 .extra1
= (void *)&one
,
76 .procname
= "dead_call_expiry",
77 .data
= &rxrpc_dead_call_expiry
,
78 .maxlen
= sizeof(unsigned int),
80 .proc_handler
= proc_dointvec_jiffies
,
81 .extra1
= (void *)&one
,
84 /* Values measured in seconds */
86 .procname
= "connection_expiry",
87 .data
= &rxrpc_connection_expiry
,
88 .maxlen
= sizeof(unsigned int),
90 .proc_handler
= proc_dointvec_minmax
,
91 .extra1
= (void *)&one
,
96 .procname
= "max_backlog",
97 .data
= &rxrpc_max_backlog
,
98 .maxlen
= sizeof(unsigned int),
100 .proc_handler
= proc_dointvec_minmax
,
101 .extra1
= (void *)&four
,
102 .extra2
= (void *)&thirtytwo
,
105 .procname
= "rx_window_size",
106 .data
= &rxrpc_rx_window_size
,
107 .maxlen
= sizeof(unsigned int),
109 .proc_handler
= proc_dointvec_minmax
,
110 .extra1
= (void *)&one
,
111 .extra2
= (void *)&n_max_acks
,
114 .procname
= "rx_mtu",
115 .data
= &rxrpc_rx_mtu
,
116 .maxlen
= sizeof(unsigned int),
118 .proc_handler
= proc_dointvec_minmax
,
119 .extra1
= (void *)&one
,
120 .extra2
= (void *)&n_65535
,
123 .procname
= "rx_jumbo_max",
124 .data
= &rxrpc_rx_jumbo_max
,
125 .maxlen
= sizeof(unsigned int),
127 .proc_handler
= proc_dointvec_minmax
,
128 .extra1
= (void *)&one
,
129 .extra2
= (void *)&four
,
135 int __init
rxrpc_sysctl_init(void)
137 rxrpc_sysctl_reg_table
= register_net_sysctl(&init_net
, "net/rxrpc",
139 if (!rxrpc_sysctl_reg_table
)
144 void rxrpc_sysctl_exit(void)
146 if (rxrpc_sysctl_reg_table
)
147 unregister_net_sysctl_table(rxrpc_sysctl_reg_table
);