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