Skip to content

Bluetooth: controller: tx buffer overflow errorΒ #30378

@hardik-proxy

Description

@hardik-proxy

Describe the bug
I have multiple central devices connecting to a single peripheral asynchronously. The central device writes to one characteristic (around 40 bytes) and reads from another characteristic (around 170 bytes). After few hours of run, the peripheral device runs into the error. The error occurs when the central device tries to read the characteristic.

bt_ctlr_hci: Tx Buffer Overflow
bt_hci_core: Data buffer overflow (link type 0x01)
bt_conn: Unable to send to driver (err -55)

To Reproduce
I've tried developing standalone peripheral and central app to reproduce the issue. But I am unable to do so. I still run into errors on my production code.

Expected behavior
the central device should be able to read the characteristic without tx buffer overflow error.

Impact
impact on upcoming delivery of the project

Logs and console output
cc @vrahane
we've tried to add values of free buffer count into an array and print the array on the error.
something like this tx_mem_free_arr_acq[i_acq].cnt = mem_free_count_get(mem_conn_tx.free); in functions void *ll_tx_mem_acquire(void) and void ll_tx_mem_release(void *tx)

the result is as below:
arr_acp is count in mem_acquire and arr_free is count in mem_release
Screen Shot 2020-12-01 at 3 31 55 PM

Environment (please complete the following information):

  • OS: MacOS
  • Toolchain: arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2018-q2-update) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907]
  • Version: Zephyr 2.3.0, b8c78e2

Additional context

the above screenshot is with these config options related to tx buffer.

CONFIG_BT_CTLR_TX_BUFFERS=6
CONFIG_BT_CTLR_TX_BUFFER_SIZE=251
CONFIG_BT_L2CAP_TX_BUF_COUNT=6

Metadata

Metadata

Labels

area: BluetoothbugThe issue is a bug, or the PR is fixing a bugpriority: mediumMedium impact/importance bug

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions