drivers: bluetooth: hci: ipc: HCI IPC driver drops incoming ACL data #86091
Labels
area: Bluetooth HCI
Bluetooth HCI Driver
area: Bluetooth Host
Bluetooth Host (excluding BR/EDR)
area: Bluetooth
bug
The issue is a bug, or the PR is fixing a bug
Describe the bug
When building a bluetooth application for nRF5340 when Host and Controller are located application and network cores accordingly the HCI IPC driver is used to exchange HCI packets between network and application cores.
The HCI IPC driver is currently implemented in a way that it always expects a free buffer for the incoming (from Controller to Host) ACL data:
zephyr/drivers/bluetooth/hci/ipc.c
Lines 129 to 137 in 059e86f
I've implemented a test that sends notifications to a peer device over multiple EATT channels and makes the HCI IPC driver eventually drop the incoming ACL data. I put a PR with the test here: #85991
The test fails with and without
CONFIG_BT_HCI_ACL_FLOW_CONTROL
(see logs below).The case with enabled
CONFIG_BT_HCI_ACL_FLOW_CONTROL
should be fixed by #83774 (if it gets merged).The test fails with disabled
CONFIG_BT_HCI_ACL_FLOW_CONTROL
regardless of 83774 PR.To Reproduce
To reproduce the dropped ACL data when
CONFIG_BT_HCI_ACL_FLOW_CONTROL
is enabled (if #83774 is not merged):tests/bsim/bluetooth/host/gatt/notify_stress
fornrf5340bsim/nrf5340/cpuapp
target.No available ACL buffers!
messagesTo reproduce the dropped ACL data with
CONFIG_BT_HCI_ACL_FLOW_CONTROL
is disabled:tests/bsim/bluetooth/host/gatt/notify_stress
fornrf5340bsim/nrf5340/cpuapp
target.No available ACL buffers!
messagesExpected behavior
The ACL data must never be dropped by an HCI driver.
Impact
A Bluetooth LE nRF5340 device using ACL data.
Logs and console output
The output from the test when
CONFIG_BT_HCI_ACL_FLOW_CONTROL
is enabled (run here: https://github.com/zephyrproject-rtos/zephyr/actions/runs/13421908610/job/37496285461?pr=85991):The output from the test when
CONFIG_BT_HCI_ACL_FLOW_CONTROL
is disabled:Environment (please complete the following information):
The text was updated successfully, but these errors were encountered: