Home | History | Annotate | Line # | Download | only in netbt
bt_sysctl.c revision 1.2.104.1
      1 /*	$NetBSD: bt_sysctl.c,v 1.2.104.1 2014/08/20 00:04:35 tls Exp $	*/
      2 
      3 /*-
      4  * Copyright (c) 2005 Iain Hibbert.
      5  * Copyright (c) 2006 Itronix Inc.
      6  * All rights reserved.
      7  *
      8  * Redistribution and use in source and binary forms, with or without
      9  * modification, are permitted provided that the following conditions
     10  * are met:
     11  * 1. Redistributions of source code must retain the above copyright
     12  *    notice, this list of conditions and the following disclaimer.
     13  * 2. Redistributions in binary form must reproduce the above copyright
     14  *    notice, this list of conditions and the following disclaimer in the
     15  *    documentation and/or other materials provided with the distribution.
     16  * 3. The name of Itronix Inc. may not be used to endorse
     17  *    or promote products derived from this software without specific
     18  *    prior written permission.
     19  *
     20  * THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND
     21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     22  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     23  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY
     24  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     25  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     26  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     27  * ON ANY THEORY OF LIABILITY, WHETHER IN
     28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     30  * POSSIBILITY OF SUCH DAMAGE.
     31  */
     32 
     33 #include <sys/cdefs.h>
     34 __KERNEL_RCSID(0, "$NetBSD: bt_sysctl.c,v 1.2.104.1 2014/08/20 00:04:35 tls Exp $");
     35 
     36 #include <sys/param.h>
     37 #include <sys/kernel.h>
     38 #include <sys/mbuf.h>
     39 #include <sys/proc.h>
     40 #include <sys/sysctl.h>
     41 #include <sys/systm.h>
     42 
     43 #include <netbt/bluetooth.h>
     44 #include <netbt/hci.h>
     45 #include <netbt/l2cap.h>
     46 #include <netbt/rfcomm.h>
     47 #include <netbt/sco.h>
     48 
     49 SYSCTL_SETUP(sysctl_net_bluetooth_setup, "sysctl net.bluetooth subtree setup")
     50 {
     51 
     52 	sysctl_createv(clog, 0, NULL, NULL,
     53 		CTLFLAG_PERMANENT,
     54 		CTLTYPE_NODE, "bluetooth",
     55 		SYSCTL_DESCR("Bluetooth Protocol Family"),
     56 		NULL, 0,
     57 		NULL, 0,
     58 		CTL_NET, PF_BLUETOOTH, CTL_EOL);
     59 
     60 #ifdef BLUETOOTH_DEBUG
     61 	sysctl_createv(clog, 0, NULL, NULL,
     62 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
     63 		CTLTYPE_INT, "debug",
     64 		SYSCTL_DESCR("debug level"),
     65 		NULL, 0,
     66 		&bluetooth_debug, sizeof(bluetooth_debug),
     67 		CTL_NET, PF_BLUETOOTH,
     68 		CTL_CREATE, CTL_EOL);
     69 #endif
     70 
     71 	sysctl_createv(clog, 0, NULL, NULL,
     72 		CTLFLAG_PERMANENT,
     73 		CTLTYPE_NODE, "hci",
     74 		SYSCTL_DESCR("Host Controller Interface"),
     75 		NULL, 0,
     76 		NULL, 0,
     77 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI, CTL_EOL);
     78 
     79 	sysctl_createv(clog, 0, NULL, NULL,
     80 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
     81 		CTLTYPE_INT, "sendspace",
     82 		SYSCTL_DESCR("Socket Send Buffer Size"),
     83 		NULL, 0,
     84 		&hci_sendspace, sizeof(hci_sendspace),
     85 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI,
     86 		CTL_CREATE, CTL_EOL);
     87 
     88 	sysctl_createv(clog, 0, NULL, NULL,
     89 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
     90 		CTLTYPE_INT, "recvspace",
     91 		SYSCTL_DESCR("Socket Receive Buffer Size"),
     92 		NULL, 0,
     93 		&hci_recvspace, sizeof(hci_recvspace),
     94 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI,
     95 		CTL_CREATE, CTL_EOL);
     96 
     97 	sysctl_createv(clog, 0, NULL, NULL,
     98 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
     99 		CTLTYPE_INT, "acl_expiry",
    100 		SYSCTL_DESCR("ACL Connection Expiry Time"),
    101 		NULL, 0,
    102 		&hci_acl_expiry, sizeof(hci_acl_expiry),
    103 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI,
    104 		CTL_CREATE, CTL_EOL);
    105 
    106 	sysctl_createv(clog, 0, NULL, NULL,
    107 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    108 		CTLTYPE_INT, "memo_expiry",
    109 		SYSCTL_DESCR("Memo Expiry Time"),
    110 		NULL, 0,
    111 		&hci_memo_expiry, sizeof(hci_memo_expiry),
    112 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI,
    113 		CTL_CREATE, CTL_EOL);
    114 
    115 	sysctl_createv(clog, 0, NULL, NULL,
    116 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    117 		CTLTYPE_INT, "eventq_max",
    118 		SYSCTL_DESCR("Max Event queue length"),
    119 		NULL, 0,
    120 		&hci_eventq_max, sizeof(hci_eventq_max),
    121 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI,
    122 		CTL_CREATE, CTL_EOL);
    123 
    124 	sysctl_createv(clog, 0, NULL, NULL,
    125 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    126 		CTLTYPE_INT, "aclrxq_max",
    127 		SYSCTL_DESCR("Max ACL rx queue length"),
    128 		NULL, 0,
    129 		&hci_aclrxq_max, sizeof(hci_aclrxq_max),
    130 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI,
    131 		CTL_CREATE, CTL_EOL);
    132 
    133 	sysctl_createv(clog, 0, NULL, NULL,
    134 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    135 		CTLTYPE_INT, "scorxq_max",
    136 		SYSCTL_DESCR("Max SCO rx queue length"),
    137 		NULL, 0,
    138 		&hci_scorxq_max, sizeof(hci_scorxq_max),
    139 		CTL_NET, PF_BLUETOOTH, BTPROTO_HCI,
    140 		CTL_CREATE, CTL_EOL);
    141 
    142 	sysctl_createv(clog, 0, NULL, NULL,
    143 		CTLFLAG_PERMANENT,
    144 		CTLTYPE_NODE, "l2cap",
    145 		SYSCTL_DESCR("Logical Link Control & Adapataion Protocol"),
    146 		NULL, 0, NULL, 0,
    147 		CTL_NET, PF_BLUETOOTH, BTPROTO_L2CAP, CTL_EOL);
    148 
    149 	sysctl_createv(clog, 0, NULL, NULL,
    150 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    151 		CTLTYPE_INT, "sendspace",
    152 		SYSCTL_DESCR("Socket Send Buffer Size"),
    153 		NULL, 0,
    154 		&l2cap_sendspace, sizeof(l2cap_sendspace),
    155 		CTL_NET, PF_BLUETOOTH, BTPROTO_L2CAP,
    156 		CTL_CREATE, CTL_EOL);
    157 
    158 	sysctl_createv(clog, 0, NULL, NULL,
    159 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    160 		CTLTYPE_INT, "recvspace",
    161 		SYSCTL_DESCR("Socket Receive Buffer Size"),
    162 		NULL, 0,
    163 		&l2cap_recvspace, sizeof(l2cap_recvspace),
    164 		CTL_NET, PF_BLUETOOTH, BTPROTO_L2CAP,
    165 		CTL_CREATE, CTL_EOL);
    166 
    167 	sysctl_createv(clog, 0, NULL, NULL,
    168 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    169 		CTLTYPE_INT, "rtx",
    170 		SYSCTL_DESCR("Response Timeout"),
    171 		NULL, 0,
    172 		&l2cap_response_timeout, sizeof(l2cap_response_timeout),
    173 		CTL_NET, PF_BLUETOOTH, BTPROTO_L2CAP,
    174 		CTL_CREATE, CTL_EOL);
    175 
    176 	sysctl_createv(clog, 0, NULL, NULL,
    177 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    178 		CTLTYPE_INT, "ertx",
    179 		SYSCTL_DESCR("Extended Response Timeout"),
    180 		NULL, 0,
    181 		&l2cap_response_extended_timeout,
    182 		sizeof(l2cap_response_extended_timeout),
    183 		CTL_NET, PF_BLUETOOTH, BTPROTO_L2CAP,
    184 		CTL_CREATE, CTL_EOL);
    185 
    186 	sysctl_createv(clog, 0, NULL, NULL,
    187 		CTLFLAG_PERMANENT,
    188 		CTLTYPE_NODE, "rfcomm",
    189 		SYSCTL_DESCR("Serial Cable Emulation"),
    190 		NULL, 0, NULL, 0,
    191 		CTL_NET, PF_BLUETOOTH, BTPROTO_RFCOMM, CTL_EOL);
    192 
    193 	sysctl_createv(clog, 0, NULL, NULL,
    194 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    195 		CTLTYPE_INT, "sendspace",
    196 		SYSCTL_DESCR("Socket Send Buffer Size"),
    197 		NULL, 0,
    198 		&rfcomm_sendspace, sizeof(rfcomm_sendspace),
    199 		CTL_NET, PF_BLUETOOTH, BTPROTO_RFCOMM,
    200 		CTL_CREATE, CTL_EOL);
    201 
    202 	sysctl_createv(clog, 0, NULL, NULL,
    203 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    204 		CTLTYPE_INT, "recvspace",
    205 		SYSCTL_DESCR("Socket Receive Buffer Size"),
    206 		NULL, 0,
    207 		&rfcomm_recvspace, sizeof(rfcomm_recvspace),
    208 		CTL_NET, PF_BLUETOOTH, BTPROTO_RFCOMM,
    209 		CTL_CREATE, CTL_EOL);
    210 
    211 	sysctl_createv(clog, 0, NULL, NULL,
    212 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    213 		CTLTYPE_INT, "mtu_default",
    214 		SYSCTL_DESCR("Default MTU"),
    215 		NULL, 0,
    216 		&rfcomm_mtu_default, sizeof(rfcomm_mtu_default),
    217 		CTL_NET, PF_BLUETOOTH, BTPROTO_RFCOMM,
    218 		CTL_CREATE, CTL_EOL);
    219 
    220 	sysctl_createv(clog, 0, NULL, NULL,
    221 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    222 		CTLTYPE_INT, "ack_timeout",
    223 		SYSCTL_DESCR("Acknowledgement Timer"),
    224 		NULL, 0,
    225 		&rfcomm_ack_timeout, sizeof(rfcomm_ack_timeout),
    226 		CTL_NET, PF_BLUETOOTH, BTPROTO_RFCOMM,
    227 		CTL_CREATE, CTL_EOL);
    228 
    229 	sysctl_createv(clog, 0, NULL, NULL,
    230 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    231 		CTLTYPE_INT, "mcc_timeout",
    232 		SYSCTL_DESCR("Response Timeout for Multiplexer Control Channel"),
    233 		NULL, 0,
    234 		&rfcomm_mcc_timeout, sizeof(rfcomm_mcc_timeout),
    235 		CTL_NET, PF_BLUETOOTH, BTPROTO_RFCOMM,
    236 		CTL_CREATE, CTL_EOL);
    237 
    238 	sysctl_createv(clog, 0, NULL, NULL,
    239 		CTLFLAG_PERMANENT,
    240 		CTLTYPE_NODE, "sco",
    241 		SYSCTL_DESCR("SCO data"),
    242 		NULL, 0, NULL, 0,
    243 		CTL_NET, PF_BLUETOOTH, BTPROTO_SCO, CTL_EOL);
    244 
    245 	sysctl_createv(clog, 0, NULL, NULL,
    246 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    247 		CTLTYPE_INT, "sendspace",
    248 		SYSCTL_DESCR("Socket Send Buffer Size"),
    249 		NULL, 0,
    250 		&sco_sendspace, sizeof(sco_sendspace),
    251 		CTL_NET, PF_BLUETOOTH, BTPROTO_SCO,
    252 		CTL_CREATE, CTL_EOL);
    253 
    254 	sysctl_createv(clog, 0, NULL, NULL,
    255 		CTLFLAG_PERMANENT | CTLFLAG_READWRITE,
    256 		CTLTYPE_INT, "recvspace",
    257 		SYSCTL_DESCR("Socket Receive Buffer Size"),
    258 		NULL, 0,
    259 		&sco_recvspace, sizeof(sco_recvspace),
    260 		CTL_NET, PF_BLUETOOTH, BTPROTO_SCO,
    261 		CTL_CREATE, CTL_EOL);
    262 }
    263