162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * net/tipc/sysctl.c: sysctl interface to TIPC subsystem 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright (c) 2013, Wind River Systems 562306a36Sopenharmony_ci * All rights reserved. 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Redistribution and use in source and binary forms, with or without 862306a36Sopenharmony_ci * modification, are permitted provided that the following conditions are met: 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * 1. Redistributions of source code must retain the above copyright 1162306a36Sopenharmony_ci * notice, this list of conditions and the following disclaimer. 1262306a36Sopenharmony_ci * 2. Redistributions in binary form must reproduce the above copyright 1362306a36Sopenharmony_ci * notice, this list of conditions and the following disclaimer in the 1462306a36Sopenharmony_ci * documentation and/or other materials provided with the distribution. 1562306a36Sopenharmony_ci * 3. Neither the names of the copyright holders nor the names of its 1662306a36Sopenharmony_ci * contributors may be used to endorse or promote products derived from 1762306a36Sopenharmony_ci * this software without specific prior written permission. 1862306a36Sopenharmony_ci * 1962306a36Sopenharmony_ci * Alternatively, this software may be distributed under the terms of the 2062306a36Sopenharmony_ci * GNU General Public License ("GPL") version 2 as published by the Free 2162306a36Sopenharmony_ci * Software Foundation. 2262306a36Sopenharmony_ci * 2362306a36Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2462306a36Sopenharmony_ci * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2562306a36Sopenharmony_ci * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2662306a36Sopenharmony_ci * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2762306a36Sopenharmony_ci * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2862306a36Sopenharmony_ci * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2962306a36Sopenharmony_ci * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 3062306a36Sopenharmony_ci * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 3162306a36Sopenharmony_ci * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 3262306a36Sopenharmony_ci * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 3362306a36Sopenharmony_ci * POSSIBILITY OF SUCH DAMAGE. 3462306a36Sopenharmony_ci */ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#include "core.h" 3762306a36Sopenharmony_ci#include "trace.h" 3862306a36Sopenharmony_ci#include "crypto.h" 3962306a36Sopenharmony_ci#include "bcast.h" 4062306a36Sopenharmony_ci#include <linux/sysctl.h> 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_cistatic struct ctl_table_header *tipc_ctl_hdr; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_cistatic struct ctl_table tipc_table[] = { 4562306a36Sopenharmony_ci { 4662306a36Sopenharmony_ci .procname = "tipc_rmem", 4762306a36Sopenharmony_ci .data = &sysctl_tipc_rmem, 4862306a36Sopenharmony_ci .maxlen = sizeof(sysctl_tipc_rmem), 4962306a36Sopenharmony_ci .mode = 0644, 5062306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 5162306a36Sopenharmony_ci .extra1 = SYSCTL_ONE, 5262306a36Sopenharmony_ci }, 5362306a36Sopenharmony_ci { 5462306a36Sopenharmony_ci .procname = "named_timeout", 5562306a36Sopenharmony_ci .data = &sysctl_tipc_named_timeout, 5662306a36Sopenharmony_ci .maxlen = sizeof(sysctl_tipc_named_timeout), 5762306a36Sopenharmony_ci .mode = 0644, 5862306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 5962306a36Sopenharmony_ci .extra1 = SYSCTL_ZERO, 6062306a36Sopenharmony_ci }, 6162306a36Sopenharmony_ci { 6262306a36Sopenharmony_ci .procname = "sk_filter", 6362306a36Sopenharmony_ci .data = &sysctl_tipc_sk_filter, 6462306a36Sopenharmony_ci .maxlen = sizeof(sysctl_tipc_sk_filter), 6562306a36Sopenharmony_ci .mode = 0644, 6662306a36Sopenharmony_ci .proc_handler = proc_doulongvec_minmax, 6762306a36Sopenharmony_ci }, 6862306a36Sopenharmony_ci#ifdef CONFIG_TIPC_CRYPTO 6962306a36Sopenharmony_ci { 7062306a36Sopenharmony_ci .procname = "max_tfms", 7162306a36Sopenharmony_ci .data = &sysctl_tipc_max_tfms, 7262306a36Sopenharmony_ci .maxlen = sizeof(sysctl_tipc_max_tfms), 7362306a36Sopenharmony_ci .mode = 0644, 7462306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 7562306a36Sopenharmony_ci .extra1 = SYSCTL_ONE, 7662306a36Sopenharmony_ci }, 7762306a36Sopenharmony_ci { 7862306a36Sopenharmony_ci .procname = "key_exchange_enabled", 7962306a36Sopenharmony_ci .data = &sysctl_tipc_key_exchange_enabled, 8062306a36Sopenharmony_ci .maxlen = sizeof(sysctl_tipc_key_exchange_enabled), 8162306a36Sopenharmony_ci .mode = 0644, 8262306a36Sopenharmony_ci .proc_handler = proc_dointvec_minmax, 8362306a36Sopenharmony_ci .extra1 = SYSCTL_ZERO, 8462306a36Sopenharmony_ci .extra2 = SYSCTL_ONE, 8562306a36Sopenharmony_ci }, 8662306a36Sopenharmony_ci#endif 8762306a36Sopenharmony_ci { 8862306a36Sopenharmony_ci .procname = "bc_retruni", 8962306a36Sopenharmony_ci .data = &sysctl_tipc_bc_retruni, 9062306a36Sopenharmony_ci .maxlen = sizeof(sysctl_tipc_bc_retruni), 9162306a36Sopenharmony_ci .mode = 0644, 9262306a36Sopenharmony_ci .proc_handler = proc_doulongvec_minmax, 9362306a36Sopenharmony_ci }, 9462306a36Sopenharmony_ci {} 9562306a36Sopenharmony_ci}; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ciint tipc_register_sysctl(void) 9862306a36Sopenharmony_ci{ 9962306a36Sopenharmony_ci tipc_ctl_hdr = register_net_sysctl(&init_net, "net/tipc", tipc_table); 10062306a36Sopenharmony_ci if (tipc_ctl_hdr == NULL) 10162306a36Sopenharmony_ci return -ENOMEM; 10262306a36Sopenharmony_ci return 0; 10362306a36Sopenharmony_ci} 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_civoid tipc_unregister_sysctl(void) 10662306a36Sopenharmony_ci{ 10762306a36Sopenharmony_ci unregister_net_sysctl_table(tipc_ctl_hdr); 10862306a36Sopenharmony_ci} 109