# 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
	help
	  This option enables Bluetooth support.

if BLUETOOTH
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
	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
	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
	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
	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.

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"
	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_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_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
	select BLUETOOTH_CONN
	help
	  This option enables Bluetooth BR/EDR support"

endif # BLUETOOTH
