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.

Direct dependencies

BT_HCI && BT

(Includes any dependencies from ifs and menus.)

Defaults

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.)