862 lines
28 KiB
Plaintext
862 lines
28 KiB
Plaintext
# Bluetooth LE stack configuration options
|
|
|
|
# Copyright (c) 2016-2020 Nordic Semiconductor ASA
|
|
# Copyright (c) 2015-2016 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
comment "Host Stack Configuration"
|
|
|
|
config BT_HCI_HOST
|
|
# Hidden option to make the conditions more intuitive
|
|
bool
|
|
default y
|
|
depends on !BT_HCI_RAW
|
|
select POLL
|
|
|
|
config BT_HCI_CMD_COUNT
|
|
int "Number of HCI command buffers"
|
|
default 2
|
|
range 2 64
|
|
help
|
|
Number of buffers available for HCI commands.
|
|
|
|
config BT_RX_BUF_COUNT
|
|
int "Number of HCI RX buffers"
|
|
default NET_BUF_RX_COUNT if NET_L2_BT
|
|
default 3 if BT_RECV_IS_RX_THREAD
|
|
default 20 if (BT_MESH && !(BT_DISCARDABLE_BUF_COUNT > 0))
|
|
default 10
|
|
range 2 255
|
|
help
|
|
Number of buffers available for incoming ACL packets or HCI events
|
|
from the controller.
|
|
|
|
config BT_RX_BUF_LEN
|
|
int "Maximum supported HCI RX buffer length"
|
|
default 264 if BT_BREDR
|
|
default 258 if BT_EXT_ADV
|
|
default 77 if BT_MESH_PROXY
|
|
default 76
|
|
range 73 2000
|
|
help
|
|
Maximum data size for each HCI RX buffer. This size includes
|
|
everything starting with the ACL or HCI event headers. Note that
|
|
buffer sizes are always rounded up to the nearest multiple of 4,
|
|
so if this Kconfig value is something else then there will be some
|
|
wasted space. The minimum of 73 has been taken for LE SC which has
|
|
an L2CAP MTU of 65 bytes. On top of this there's the L2CAP header
|
|
(4 bytes) and the ACL header (also 4 bytes) which yields 73 bytes.
|
|
|
|
config BT_DISCARDABLE_BUF_COUNT
|
|
int "Number of discardable event buffers"
|
|
range 1 255
|
|
default 20 if BT_MESH
|
|
default 3
|
|
depends on BT_H4 || BT_RPMSG || BT_CTLR
|
|
help
|
|
Number of buffers in a separate buffer pool for events which
|
|
the HCI driver considers discardable. Examples of such events
|
|
could be e.g. Advertising Reports. The benefit of having such
|
|
a pool means that the if there is a heavy inflow of such events
|
|
it will not cause the allocation for other critical events to
|
|
block and may even eliminate deadlocks in some cases.
|
|
|
|
config BT_DISCARDABLE_BUF_SIZE
|
|
int "Size of discardable event buffers"
|
|
range 45 257
|
|
default 257 if BT_BREDR || BT_EXT_ADV
|
|
default 45
|
|
help
|
|
Size of buffers in the separate discardable event buffer pool.
|
|
The minimum size is set based on the Advertising Report. Setting
|
|
the buffer size different than BT_RX_BUF_LEN can save memory.
|
|
|
|
config BT_HCI_TX_STACK_SIZE
|
|
# NOTE: This value is derived from other symbols and should only be
|
|
# changed if required by architecture
|
|
int
|
|
prompt "HCI Tx thread stack size" if BT_HCI_TX_STACK_SIZE_WITH_PROMPT
|
|
default 512 if BT_H4
|
|
default 512 if BT_H5
|
|
default 416 if BT_SPI
|
|
default 940 if BT_CTLR && BT_LL_SW_SPLIT && NO_OPTIMIZATIONS
|
|
default 1024 if BT_CTLR && BT_LL_SW_SPLIT && BT_CENTRAL
|
|
default 640 if BT_CTLR && BT_LL_SW_SPLIT
|
|
default 512 if BT_USERCHAN
|
|
default 640 if BT_STM32_IPM
|
|
# Even if no driver is selected the following default is still
|
|
# needed e.g. for unit tests. This default will also server as
|
|
# the worst-case stack size if an out-of-tree controller is used.
|
|
default 1024
|
|
help
|
|
Stack size needed for executing bt_send with specified driver.
|
|
NOTE: This is an advanced setting and should not be changed unless
|
|
absolutely necessary. To change this you must first select
|
|
BT_HCI_TX_STACK_SIZE_WITH_PROMPT.
|
|
|
|
config BT_HCI_TX_STACK_SIZE_WITH_PROMPT
|
|
bool "Override HCI Tx thread stack size"
|
|
|
|
config BT_HCI_ECC_STACK_SIZE
|
|
# NOTE: This value is derived from other symbols and should only be
|
|
# changed if required by architecture
|
|
int "HCI ECC thread stack size"
|
|
default 1100
|
|
help
|
|
NOTE: This is an advanced setting and should not be changed unless
|
|
absolutely necessary
|
|
|
|
config BT_HCI_TX_PRIO
|
|
# Hidden option for Co-Operative Tx thread priority
|
|
int
|
|
default 7
|
|
|
|
config BT_HCI_RESERVE
|
|
int
|
|
default 0 if BT_H4
|
|
default 1 if BT_H5
|
|
default 1 if BT_RPMSG
|
|
default 1 if BT_SPI
|
|
default 1 if BT_STM32_IPM
|
|
default 1 if BT_USERCHAN
|
|
# Even if no driver is selected the following default is still
|
|
# needed e.g. for unit tests.
|
|
default 0
|
|
help
|
|
Headroom that the driver needs for sending and receiving buffers. Add a
|
|
new 'default' entry for each new driver.
|
|
|
|
config BT_HCI_ACL_DATA_SIZE
|
|
int
|
|
prompt "ACL data buffer size" if !BT_CTLR
|
|
depends on BT_HCI_RAW
|
|
range 27 251
|
|
default BT_CTLR_DATA_LENGTH_MAX if BT_CTLR_DATA_LENGTH
|
|
default 27
|
|
help
|
|
Maximum ACL data payload in HCI packets, excluding HCI header.
|
|
|
|
config BT_RECV_IS_RX_THREAD
|
|
# Hidden option set by the HCI driver to indicate that there's
|
|
# no need for the host to have its own RX thread.
|
|
# If this option has been enabled it is then the responsibility of the
|
|
# HCI driver to call bt_recv_prio from a higher priority context than
|
|
# bt_recv in order to avoid deadlocks.
|
|
# If this option is disabled then only bt_recv should be called.
|
|
bool
|
|
prompt "bt_recv is called from RX thread" if BT_NO_DRIVER
|
|
|
|
config BT_RX_STACK_SIZE
|
|
int "Size of the receiving thread stack"
|
|
depends on BT_HCI_HOST || BT_RECV_IS_RX_THREAD
|
|
default 512 if BT_HCI_RAW
|
|
default 2048 if BT_MESH
|
|
default 2200 if BT_SETTINGS
|
|
default 1024
|
|
help
|
|
Size of the receiving thread 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
|
|
accommodate for that.
|
|
|
|
config BT_RX_PRIO
|
|
# Hidden option for Co-Operative Rx thread priority
|
|
int
|
|
depends on BT_HCI_HOST || BT_RECV_IS_RX_THREAD
|
|
default 8
|
|
|
|
config BT_DRIVER_RX_HIGH_PRIO
|
|
# Hidden option for Co-Operative HCI driver RX thread priority
|
|
int
|
|
default 6
|
|
|
|
if BT_HCI_HOST
|
|
|
|
config BT_HOST_CRYPTO
|
|
# Hidden option that compiles in random number generation and AES
|
|
# encryption support using TinyCrypt library if this is not provided
|
|
# by the controller implementation.
|
|
bool
|
|
default y if !BT_CTLR_CRYPTO
|
|
select TINYCRYPT
|
|
select TINYCRYPT_AES
|
|
select TINYCRYPT_SHA256
|
|
select TINYCRYPT_SHA256_HMAC
|
|
select TINYCRYPT_SHA256_HMAC_PRNG
|
|
|
|
config BT_SETTINGS
|
|
bool "Store Bluetooth state and configuration persistently"
|
|
depends on SETTINGS
|
|
select MPU_ALLOW_FLASH_WRITE if ARM_MPU
|
|
help
|
|
When selected, the Bluetooth stack will take care of storing
|
|
(and restoring) the Bluetooth state (e.g. pairing keys) and
|
|
configuration persistently in flash.
|
|
|
|
When this option has been enabled, it's important that the
|
|
application makes a call to settings_load() after having done
|
|
all necessary initialization (e.g. calling bt_enable). The
|
|
reason settings_load() is handled externally to the stack, is
|
|
that there may be other subsystems using the settings API, in
|
|
which case it's more efficient to load all settings in one go,
|
|
instead of each subsystem doing it independently.
|
|
|
|
if BT_SETTINGS
|
|
config BT_SETTINGS_CCC_LAZY_LOADING
|
|
bool "Load CCC values from settings when peer connects"
|
|
default y
|
|
help
|
|
Load Client Configuration Characteristic setting right after a bonded
|
|
device connects.
|
|
Disabling this option will increase memory usage as CCC values for all
|
|
bonded devices will be loaded when calling settings_load.
|
|
|
|
config BT_SETTINGS_CCC_STORE_ON_WRITE
|
|
bool "Store CCC value immediately after it has been written"
|
|
help
|
|
Store Client Configuration Characteristic value right after it has
|
|
been updated.
|
|
|
|
By default, CCC is only stored on disconnection.
|
|
Choosing this option is safer for battery-powered devices or devices
|
|
that expect to be reset suddenly. However, it requires additional
|
|
workqueue stack space.
|
|
|
|
config BT_SETTINGS_USE_PRINTK
|
|
bool "Use snprintk to encode Bluetooth settings key strings"
|
|
depends on SETTINGS && PRINTK
|
|
default y
|
|
help
|
|
When selected, Bluetooth settings will use snprintk to encode
|
|
key strings.
|
|
When not selected, Bluetooth settings will use a faster builtin
|
|
function to encode the key string. The drawback is that if
|
|
printk is enabled then the program memory footprint will be larger.
|
|
endif # BT_SETTINGS
|
|
|
|
config BT_WHITELIST
|
|
bool "Enable whitelist support"
|
|
help
|
|
This option enables the whitelist API. This takes advantage of the
|
|
whitelisting feature of a BLE controller.
|
|
The whitelist is a global list and the same whitelist is used
|
|
by both scanner and advertiser. The whitelist cannot be modified while
|
|
it is in use.
|
|
|
|
An Advertiser can whitelist which peers can connect or request scan
|
|
response data.
|
|
A scanner can whitelist advertiser for which it will generate
|
|
advertising reports.
|
|
Connections can be established automatically for whitelisted peers.
|
|
|
|
This options deprecates the bt_le_set_auto_conn API in favor of the
|
|
bt_conn_create_aute_le API.
|
|
|
|
if BT_CONN
|
|
|
|
config BT_ACL_RX_COUNT
|
|
int "Number of incoming ACL data buffers"
|
|
default BT_CTLR_RX_BUFFERS if BT_CTLR
|
|
default NET_BUF_RX_COUNT if NET_L2_BT
|
|
default 6
|
|
range 1 64
|
|
depends on BT_HCI_ACL_FLOW_CONTROL
|
|
help
|
|
Number of buffers available for incoming ACL data.
|
|
|
|
config BT_CONN_TX_MAX
|
|
int "Maximum number of pending TX buffers with a callback"
|
|
default BT_L2CAP_TX_BUF_COUNT
|
|
range BT_L2CAP_TX_BUF_COUNT 255
|
|
help
|
|
Maximum number of pending TX buffers that have an associated
|
|
callback. Normally this can be left to the default value, which
|
|
is equal to the number of TX buffers in the stack-internal pool.
|
|
|
|
config BT_USER_PHY_UPDATE
|
|
bool "User control of PHY Update Procedure"
|
|
depends on BT_PHY_UPDATE
|
|
help
|
|
Enable application access to initiate the PHY Update Procedure.
|
|
The application can also register a callback to be notified about PHY
|
|
changes on the connection. The current PHY info is available in the
|
|
connection info.
|
|
|
|
config BT_AUTO_PHY_UPDATE
|
|
bool "Auto-initiate PHY Update Procedure"
|
|
depends on BT_PHY_UPDATE
|
|
default y if !BT_USER_PHY_UPDATE
|
|
help
|
|
Initiate PHY Update Procedure on connection establishment.
|
|
|
|
Disable this if you want the PHY Update Procedure feature supported
|
|
but want to rely on the remote device to initiate the procedure at its
|
|
discretion or want to initiate manually.
|
|
|
|
config BT_USER_DATA_LEN_UPDATE
|
|
bool "User control of Data Length Update Procedure"
|
|
depends on BT_DATA_LEN_UPDATE
|
|
help
|
|
Enable application access to initiate the Data Length Update
|
|
Procedure. The application can also a register callback to be notified
|
|
about Data Length changes on the connection. The current Data Length
|
|
info is available in the connection info.
|
|
|
|
config BT_AUTO_DATA_LEN_UPDATE
|
|
bool "Auto-initiate Data Length Update procedure"
|
|
depends on BT_DATA_LEN_UPDATE
|
|
default y if !BT_USER_DATA_LEN_UPDATE
|
|
help
|
|
Initiate Data Length Update Procedure on connection establishment.
|
|
|
|
Disable this if you want the Data Length Update Procedure feature
|
|
supported but want to rely on the remote device to initiate the
|
|
procedure at its discretion or want to initiate manually.
|
|
|
|
config BT_REMOTE_INFO
|
|
bool "Enable application access to remote information"
|
|
help
|
|
Enable application access to the remote information available in the
|
|
stack. The remote information is retrieved once a connection has been
|
|
established and the application will be notified when this information
|
|
is available through the remote_version_available connection callback.
|
|
|
|
config BT_REMOTE_VERSION
|
|
bool "Enable remote version information"
|
|
depends on BT_REMOTE_INFO
|
|
help
|
|
Enable this to get access to the remote version through
|
|
the remote_version_available callback. The host will automatically ask
|
|
the remote device after the connection has been established.
|
|
|
|
config BT_SMP
|
|
bool "Security Manager Protocol support"
|
|
select TINYCRYPT
|
|
select TINYCRYPT_AES
|
|
select TINYCRYPT_AES_CMAC
|
|
select BT_RPA
|
|
select BT_ECC
|
|
help
|
|
This option enables support for the Security Manager Protocol
|
|
(SMP), making it possible to pair devices over LE.
|
|
|
|
if BT_SMP
|
|
config BT_PRIVACY
|
|
bool "Privacy Feature"
|
|
help
|
|
Enable local Privacy Feature support. This makes it possible
|
|
to use Resolvable Private Addresses (RPAs).
|
|
|
|
config BT_RPA_TIMEOUT
|
|
int "Resolvable Private Address timeout"
|
|
depends on BT_PRIVACY
|
|
default 900
|
|
range 1 65535
|
|
help
|
|
This option defines how often resolvable private address is rotated.
|
|
Value is provided in seconds and defaults to 900 seconds (15 minutes).
|
|
|
|
config BT_SIGNING
|
|
bool "Data signing support"
|
|
help
|
|
This option enables data signing which is used for transferring
|
|
authenticated data in an unencrypted connection.
|
|
|
|
config BT_SMP_APP_PAIRING_ACCEPT
|
|
bool "Accept or reject pairing initiative"
|
|
help
|
|
When receiving pairing request or pairing response query the
|
|
application whether to accept to proceed with pairing or not. This is
|
|
for pairing over SMP and does not affect SSP, which will continue
|
|
pairing without querying the application.
|
|
The application can return an error code, which is translated into
|
|
a SMP return value if the pairing is not allowed.
|
|
|
|
config BT_SMP_SC_PAIR_ONLY
|
|
bool "Disable legacy pairing"
|
|
help
|
|
This option disables LE legacy pairing and forces LE secure connection
|
|
pairing. All Security Mode 1 levels can be used with legacy pairing
|
|
disabled, but pairing with devices that do not support secure
|
|
connections pairing will not be supported.
|
|
To force a higher security level use "Secure Connections Only Mode"
|
|
|
|
config BT_SMP_SC_ONLY
|
|
bool "Secure Connections Only Mode"
|
|
select BT_SMP_SC_PAIR_ONLY
|
|
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 BT_SMP_OOB_LEGACY_PAIR_ONLY
|
|
bool "Force Out Of Band Legacy pairing"
|
|
depends on !(BT_SMP_SC_PAIR_ONLY || BT_SMP_SC_ONLY)
|
|
help
|
|
This option disables Legacy and LE SC pairing and forces legacy OOB.
|
|
|
|
config BT_SMP_DISABLE_LEGACY_JW_PASSKEY
|
|
bool "Forbid usage of insecure legacy pairing methods"
|
|
depends on !(BT_SMP_SC_PAIR_ONLY || BT_SMP_SC_ONLY || \
|
|
BT_SMP_OOB_LEGACY_PAIR_ONLY)
|
|
help
|
|
This option disables Just Works and Passkey legacy pairing methods to
|
|
increase security.
|
|
|
|
config BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
|
bool "Allow unauthenticated pairing for paired device"
|
|
help
|
|
This option allows all unauthenticated pairing attempts made by the
|
|
peer where an unauthenticated bond already exists.
|
|
This would enable cases where an attacker could copy the peer device
|
|
address to connect and start an unauthenticated pairing procedure
|
|
to replace the existing bond. When this option is disabled in order
|
|
to create a new bond the old bond has to be explicitly deleted with
|
|
bt_unpair.
|
|
|
|
config BT_SMP_USB_HCI_CTLR_WORKAROUND
|
|
bool "Workaround for USB HCI controller out-of-order events"
|
|
depends on BT_TESTING
|
|
help
|
|
This option enables support for USB HCI controllers that sometimes
|
|
send out-of-order HCI events and ACL Data due to using different USB
|
|
endpoints.
|
|
Enabling this option will make the master role not require the
|
|
encryption-change event to be received before accepting key-distribution
|
|
data.
|
|
It opens up for a potential vulnerability as the master cannot detect
|
|
if the keys are distributed over an encrypted link.
|
|
|
|
config BT_FIXED_PASSKEY
|
|
bool "Use a fixed passkey for pairing"
|
|
help
|
|
With this option enabled, the application will be able to call the
|
|
bt_passkey_set() API to set a fixed passkey. If set, the
|
|
pairing_confim() callback will be called for all incoming pairings.
|
|
|
|
config BT_USE_DEBUG_KEYS
|
|
bool "Enable Security Manager Debug Mode"
|
|
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.
|
|
|
|
WARNING: This option enables anyone to decrypt on-air traffic.
|
|
Use of this feature in production is strongly discouraged.
|
|
|
|
config BT_BONDABLE
|
|
bool "Bondable Mode"
|
|
default y
|
|
help
|
|
This option enables support for Bondable Mode. In this mode,
|
|
Bonding flag in AuthReq of SMP Pairing Request/Response will be set
|
|
indicating the support for this mode.
|
|
|
|
config BT_BONDING_REQUIRED
|
|
bool "Always require bonding"
|
|
depends on BT_BONDABLE
|
|
help
|
|
When this option is enabled remote devices are required to always
|
|
set the bondable flag in their pairing request. Any other kind of
|
|
requests will be rejected.
|
|
|
|
config BT_STORE_DEBUG_KEYS
|
|
bool "Store Debug Mode bonds"
|
|
help
|
|
This option enables support for storing bonds where either of devices
|
|
is using the predefined Diffie-Hellman private/public key pair as
|
|
described in the Core Specification Vol 3, Part H, 2.3.5.6.1.
|
|
|
|
WARNING: This option potentially enables anyone to decrypt on-air
|
|
traffic.
|
|
Use of this feature in production is strongly discouraged.
|
|
|
|
config BT_SMP_ENFORCE_MITM
|
|
bool "Enforce MITM protection"
|
|
default y
|
|
help
|
|
With this option enabled, the Security Manager will set MITM option in
|
|
the Authentication Requirements Flags whenever local IO Capabilities
|
|
allow the generated key to be authenticated.
|
|
|
|
config BT_OOB_DATA_FIXED
|
|
bool "Use a fixed random number for LESC OOB pairing"
|
|
depends on BT_TESTING
|
|
help
|
|
With this option enabled, the application will be able to perform LESC
|
|
pairing with OOB data that consists of fixed random number and confirm
|
|
value.
|
|
|
|
WARNING: This option stores a hardcoded Out-of-Band value in the image.
|
|
Use of this feature in production is strongly discouraged.
|
|
|
|
config BT_KEYS_OVERWRITE_OLDEST
|
|
bool "Overwrite oldest keys with new ones if key storage is full"
|
|
help
|
|
With this option enabled, if a pairing attempt occurs and the key storage
|
|
is full, then the oldest keys in storage will be removed to free space
|
|
for the new pairing keys.
|
|
|
|
config BT_KEYS_SAVE_AGING_COUNTER_ON_PAIRING
|
|
bool "Store aging counter every time a successful paring occurs"
|
|
depends on BT_SETTINGS && BT_KEYS_OVERWRITE_OLDEST
|
|
help
|
|
With this option enabled, aging counter will be stored in settings every
|
|
time a successful pairing occurs. This increases flash wear out but offers
|
|
a more correct finding of the oldest unused pairing info.
|
|
|
|
endif # BT_SMP
|
|
|
|
source "subsys/bluetooth/host/Kconfig.l2cap"
|
|
source "subsys/bluetooth/host/Kconfig.gatt"
|
|
|
|
config BT_MAX_PAIRED
|
|
int "Maximum number of paired devices"
|
|
default 0 if !BT_SMP
|
|
default 1
|
|
range 0 128
|
|
help
|
|
Maximum number of paired Bluetooth devices. The minimum (and
|
|
default) number is 1.
|
|
|
|
config BT_CREATE_CONN_TIMEOUT
|
|
int "Timeout for pending LE Create Connection command in seconds"
|
|
default 3
|
|
range 1 BT_RPA_TIMEOUT if BT_PRIVACY && (BT_RPA_TIMEOUT < 655)
|
|
range 1 655
|
|
|
|
config BT_CONN_PARAM_UPDATE_TIMEOUT
|
|
int "Peripheral connection parameter update timeout in milliseconds"
|
|
default 5000
|
|
range 0 65535
|
|
|
|
help
|
|
The value is a timeout used by peripheral device to wait until it
|
|
starts the first connection parameters update procedure after a
|
|
connection has been established.
|
|
The connection parameters requested will be the parameters set by the
|
|
application, or the peripheral preferred connection parameters if
|
|
configured.
|
|
The default value is set to 5 seconds, to comply with the Bluetooth
|
|
Core specification: Core 4.2 Vol 3, Part C, 9.3.12.2:
|
|
"The Peripheral device should not perform a Connection Parameter
|
|
Update procedure within 5 seconds after establishing a connection."
|
|
|
|
endif # BT_CONN
|
|
|
|
if BT_OBSERVER
|
|
config BT_BACKGROUND_SCAN_INTERVAL
|
|
int "Scan interval used for background scanning in 0.625 ms units"
|
|
default 2048
|
|
range 4 16384
|
|
config BT_BACKGROUND_SCAN_WINDOW
|
|
int "Scan window used for background scanning in 0.625 ms units"
|
|
default 18
|
|
range 4 16384
|
|
endif # BT_OBSERVER
|
|
|
|
config BT_SCAN_WITH_IDENTITY
|
|
bool "Perform active scanning using local identity address"
|
|
depends on !BT_PRIVACY && (BT_CENTRAL || BT_OBSERVER)
|
|
help
|
|
Enable this if you want to perform active scanning using the local
|
|
identity address as the scanner address. By default the stack will
|
|
always use a non-resolvable private address (NRPA) in order to avoid
|
|
disclosing local identity information. By not scanning with the
|
|
identity address the scanner will receive directed advertise reports
|
|
for for the local identity. If this use case is required, then enable
|
|
this option.
|
|
|
|
config BT_DEVICE_NAME_DYNAMIC
|
|
bool "Allow to set Bluetooth device name on runtime"
|
|
help
|
|
Enabling this option allows for runtime configuration of Bluetooth
|
|
device name.
|
|
|
|
config BT_DEVICE_NAME_MAX
|
|
int "Maximum size in bytes for device name"
|
|
depends on BT_DEVICE_NAME_DYNAMIC
|
|
default 28
|
|
range 2 248
|
|
help
|
|
Bluetooth device name storage size. Storage can be up to 248 bytes
|
|
long (excluding NULL termination).
|
|
|
|
config BT_DEVICE_NAME
|
|
string "Bluetooth device name"
|
|
default "Zephyr"
|
|
help
|
|
Bluetooth device name. Name can be up to 248 bytes long (excluding
|
|
NULL termination). Can be empty string.
|
|
|
|
config BT_DEVICE_APPEARANCE
|
|
int "Bluetooth device appearance"
|
|
range 0 65535
|
|
default 0
|
|
help
|
|
Bluetooth device appearance. For the list of possible values please
|
|
consult the following link:
|
|
https://www.bluetooth.com/specifications/assigned-numbers
|
|
|
|
config BT_ID_MAX
|
|
int "Maximum number of local identities"
|
|
range 1 10
|
|
default 1
|
|
help
|
|
Maximum number of supported local identity addresses. For most
|
|
products this is safe to leave as the default value (1).
|
|
|
|
config BT_DF
|
|
bool "Enable Direction Finding support [EXPERIMENTAL]"
|
|
help
|
|
Enable support for Bluetooth 5.1 Direction Finding.
|
|
It will allow to: get information about antennae, configure
|
|
Constant Tone Extension, transmit CTE and sample incoming CTE.
|
|
|
|
config BT_DEBUG_DF
|
|
bool "Bluetooth Direction Finding debug"
|
|
depends on BT_DF
|
|
help
|
|
This option enables debug support for Bluetooth Direction Finding
|
|
|
|
endif # BT_HCI_HOST
|
|
|
|
config BT_ECC
|
|
bool "Enable ECDH key generation support"
|
|
default y if BT_MESH_PROV || (BT_SMP && !BT_SMP_OOB_LEGACY_PAIR_ONLY)
|
|
help
|
|
This option adds support for ECDH HCI commands.
|
|
|
|
config BT_TINYCRYPT_ECC
|
|
bool "Emulate ECDH in the Host using TinyCrypt library"
|
|
select TINYCRYPT
|
|
select TINYCRYPT_ECC_DH
|
|
depends on BT_ECC && (BT_HCI_RAW || BT_HCI_HOST)
|
|
default y if BT_CTLR && !BT_CTLR_ECDH
|
|
help
|
|
If this option is set TinyCrypt library is used for emulating the
|
|
ECDH HCI commands and events needed by e.g. LE Secure Connections.
|
|
In builds including the BLE Host, if not set the controller crypto is
|
|
used for ECDH and if the controller doesn't support the required HCI
|
|
commands the LE Secure Connections support will be disabled.
|
|
In builds including the HCI Raw interface and the BLE Controller, this
|
|
option injects support for the 2 HCI commands required for LE Secure
|
|
Connections so that Hosts can make use of those. The option defaults
|
|
to enabled for a combined build with Zephyr's own controller, since it
|
|
does not have any special ECC support itself (at least not currently).
|
|
|
|
config BT_HOST_CCM
|
|
bool "Enable host side AES-CCM module"
|
|
help
|
|
Enables the software based AES-CCM engine in the host. Will use the
|
|
controller's AES encryption functions if available, or BT_HOST_CRYPTO
|
|
otherwise.
|
|
|
|
if BT_DEBUG
|
|
config BT_DEBUG_SETTINGS
|
|
bool "Bluetooth storage debug"
|
|
depends on BT_SETTINGS
|
|
help
|
|
This option enables debug support for Bluetooth storage.
|
|
|
|
config BT_DEBUG_HCI_CORE
|
|
bool "Bluetooth HCI core debug"
|
|
help
|
|
This option enables debug support for Bluetooth HCI
|
|
core.
|
|
|
|
config BT_DEBUG_CONN
|
|
bool "Bluetooth connection debug"
|
|
depends on BT_CONN
|
|
help
|
|
This option enables debug support for Bluetooth
|
|
connection handling.
|
|
|
|
config BT_DEBUG_ISO
|
|
bool "ISO channel debug"
|
|
help
|
|
Use this option to enable ISO channels debug logs for the
|
|
Bluetooth Audio functionality.
|
|
|
|
config BT_DEBUG_KEYS
|
|
bool "Bluetooth security keys debug"
|
|
depends on BT_HCI_HOST
|
|
depends on BT_SMP
|
|
help
|
|
This option enables debug support for the handling of
|
|
Bluetooth security keys.
|
|
|
|
WARNING: This option prints out private security keys such as
|
|
the Long Term Key.
|
|
Use of this feature in production is strongly discouraged.
|
|
|
|
config BT_DEBUG_SMP
|
|
bool "Bluetooth Security Manager Protocol (SMP) debug"
|
|
depends on BT_HCI_HOST
|
|
depends on BT_SMP
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Security Manager Protocol (SMP).
|
|
|
|
WARNING: This option prints out private security keys such as
|
|
the Long Term Key.
|
|
Use of this feature in production is strongly discouraged.
|
|
|
|
config BT_SMP_SELFTEST
|
|
bool "Bluetooth SMP self tests executed on init"
|
|
depends on BT_DEBUG_SMP
|
|
help
|
|
This option enables SMP self-tests executed on startup
|
|
to verify security and crypto functions.
|
|
|
|
config BT_SMP_FORCE_BREDR
|
|
bool "Force Bluetooth SMP over BR/EDR"
|
|
depends on BT_DEBUG_SMP
|
|
help
|
|
This option enables SMP over BR/EDR even if controller is not
|
|
supporting BR/EDR Secure Connections. This option is solely for
|
|
testing and should never be enabled on production devices.
|
|
|
|
config BT_DEBUG_RFCOMM
|
|
bool "Bluetooth RFCOMM debug"
|
|
depends on BT_RFCOMM
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
RFCOMM layer.
|
|
|
|
config BT_DEBUG_HFP_HF
|
|
bool "Bluetooth Hands Free Profile (HFP) debug"
|
|
depends on BT_HFP_HF
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Hands Free Profile (HFP).
|
|
|
|
config BT_DEBUG_AVDTP
|
|
bool "Bluetooth AVDTP debug"
|
|
depends on BT_AVDTP
|
|
help
|
|
This option enables debug support for the Bluetooth AVDTP.
|
|
|
|
config BT_DEBUG_A2DP
|
|
bool "Bluetooth A2DP debug"
|
|
depends on BT_A2DP
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
A2DP profile.
|
|
|
|
config BT_DEBUG_SDP
|
|
bool "Bluetooth Service Discovery Protocol (SDP) debug"
|
|
depends on BT_BREDR
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Service Discovery Protocol (SDP).
|
|
|
|
config BT_DEBUG_SERVICE
|
|
bool "Bluetooth Services debug"
|
|
depends on BT_CONN
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
Services.
|
|
|
|
endif # BT_DEBUG
|
|
|
|
config BT_LOG_SNIFFER_INFO
|
|
bool "Bluetooth log information for sniffer"
|
|
help
|
|
This option enables the Bluetooth stack to log information such as
|
|
DH private key and LTK keys, which can be used by sniffers to decrypt
|
|
the connection without the use of Debug keys.
|
|
|
|
WARNING: This option prints out private security keys such as
|
|
the Long Term Key.
|
|
Use of this feature in production is strongly discouraged
|
|
|
|
config BT_TESTING
|
|
bool "Bluetooth Testing"
|
|
help
|
|
This option enables custom Bluetooth testing interface.
|
|
Shall only be used for testing purposes.
|
|
|
|
config BT_CONN_DISABLE_SECURITY
|
|
bool "Disable security"
|
|
depends on BT_TESTING
|
|
help
|
|
This option disables security checks for incoming requests enabling
|
|
to test accessing GATT attributes and L2CAP channels that would
|
|
otherwise require encryption/authentication in order to be accessed.
|
|
|
|
WARNING: This option enables anyone to snoop on-air traffic.
|
|
Use of this feature in production is strongly discouraged.
|
|
|
|
config BT_BREDR
|
|
bool "Bluetooth BR/EDR support [EXPERIMENTAL]"
|
|
depends on BT_HCI_HOST
|
|
select BT_PERIPHERAL
|
|
select BT_CENTRAL
|
|
select BT_SMP
|
|
select BT_L2CAP_DYNAMIC_CHANNEL
|
|
help
|
|
This option enables Bluetooth BR/EDR support
|
|
|
|
if BT_BREDR
|
|
config BT_MAX_SCO_CONN
|
|
int "Maximum number of simultaneous SCO connections"
|
|
default 1
|
|
range 1 3
|
|
help
|
|
Maximum number of simultaneous Bluetooth synchronous connections
|
|
supported. The minimum (and default) number is 1.
|
|
|
|
config BT_RFCOMM
|
|
bool "Bluetooth RFCOMM protocol support [EXPERIMENTAL]"
|
|
help
|
|
This option enables Bluetooth RFCOMM support
|
|
|
|
config BT_RFCOMM_L2CAP_MTU
|
|
int "L2CAP MTU for RFCOMM frames"
|
|
default BT_L2CAP_RX_MTU if BT_HCI_ACL_FLOW_CONTROL
|
|
default BT_RX_BUF_LEN
|
|
depends on BT_RFCOMM
|
|
range BT_L2CAP_RX_MTU 32767 if BT_HCI_ACL_FLOW_CONTROL
|
|
range BT_RX_BUF_LEN 32767
|
|
help
|
|
Maximum size of L2CAP PDU for RFCOMM frames.
|
|
|
|
config BT_HFP_HF
|
|
bool "Bluetooth Handsfree profile HF Role support [EXPERIMENTAL]"
|
|
depends on PRINTK
|
|
select BT_RFCOMM
|
|
help
|
|
This option enables Bluetooth HF support
|
|
|
|
config BT_AVDTP
|
|
bool "Bluetooth AVDTP protocol support [EXPERIMENTAL]"
|
|
help
|
|
This option enables Bluetooth AVDTP support
|
|
|
|
config BT_A2DP
|
|
bool "Bluetooth A2DP Profile [EXPERIMENTAL]"
|
|
select BT_AVDTP
|
|
help
|
|
This option enables the A2DP profile
|
|
|
|
config BT_PAGE_TIMEOUT
|
|
hex "Bluetooth Page Timeout"
|
|
default 0x2000
|
|
range 0x0001 0xffff
|
|
help
|
|
This option sets the page timeout value. Value is selected as
|
|
(N * 0.625) ms.
|
|
|
|
endif # BT_BREDR
|
|
|
|
config BT_HCI_VS_EVT_USER
|
|
bool "User Vendor-Specific event handling"
|
|
help
|
|
Enable registering a callback for delegating to the user the handling of
|
|
VS events that are not known to the stack
|