# 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_PRIVACY bool "Privacy Feature" default n help Enable local Privacy Feature support. This makes it possible to use Resolvable Private Addresses (RPAs). 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