0bcad09392
SIG has changed Bluetooth mesh to Bluetooth Mesh Updating zephyr docs accordingly Leaving out old release notes Signed-off-by: Mia Koen <mia.koen@nordicsemi.no>
365 lines
13 KiB
Plaintext
365 lines
13 KiB
Plaintext
# Bluetooth common configuration options
|
|
|
|
# Copyright (c) 2017 Nordic Semiconductor ASA
|
|
# Copyright (c) 2016 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "Bluetooth buffer configuration"
|
|
|
|
config BT_BUF_ACL_TX_SIZE
|
|
int "Maximum supported ACL size for outgoing data"
|
|
range 27 65535
|
|
default 37 if BT_MESH_GATT
|
|
default 27
|
|
help
|
|
Maximum supported ACL size of data packets sent from the Host to the
|
|
Controller. This value does not include the HCI ACL header.
|
|
The Host will segment the data transmitted to the Controller so that
|
|
packets sent to the Controller will contain data up to this size.
|
|
In a combined build this value will be set in both the Host and the
|
|
Controller.
|
|
In a Host-only build the Host will read the maximum ACL size supported
|
|
by the Controller and use the smallest value supported by both the
|
|
Host and the Controller.
|
|
The Host supports sending of larger L2CAP PDUs than the ACL size and
|
|
will fragment L2CAP PDUs into ACL data packets.
|
|
The Controller will return this value in the HCI LE Read Buffer
|
|
Size command response. If this size if greater than effective Link
|
|
Layer transmission size then the Controller will perform
|
|
fragmentation before transmitting the packet(s) on air.
|
|
If this value is less than the effective Link Layer transmission size
|
|
then this will restrict the maximum Link Layer transmission size.
|
|
|
|
config BT_BUF_ACL_TX_COUNT
|
|
int "Number of outgoing ACL data buffers"
|
|
default 7 if BT_HCI_RAW
|
|
default 4 if BT_MESH_GATT
|
|
default 3
|
|
range 1 255
|
|
help
|
|
Number of outgoing ACL data buffers sent from the Host to the
|
|
Controller. This determines the maximum amount of data packets the
|
|
Host can have queued in the Controller before waiting for the
|
|
to notify the Host that more packets can be queued with the Number of
|
|
Completed Packets event.
|
|
The buffers are shared between all of the connections and the Host
|
|
determines how to divide the buffers between the connections.
|
|
The Controller will return this value in the HCI LE Read Buffer Size
|
|
command response.
|
|
|
|
config BT_BUF_ACL_RX_SIZE
|
|
int "Maximum supported ACL size for incoming data"
|
|
default 200 if BT_BREDR
|
|
default 70 if BT_EATT
|
|
default 69 if BT_SMP
|
|
default 37 if BT_MESH_GATT
|
|
default 27
|
|
range 70 65535 if BT_EATT
|
|
range 69 65535 if BT_SMP
|
|
range 27 65535
|
|
help
|
|
Maximum support ACL size of data packets sent from the Controller to
|
|
the Host. This value does not include the HCI ACL header.
|
|
In a combined Host and Controller build the buffer sizes in both the
|
|
Host and the Controller will use this value for buffer sizes, and
|
|
therefore Controller to Host flow Controller is not needed.
|
|
In a Host only build with Controller to Host flow control enabled
|
|
the Host will inform the Controller about the maximum ACL data size it
|
|
can send by setting this value in the Host Buffer Size command.
|
|
If Controller to Host flow control is not enabled then the Controller
|
|
can assume the Host has infinite buffer size so this value should then
|
|
be set to something that is guaranteed the Controller will not exceed
|
|
or the data packets will be dropped.
|
|
In a Controller only build this will determine the maximum ACL size
|
|
that the Controller will send to the Host.
|
|
The Host supports reassembling of L2CAP PDUs from ACL data packets,
|
|
but the maximum supported L2CAP PDU size is limited by the maximum
|
|
supported ACL size.
|
|
This means the maximum L2CAP PDU MTU is restricted by the maximum ACL
|
|
size subtracting the 4 byte header of an L2CAP PDU.
|
|
When using L2CAP Connection oriented Channels without segmentation
|
|
then the L2CAP SDU MTU is also restricted by the maximum ACL size
|
|
subtracting the 4 Byte header of an L2CAP PDU plus the 2 byte header
|
|
of an L2CAP SDU.
|
|
|
|
With Enhanced ATT enabled the minimum of 70 is needed to support the
|
|
minimum ATT_MTU of 64 octets in an L2CAP SDU without segmentation.
|
|
With SMP LE Secure Connections enabled the minimum of 69 is needed to
|
|
support the minimum SMP MTU of 65 octets (public key + opcode) in an
|
|
L2CAP PDU.
|
|
|
|
An L2CAP PDU is also referred to as an L2CAP basic frame or B-frame.
|
|
An L2CAP SDU is also referred to as an L2CAP Credit-based frame or
|
|
K-frame.
|
|
|
|
config BT_BUF_ACL_RX_COUNT
|
|
int "Number of incoming ACL data buffers"
|
|
default NET_BUF_RX_COUNT if NET_L2_BT
|
|
default 3 if BT_RECV_BLOCKING
|
|
default 6
|
|
range 1 64
|
|
help
|
|
Number or incoming ACL data buffers sent from the Controller to the
|
|
Host.
|
|
In a combined Host and Controller build the buffers are shared and
|
|
therefore Controller to Host flow control is not needed.
|
|
In a Host only build with Controller to Host flow control enabled
|
|
the Host will inform the Controller about the maximum number of
|
|
buffers by setting this value in the Host Buffer Size command.
|
|
When Controller to Host flow control is not enabled the Controller
|
|
can assume that the Host has infinite amount of buffers.
|
|
|
|
config BT_BUF_EVT_RX_SIZE
|
|
int "Maximum supported HCI Event buffer length"
|
|
default 255 if (BT_EXT_ADV && BT_OBSERVER) || BT_PER_ADV_SYNC || BT_DF_CONNECTION_CTE_RX
|
|
# LE Read Supported Commands command complete event.
|
|
default 68
|
|
range 68 255
|
|
help
|
|
Maximum supported HCI event buffer size. This value does not include
|
|
the HCI Event header.
|
|
This value is used by both the Host and the Controller for buffer
|
|
sizes that include HCI events. It should be set according to the
|
|
expected HCI events that can be generated from the configuration.
|
|
If the subset of possible HCI events is unknown, this should be set to
|
|
the maximum of 255.
|
|
|
|
config BT_BUF_EVT_RX_COUNT
|
|
int "Number of HCI Event buffers"
|
|
default 3 if BT_RECV_BLOCKING
|
|
default 20 if (BT_MESH && !(BT_BUF_EVT_DISCARDABLE_COUNT > 0))
|
|
default 10
|
|
range 2 255
|
|
help
|
|
Number of buffers available for incoming HCI events from the
|
|
Controller.
|
|
|
|
config BT_BUF_EVT_DISCARDABLE_SIZE
|
|
int "Maximum supported discardable HCI Event buffer length"
|
|
range 43 255 if !BT_EXT_ADV
|
|
range 58 255 if BT_EXT_ADV
|
|
# LE Extended Advertising Report event
|
|
default 255 if BT_BREDR
|
|
# Le Advertising Report event
|
|
default 43 if !BT_EXT_ADV
|
|
default 58 if BT_EXT_ADV
|
|
help
|
|
Maximum support discardable HCI event size of buffers in the separate
|
|
discardable event buffer pool. This value does not include the
|
|
HCI Event header.
|
|
The minimum size is set based on the Advertising Report. Setting
|
|
the buffer size different than BT_BUF_EVT_RX_SIZE can save memory.
|
|
|
|
config BT_BUF_EVT_DISCARDABLE_COUNT
|
|
int "Number of discardable HCI Event buffers"
|
|
range 1 255
|
|
default 20 if BT_MESH
|
|
default 3
|
|
depends on !BT_HCI_RAW
|
|
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 is 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_BUF_CMD_TX_SIZE
|
|
int "Maximum support HCI Command buffer length"
|
|
default 255 if (BT_EXT_ADV || BT_BREDR || BT_ISO_CENTRAL)
|
|
# LE Set Connection CTE Receive Parameters. Value required to store max allowed number
|
|
# of antenna ids for platforms other than Nordic.
|
|
default 83 if (!BT_EXT_ADV && !BT_BREDR && BT_CTLR_DF && BT_CTLR_DF_CONN_CTE_REQ && !SOC_COMPATIBLE_NRF)
|
|
# LE Generate DHKey v2 command
|
|
default 65
|
|
range 65 255
|
|
help
|
|
Maximum data size for each HCI Command buffer. This value does not
|
|
include the HCI Command header.
|
|
This value is used by both the Host and the Controller for buffer
|
|
sizes that include HCI commands. It should be set according to the
|
|
expected HCI commands that can be sent from the configuration.
|
|
If the subset of possible HCI commands is unknown, this should be set
|
|
to the maximum of 255.
|
|
|
|
config BT_BUF_CMD_TX_COUNT
|
|
int "Number of HCI command buffers"
|
|
default 2
|
|
range 2 64
|
|
help
|
|
Number of buffers available for outgoing HCI commands from the Host.
|
|
|
|
endmenu
|
|
|
|
config BT_HAS_HCI_VS
|
|
bool
|
|
help
|
|
This option is set by the Bluetooth controller to indicate support
|
|
for the Zephyr HCI Vendor-Specific Commands and Event.
|
|
|
|
config BT_HCI_VS
|
|
bool "Zephyr HCI Vendor-Specific Commands"
|
|
depends on BT_HAS_HCI_VS || !BT_CTLR
|
|
default y if BT_HAS_HCI_VS
|
|
help
|
|
Enable support for the Zephyr HCI Vendor-Specific Commands in the
|
|
Host and/or Controller. This enables Set Version Information,
|
|
Supported Commands, Supported Features vendor commands.
|
|
|
|
config BT_HCI_VS_EXT
|
|
bool "Zephyr HCI Vendor-Specific Extensions"
|
|
depends on BT_HCI_VS
|
|
default y
|
|
help
|
|
Enable support for the Zephyr HCI Vendor-Specific Extensions in the
|
|
Host and/or Controller. This enables Write BD_ADDR, Read Build Info,
|
|
Read Static Addresses and Read Key Hierarchy Roots vendor commands.
|
|
|
|
config BT_HCI_VS_EVT
|
|
bool "Zephyr HCI Vendor-Specific Events"
|
|
depends on BT_HCI_VS_EXT
|
|
help
|
|
Enable support for the Zephyr HCI Vendor-Specific Events in the
|
|
Host and/or Controller.
|
|
|
|
config BT_HCI_VS_FATAL_ERROR
|
|
bool "Allow vendor specific HCI event Zephyr Fatal Error"
|
|
depends on BT_HCI_VS_EXT
|
|
help
|
|
Enable emiting HCI Vendor-Specific events for system and Controller
|
|
errors that are unrecoverable.
|
|
|
|
config BT_HCI_VS_EXT_DETECT
|
|
bool "Use heuristics to guess HCI vendor extensions support in advance"
|
|
depends on BT_HCI_VS_EXT && !BT_CTLR
|
|
default y if BOARD_QEMU_X86 || BOARD_QEMU_CORTEX_M3 || BOARD_NATIVE_POSIX
|
|
help
|
|
Use some heuristics to try to guess in advance whether the controller
|
|
supports the HCI vendor extensions in advance, in order to prevent
|
|
sending vendor commands to controller which may interpret them in
|
|
completely different ways.
|
|
|
|
config BT_HCI_MESH_EXT
|
|
bool "Mesh HCI Command support"
|
|
depends on BT_BROADCASTER && BT_OBSERVER && !BT_LL_SW_SPLIT
|
|
help
|
|
Enable support for the Bluetooth Mesh HCI Commands.
|
|
|
|
config BT_WAIT_NOP
|
|
bool "Wait for \"NOP\" Command Complete event during init"
|
|
help
|
|
Emit a Command Complete event from the Controller (and wait for it
|
|
from the Host) for the NOP opcode to indicate that the Controller is
|
|
ready to receive commands.
|
|
|
|
config BT_RPA
|
|
bool
|
|
select TINYCRYPT
|
|
select TINYCRYPT_AES
|
|
|
|
config BT_ASSERT
|
|
bool "Custom Bluetooth assert implementation"
|
|
default y
|
|
help
|
|
Use a custom Bluetooth assert implementation instead of the
|
|
kernel-wide __ASSERT() when CONFIG_ASSERT is disabled.
|
|
|
|
if BT_ASSERT
|
|
|
|
config BT_ASSERT_VERBOSE
|
|
bool "Print out an assert string when using BT_ASSERT"
|
|
default y
|
|
help
|
|
When CONFIG_BT_ASSERT is enabled, this option turns on printing the
|
|
cause of the assert to the console using printk().
|
|
|
|
config BT_ASSERT_PANIC
|
|
bool "Use k_panic() instead of k_oops()"
|
|
help
|
|
When CONFIG_BT_ASSERT is enabled, this option makes the code call
|
|
k_panic() instead of k_oops() when an assertion is triggered.
|
|
|
|
endif # BT_ASSERT
|
|
|
|
config BT_MONITOR
|
|
bool
|
|
select LOG_OUTPUT
|
|
|
|
choice BT_DEBUG_TYPE
|
|
prompt "Bluetooth debug type"
|
|
default BT_DEBUG_NONE
|
|
|
|
config BT_DEBUG_NONE
|
|
bool "No debug log"
|
|
help
|
|
Select this to disable all Bluetooth debug logs.
|
|
|
|
config BT_DEBUG_LOG
|
|
bool "[DEPRECATED] Normal printf-style to console"
|
|
select DEPRECATED
|
|
select LOG
|
|
imply LOG_FUNC_NAME_PREFIX_INF
|
|
imply LOG_FUNC_NAME_PREFIX_WRN
|
|
imply LOG_FUNC_NAME_PREFIX_ERR
|
|
help
|
|
This option enables Bluetooth debug going to standard
|
|
serial console.
|
|
|
|
config BT_DEBUG_MONITOR_UART
|
|
bool "Monitor protocol over UART"
|
|
select LOG
|
|
select CONSOLE_HAS_DRIVER
|
|
select BT_MONITOR
|
|
help
|
|
Use a custom logging protocol over the console UART
|
|
instead of plain-text output. Requires a special application
|
|
on the host side that can decode this protocol. Currently
|
|
the 'btmon' tool from BlueZ is capable of doing this.
|
|
|
|
If the target board has two or more external UARTs it is
|
|
possible to keep using UART_CONSOLE together with this option,
|
|
however if there is only a single external UART then
|
|
UART_CONSOLE needs to be disabled (in which case printk/printf
|
|
will get encoded into the monitor protocol).
|
|
|
|
config BT_DEBUG_MONITOR_RTT
|
|
bool "Monitor protocol over RTT"
|
|
depends on USE_SEGGER_RTT
|
|
depends on SEGGER_RTT_MAX_NUM_UP_BUFFERS >= 2
|
|
select LOG
|
|
select CONSOLE_HAS_DRIVER
|
|
select BT_MONITOR
|
|
help
|
|
Use a custom logging protocol over the RTT buffer instead of
|
|
plain-text output. Requires a special application
|
|
on the host side that can decode this protocol. Currently
|
|
the 'btmon' tool from BlueZ is capable of doing this.
|
|
|
|
if BT_DEBUG_MONITOR_RTT
|
|
|
|
config BT_DEBUG_MONITOR_RTT_BUFFER
|
|
int "Buffer number used for custom logger output."
|
|
range 1 SEGGER_RTT_MAX_NUM_UP_BUFFERS
|
|
default 1
|
|
help
|
|
Select index of up-buffer used for logger output.
|
|
Make sure the buffer number is not used by other logger,
|
|
e.g. in LOG_BACKEND_RTT_BUFFER, otherwise the buffer will be
|
|
overwritten.
|
|
|
|
config BT_DEBUG_MONITOR_RTT_BUFFER_NAME
|
|
string "Buffer name used for custom logger output."
|
|
default "btmonitor"
|
|
help
|
|
Select index of up-buffer used for logger output.
|
|
|
|
config BT_DEBUG_MONITOR_RTT_BUFFER_SIZE
|
|
int "Size of reserved up-buffer for custom logger output."
|
|
default 1024
|
|
help
|
|
Specify reserved size of up-buffer used for custom logger output.
|
|
|
|
endif # BT_DEBUG_MONITOR_RTT
|
|
|
|
endchoice # Bluetooth debug type
|