Refactor and simplify the bluetooth buffer configurations to improve the easy of configurations and eliminate invalid ones. By moving configurations out of host and controller specific configurations and into a common one it becomes easier to configure the host and controller separately as the same configurations can be used as would be for a combined build. All HCI configurations are now given exluding the matching HCI header, which eases the configuration as the application don't have to know the different header sizes. The BT_RX_BUF_LEN is split into ACL and Event, as well as the suprising use of Command size. BT_L2CAP_RX_MTU is removed as the stack does not support reassembling of HCI ACL data to larger L2CAP PDUs. The application will have to set ACL RX size and account for the L2CAP PDU header itself. BT_EATT_RX_MTU was removed as it is only used for setting a different default value for another option which leads to the stuck kconfig symbol problem. The configurations can be updated according to the table below: ** New configuration | ** Old configuration All configurations BT_BUF_ACL_RX_SIZE | BT_L2CAP_RX_MTU + 4 BT_BUF_ACL_RX_SIZE | BT_RX_BUF_LEN - 4 BT_BUF_EVT_RX_SIZE | BT_RX_BUF_LEN - 2 BT_BUF_CMD_TX_SIZE | BT_RX_BUF_LEN - 3 BT_BUF_CMD_TX_COUNT | BT_HCI_CMD_COUNT BT_BUF_EVT_RX_COUNT | BT_RX_BUF_COUNT BT_BUF_ACL_RX_COUNT | BT_RX_BUF_COUNT BT_BUF_ACL_RX_COUNT | BT_ACL_RX_COUNT BT_BUF_EVT_DISCARDABLE_SIZE | BT_DISCARDABLE_BUF_SIZE - 2 BT_BUF_EVT_DISCARDABLE_COUNT | BT_DISCARDABLE_BUF_COUNT Controller-build BT_BUF_ACL_TX_SIZE | BT_CTLR_TX_BUFFERS_SIZE BT_BUF_ACL_TX_COUNT | BT_CTLR_TX_BUFFER HCI-bridge BT_BUF_ACL_TX_SIZE | BT_HCI_ACL_DATA_SIZE BT_BUF_ACL_TX_COUNT | 6 Fixed invalid configurations setting either BT_L2CAP_RX_MTU or BT_CTLR_DATA_LENGTH_MAX larger than BT_RX_BUF_LEN could lead to buffer overruns. Fix advertising report max data length calculation. This always used the BT_DISCARDABLE_BUF_SIZE macro but this feature can be turned off and advertising reports will be allocated from the RX buffer in that case. Also controller-build does not have this buffer (in hci_raw.c). Also the wrong HCI header was used in the calculation, HCI event header should have been used instead of HCI ACL header. Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
62 lines
1.7 KiB
Plaintext
62 lines
1.7 KiB
Plaintext
# Bluetooth ATT/GATT configuration options
|
|
|
|
# Copyright (c) 2019 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "L2CAP Options"
|
|
|
|
config BT_L2CAP_TX_BUF_COUNT
|
|
int "Number of L2CAP TX buffers"
|
|
default NET_BUF_TX_COUNT if NET_L2_BT
|
|
default BT_BUF_ACL_TX_COUNT
|
|
range 2 255
|
|
help
|
|
Number of buffers available for outgoing L2CAP packets.
|
|
|
|
config BT_L2CAP_TX_FRAG_COUNT
|
|
int "Number of L2CAP TX fragment buffers"
|
|
default NET_BUF_TX_COUNT if NET_L2_BT
|
|
default 2
|
|
range 0 255
|
|
help
|
|
Number of buffers available for fragments of TX buffers. Warning:
|
|
setting this to 0 means that the application must ensure that
|
|
queued TX buffers never need to be fragmented, i.e. that the
|
|
controller's buffer size is large enough. If this is not ensured,
|
|
and there are no dedicated fragment buffers, a deadlock may occur.
|
|
In most cases the default value of 2 is a safe bet.
|
|
|
|
config BT_L2CAP_TX_MTU
|
|
int "Maximum supported L2CAP MTU for L2CAP TX buffers"
|
|
default 253 if BT_BREDR
|
|
default 69 if BT_MESH_PROXY
|
|
default 65 if BT_SMP
|
|
default 23
|
|
range 65 2000 if BT_SMP
|
|
range 23 2000
|
|
help
|
|
Maximum L2CAP MTU for L2CAP TX buffers.
|
|
|
|
config BT_L2CAP_DYNAMIC_CHANNEL
|
|
bool "L2CAP Dynamic Channel support"
|
|
depends on BT_SMP
|
|
help
|
|
This option enables support for LE Connection oriented Channels,
|
|
allowing the creation of dynamic L2CAP Channels.
|
|
|
|
config BT_L2CAP_ECRED
|
|
bool "L2CAP Enhanced Credit Based Flow Control support"
|
|
depends on BT_L2CAP_DYNAMIC_CHANNEL
|
|
help
|
|
This option enables support for LE Connection oriented Channels with
|
|
Enhanced Credit Based Flow Control support on dynamic L2CAP Channels.
|
|
|
|
config BT_DEBUG_L2CAP
|
|
bool "Bluetooth L2CAP debug"
|
|
depends on BT_DEBUG
|
|
help
|
|
This option enables debug support for the Bluetooth
|
|
L2ACP layer.
|
|
|
|
endmenu
|