xref: /openbmc/linux/net/tipc/sysctl.c (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
1cc79dd1bSYing Xue /*
2cc79dd1bSYing Xue  * net/tipc/sysctl.c: sysctl interface to TIPC subsystem
3cc79dd1bSYing Xue  *
4cc79dd1bSYing Xue  * Copyright (c) 2013, Wind River Systems
5cc79dd1bSYing Xue  * All rights reserved.
6cc79dd1bSYing Xue  *
7cc79dd1bSYing Xue  * Redistribution and use in source and binary forms, with or without
8cc79dd1bSYing Xue  * modification, are permitted provided that the following conditions are met:
9cc79dd1bSYing Xue  *
10cc79dd1bSYing Xue  * 1. Redistributions of source code must retain the above copyright
11cc79dd1bSYing Xue  *    notice, this list of conditions and the following disclaimer.
12cc79dd1bSYing Xue  * 2. Redistributions in binary form must reproduce the above copyright
13cc79dd1bSYing Xue  *    notice, this list of conditions and the following disclaimer in the
14cc79dd1bSYing Xue  *    documentation and/or other materials provided with the distribution.
15cc79dd1bSYing Xue  * 3. Neither the names of the copyright holders nor the names of its
16cc79dd1bSYing Xue  *    contributors may be used to endorse or promote products derived from
17cc79dd1bSYing Xue  *    this software without specific prior written permission.
18cc79dd1bSYing Xue  *
19cc79dd1bSYing Xue  * Alternatively, this software may be distributed under the terms of the
20cc79dd1bSYing Xue  * GNU General Public License ("GPL") version 2 as published by the Free
21cc79dd1bSYing Xue  * Software Foundation.
22cc79dd1bSYing Xue  *
23cc79dd1bSYing Xue  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24cc79dd1bSYing Xue  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25cc79dd1bSYing Xue  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26cc79dd1bSYing Xue  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27cc79dd1bSYing Xue  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28cc79dd1bSYing Xue  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29cc79dd1bSYing Xue  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30cc79dd1bSYing Xue  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31cc79dd1bSYing Xue  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32cc79dd1bSYing Xue  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33cc79dd1bSYing Xue  * POSSIBILITY OF SUCH DAMAGE.
34cc79dd1bSYing Xue  */
35cc79dd1bSYing Xue 
36cc79dd1bSYing Xue #include "core.h"
3701e661ebSTuong Lien #include "trace.h"
38fc1b6d6dSTuong Lien #include "crypto.h"
39a91d55d1STuong Lien #include "bcast.h"
40cc79dd1bSYing Xue #include <linux/sysctl.h>
41cc79dd1bSYing Xue 
42cc79dd1bSYing Xue static struct ctl_table_header *tipc_ctl_hdr;
43cc79dd1bSYing Xue 
44cc79dd1bSYing Xue static struct ctl_table tipc_table[] = {
45cc79dd1bSYing Xue 	{
46cc79dd1bSYing Xue 		.procname	= "tipc_rmem",
47cc79dd1bSYing Xue 		.data		= &sysctl_tipc_rmem,
48cc79dd1bSYing Xue 		.maxlen		= sizeof(sysctl_tipc_rmem),
49cc79dd1bSYing Xue 		.mode		= 0644,
504bcd4ec1SJie Liu 		.proc_handler	= proc_dointvec_minmax,
51eec4844fSMatteo Croce 		.extra1         = SYSCTL_ONE,
52cc79dd1bSYing Xue 	},
53a5325ae5SErik Hugne 	{
54a5325ae5SErik Hugne 		.procname	= "named_timeout",
55a5325ae5SErik Hugne 		.data		= &sysctl_tipc_named_timeout,
56a5325ae5SErik Hugne 		.maxlen		= sizeof(sysctl_tipc_named_timeout),
57a5325ae5SErik Hugne 		.mode		= 0644,
584bcd4ec1SJie Liu 		.proc_handler	= proc_dointvec_minmax,
59eec4844fSMatteo Croce 		.extra1         = SYSCTL_ZERO,
60a5325ae5SErik Hugne 	},
6101e661ebSTuong Lien 	{
6201e661ebSTuong Lien 		.procname       = "sk_filter",
6301e661ebSTuong Lien 		.data           = &sysctl_tipc_sk_filter,
6401e661ebSTuong Lien 		.maxlen         = sizeof(sysctl_tipc_sk_filter),
6501e661ebSTuong Lien 		.mode           = 0644,
6601e661ebSTuong Lien 		.proc_handler   = proc_doulongvec_minmax,
6701e661ebSTuong Lien 	},
68fc1b6d6dSTuong Lien #ifdef CONFIG_TIPC_CRYPTO
69fc1b6d6dSTuong Lien 	{
70fc1b6d6dSTuong Lien 		.procname	= "max_tfms",
71fc1b6d6dSTuong Lien 		.data		= &sysctl_tipc_max_tfms,
72fc1b6d6dSTuong Lien 		.maxlen		= sizeof(sysctl_tipc_max_tfms),
73fc1b6d6dSTuong Lien 		.mode		= 0644,
74fc1b6d6dSTuong Lien 		.proc_handler	= proc_dointvec_minmax,
75fc1b6d6dSTuong Lien 		.extra1         = SYSCTL_ONE,
76fc1b6d6dSTuong Lien 	},
77*1ef6f7c9STuong Lien 	{
78*1ef6f7c9STuong Lien 		.procname	= "key_exchange_enabled",
79*1ef6f7c9STuong Lien 		.data		= &sysctl_tipc_key_exchange_enabled,
80*1ef6f7c9STuong Lien 		.maxlen		= sizeof(sysctl_tipc_key_exchange_enabled),
81*1ef6f7c9STuong Lien 		.mode		= 0644,
82*1ef6f7c9STuong Lien 		.proc_handler	= proc_dointvec_minmax,
83*1ef6f7c9STuong Lien 		.extra1         = SYSCTL_ZERO,
84*1ef6f7c9STuong Lien 		.extra2         = SYSCTL_ONE,
85*1ef6f7c9STuong Lien 	},
86fc1b6d6dSTuong Lien #endif
87a91d55d1STuong Lien 	{
88a91d55d1STuong Lien 		.procname	= "bc_retruni",
89a91d55d1STuong Lien 		.data		= &sysctl_tipc_bc_retruni,
90a91d55d1STuong Lien 		.maxlen		= sizeof(sysctl_tipc_bc_retruni),
91a91d55d1STuong Lien 		.mode		= 0644,
92a91d55d1STuong Lien 		.proc_handler	= proc_doulongvec_minmax,
93a91d55d1STuong Lien 	},
94cc79dd1bSYing Xue 	{}
95cc79dd1bSYing Xue };
96cc79dd1bSYing Xue 
tipc_register_sysctl(void)97cc79dd1bSYing Xue int tipc_register_sysctl(void)
98cc79dd1bSYing Xue {
99cc79dd1bSYing Xue 	tipc_ctl_hdr = register_net_sysctl(&init_net, "net/tipc", tipc_table);
100cc79dd1bSYing Xue 	if (tipc_ctl_hdr == NULL)
101cc79dd1bSYing Xue 		return -ENOMEM;
102cc79dd1bSYing Xue 	return 0;
103cc79dd1bSYing Xue }
104cc79dd1bSYing Xue 
tipc_unregister_sysctl(void)105cc79dd1bSYing Xue void tipc_unregister_sysctl(void)
106cc79dd1bSYing Xue {
107cc79dd1bSYing Xue 	unregister_net_sysctl_table(tipc_ctl_hdr);
108cc79dd1bSYing Xue }
109