| # Kconfig - Bluetooth LE stack configuration options |
| |
| # |
| # Copyright (c) 2015 Intel Corporation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| menuconfig BLUETOOTH |
| bool "Bluetooth support" |
| default n |
| select NANO_TIMEOUTS |
| select NET_BUF |
| select BLUETOOTH_LE if !BLUETOOTH_STACK_NBLE |
| help |
| This option enables Bluetooth support. |
| |
| choice |
| prompt "Bluetooth Stack Selection" |
| depends on BLUETOOTH |
| default BLUETOOTH_STACK_HCI |
| help |
| Select the Bluetooth stack to compile. |
| |
| config BLUETOOTH_STACK_HCI |
| bool "HCI Stack" |
| help |
| Select the Bluetooth stack to use with HCI drivers. |
| |
| config BLUETOOTH_STACK_NBLE |
| bool "Nordic BLE Stack" |
| help |
| Select the Bluetooth stack to use with Nordic BLE drivers. |
| |
| endchoice |
| |
| if BLUETOOTH |
| |
| comment "HCI Stack Configurations" |
| depends on BLUETOOTH_STACK_HCI |
| |
| config BLUETOOTH_LE |
| bool "Bluetooth Low Energy (LE) support" |
| default n |
| select TINYCRYPT |
| select TINYCRYPT_AES if BLUETOOTH_SMP |
| select TINYCRYPT_AES_CMAC if BLUETOOTH_SMP |
| select TINYCRYPT_SHA256 |
| select TINYCRYPT_SHA256_HMAC |
| select TINYCRYPT_SHA256_HMAC_PRNG |
| depends on BLUETOOTH_STACK_HCI |
| help |
| This option enables Bluetooth Low Energy (LE) support. |
| Currently it is mandatory whenever Bluetooth support |
| (CONFIG_BLUETOOTH) is enabled. |
| |
| if BLUETOOTH_LE |
| config BLUETOOTH_HCI_CMD_COUNT |
| int "Number of HCI command buffers" |
| default 2 |
| range 2 64 |
| help |
| Number of buffers available for HCI commands. |
| |
| config BLUETOOTH_MAX_CMD_LEN |
| int "Maximum supported HCI command length" |
| default 64 |
| range 64 255 |
| help |
| Maximum length of each HCI command. |
| |
| config BLUETOOTH_HCI_EVT_COUNT |
| int "Number of HCI event buffers" |
| default 8 if BLUETOOTH_CONN |
| default 4 if !BLUETOOTH_CONN |
| range 2 64 |
| help |
| Number of buffers available for HCI events. This number should |
| ideally be at least as large as the available outgoing buffers |
| to make sure we've got enough buffers to handle bursts of |
| Number of Completed Packets HCI events. |
| |
| config BLUETOOTH_MAX_EVT_LEN |
| int "Maximum supported HCI event length" |
| default 68 if !BLUETOOTH_BREDR |
| default 255 if BLUETOOTH_BREDR |
| range 68 255 |
| help |
| Maximum size of each HCI event buffer. E.g. one big event |
| for LE is the Command Complete for Read Local Supported |
| Commands. It is a 3 byte Command Complete header + 65 byte |
| return parameters = 68 bytes in total. |
| |
| config BLUETOOTH_RX_STACK_SIZE |
| int "Size of the receiving fiber stack" |
| default 1024 |
| range 1024 65536 |
| help |
| Size of the receiving fiber stack. This is the context from |
| which all event callbacks to the application occur. The |
| default value is sufficient for basic operation, but if the |
| application needs to do advanced things in its callbacks that |
| require extra stack space, this value can be increased to |
| accomodate for that. |
| |
| config BLUETOOTH_PERIPHERAL |
| bool "Peripheral Role support" |
| default n |
| select BLUETOOTH_CONN |
| help |
| Select this for LE Peripheral role support. |
| |
| config BLUETOOTH_CENTRAL |
| bool "Central Role support" |
| default n |
| select BLUETOOTH_CONN |
| help |
| Select this for LE Central role support. |
| |
| config BLUETOOTH_CONN |
| bool |
| default n |
| |
| if BLUETOOTH_CONN |
| config BLUETOOTH_ACL_IN_COUNT |
| int "Number of incoming ACL data buffers" |
| default 5 |
| range 2 64 |
| help |
| Number of buffers available for incoming ACL data. |
| |
| config BLUETOOTH_L2CAP_IN_MTU |
| int "Maximum supported L2CAP MTU for incoming data" |
| default 65 if BLUETOOTH_SMP |
| default 23 if !BLUETOOTH_SMP |
| range 65 1300 if BLUETOOTH_SMP |
| range 23 1300 if !BLUETOOTH_SMP |
| help |
| Maximum size of each incoming L2CAP PDU. |
| |
| config BLUETOOTH_ATT_MTU |
| int "Attribute Protocol (ATT) channel MTU" |
| default 50 if BLUETOOTH_SMP # BLUETOOTH_L2CAP_IN_MTU is big enough |
| # for two complete ACL packets |
| default 23 if !BLUETOOTH_SMP |
| range 23 BLUETOOTH_L2CAP_IN_MTU |
| help |
| The MTU for the ATT channel. The minimum and default is 23, |
| whereas the maximum is limited by CONFIG_BLUETOOTH_L2CAP_IN_MTU. |
| |
| config BLUETOOTH_SMP |
| bool "Security Manager Protocol support" |
| default n |
| help |
| This option enables support for the Security Manager Protocol |
| (SMP), making it possible to pair devices over LE. |
| |
| if BLUETOOTH_SMP |
| config BLUETOOTH_SIGNING |
| bool "Data signing support" |
| default n |
| help |
| This option enables data signing which is used for transferring |
| authenticated data in an unencrypted connection. |
| |
| config BLUETOOTH_SMP_SC_ONLY |
| bool "Secure Connections Only Mode" |
| default n |
| help |
| This option enables support for Secure Connection Only Mode. In this |
| mode device shall only use Security Mode 1 Level 4 with exception |
| for services that only require Security Mode 1 Level 1 (no security). |
| Security Mode 1 Level 4 stands for authenticated LE Secure Connections |
| pairing with encryption. Enabling this option disables legacy pairing. |
| |
| config BLUETOOTH_TINYCRYPT_ECC |
| bool "Use TinyCrypt library for LE SC ECDH" |
| default n |
| select TINYCRYPT_ECC_DH |
| help |
| If this option is set TinyCrypt library is also used for LE Secure |
| Connections elliptic curve Diffie-Hellman key agreement. If not set |
| controller crypto is used for ECDH and if controller doesn't support |
| required HCI commands LE Secure Connections support will be disabled. |
| |
| config BLUETOOTH_USE_DEBUG_KEYS |
| bool "Enable Security Manager Debug Mode" |
| default n |
| depends on BLUETOOTH_TINYCRYPT_ECC |
| help |
| This option places Security Manager in a Debug Mode. In this mode |
| predefined Diffie-Hellman private/public key pair is used as described |
| in Core Specification Vol. 3, Part H, 2.3.5.6.1. This option should |
| only be enabled for debugging and should never be used in production. |
| If this option is enabled anyone is able to decipher encrypted air |
| traffic. |
| |
| endif # BLUETOOTH_SMP |
| |
| config BLUETOOTH_L2CAP_DYNAMIC_CHANNEL |
| bool "L2CAP Dynamic Channel support" |
| default n |
| help |
| This option enables support for LE Connection oriented Channels, |
| allowing the creation of dynamic L2CAP Channels. |
| |
| config BLUETOOTH_GATT_DYNAMIC_DB |
| bool "GATT dynamic database support" |
| default n |
| help |
| This option enables GATT services to be added dynamically to database. |
| |
| config BLUETOOTH_GATT_CLIENT |
| bool "GATT client support" |
| default n |
| help |
| This option enables support for the GATT Client role. |
| |
| config BLUETOOTH_MAX_CONN |
| int "Maximum number of simultaneous connections" |
| default 1 |
| range 1 16 |
| help |
| Maximum number of simultaneous Bluetooth connections |
| supported. The minimum (and default) number is 1. |
| |
| config BLUETOOTH_MAX_PAIRED |
| int "Maximum number of paired devices" |
| default 1 |
| range 1 32 |
| help |
| Maximum number of paired Bluetooth devices. The minimum (and |
| default) number is 1. |
| |
| endif # BLUETOOTH_CONN |
| |
| endif # BLUETOOTH_LE |
| |
| config BLUETOOTH_DEBUG |
| bool "Bluetooth debug support" |
| select STDOUT_CONSOLE |
| default n |
| help |
| This option enables Bluetooth debug going to standard |
| serial console. |
| |
| if BLUETOOTH_DEBUG |
| config BLUETOOTH_DEBUG_COLOR |
| bool "Use colored logs" |
| default y |
| help |
| Use color in the logs. This requires an ANSI capable terminal. |
| |
| config BLUETOOTH_DEBUG_HCI_CORE |
| bool "Bluetooth HCI core debug" |
| depends on BLUETOOTH_STACK_HCI |
| default n |
| help |
| This option enables debug support for Bluetooth HCI |
| core. |
| |
| config BLUETOOTH_DEBUG_CONN |
| bool "Bluetooth connection debug" |
| depends on BLUETOOTH_CONN |
| default n |
| help |
| This option enables debug support for Bluetooth |
| connection handling. |
| |
| config BLUETOOTH_DEBUG_KEYS |
| bool "Bluetooth security keys debug" |
| depends on BLUETOOTH_STACK_HCI |
| depends on BLUETOOTH_SMP |
| default n |
| help |
| This option enables debug support for the handling of |
| Bluetooth security keys. |
| |
| config BLUETOOTH_DEBUG_L2CAP |
| bool "Bluetooth L2CAP debug" |
| depends on BLUETOOTH_CONN |
| default n |
| help |
| This option enables debug support for the Bluetooth |
| L2ACP layer. |
| |
| config BLUETOOTH_DEBUG_SMP |
| bool "Bluetooth Security Manager Protocol (SMP) debug" |
| depends on BLUETOOTH_STACK_HCI |
| depends on BLUETOOTH_SMP |
| default n |
| help |
| This option enables debug support for the Bluetooth |
| Security Manager Protocol (SMP). |
| |
| config BLUETOOTH_SMP_SELFTEST |
| bool "Bluetooth SMP self tests executed on init" |
| depends on BLUETOOTH_DEBUG_SMP |
| default n |
| help |
| This option enables SMP self-tests executed on startup |
| to verify security and crypto functions. |
| |
| config BLUETOOTH_DEBUG_ATT |
| bool "Bluetooth Attribute Protocol (ATT) debug" |
| depends on BLUETOOTH_CONN |
| default n |
| help |
| This option enables debug support for the Bluetooth |
| Attribute Protocol (ATT). |
| |
| config BLUETOOTH_DEBUG_GATT |
| bool "Bluetooth Generic Attribute Profile (GATT) debug" |
| depends on BLUETOOTH_CONN |
| default n |
| help |
| This option enables debug support for the Bluetooth |
| Generic Attribute Profile (GATT). |
| |
| endif # BLUETOOTH_DEBUG |
| |
| config BLUETOOTH_BREDR |
| bool "Bluetooth BR/EDR support [EXPERIMENTAL]" |
| default n |
| depends on BLUETOOTH_STACK_HCI |
| select BLUETOOTH_CONN |
| help |
| This option enables Bluetooth BR/EDR support" |
| |
| endif # BLUETOOTH |