CONFIG_BT_BUF_ACL_RX_SIZE¶
Maximum supported ACL size for incoming data
Type: int
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 restricetd 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.
Defaults¶
200 if
BT_BREDR
73 if
BT_MESH_GATT
70 if
BT_EATT
69 if
BT_SMP
27
Kconfig definition¶
At <Zephyr>/subsys/bluetooth/common/Kconfig:48
Included via <Zephyr>/Kconfig:8
→ <Zephyr>/Kconfig.zephyr:42
→ <Zephyr>/subsys/Kconfig:9
→ <Zephyr>/subsys/bluetooth/Kconfig:312
Menu path: (Top) → Sub Systems and OS Services → Bluetooth
config BT_BUF_ACL_RX_SIZE
int "Maximum supported ACL size for incoming data"
range 70 1300 if BT_EATT
range 69 1300 if BT_SMP
range 27 1300
default 200 if BT_BREDR
default 73 if BT_MESH_GATT
default 70 if BT_EATT
default 69 if BT_SMP
default 27
depends on BT_HCI && BT
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 restricetd 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.
(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)