Bluetooth: Controller: BT_CTLR_ISO_TX_BUFFER_SIZE from BT_ISO_TX_MTU
Derive BT_CTLR_ISO_TX_BUFFER_SIZE from BT_ISO_TX_MTU to have optimal Controller memory allocations. BT_CTLR_ISO_TX_BUFFER_SIZE can be set lower than BT_ISO_TX_MTU in which case upper layer can send fragmented SDU to the Controller. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
3997479b49
commit
2c6306d099
31 changed files with 138 additions and 88 deletions
|
@ -14,11 +14,7 @@ CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=155
|
|||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# FIXME: Host needs CONFIG_BT_ISO_TX_MTU + 4 bytes for sequence number, and optionally
|
||||
# additional + 4 bytes for timestamp when not using BT_ISO_TIMESTAMP_NONE in bt_iso_chan_send(),
|
||||
# otherwise Host tries to fragment ISO data.
|
||||
# When Host is fixed, CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE can inherit the
|
||||
# CONFIG_BT_ISO_TX_MTU value.
|
||||
#
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
# Support the highest SDU size required by any BAP LC3 presets (155) + 8 bytes of HCI ISO Data
|
||||
# packet overhead (the Packet_Sequence_Number, ISO_SDU_Length, Packet_Status_Flag fields; and
|
||||
# the optional Time_Stamp field, if supplied)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=163
|
||||
|
|
33
samples/bluetooth/central_iso/overlay-bt_ll_sw_split.conf
Normal file
33
samples/bluetooth/central_iso/overlay-bt_ll_sw_split.conf
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Zephyr Bluetooth Controller
|
||||
CONFIG_BT_LL_SW_SPLIT=y
|
||||
|
||||
# Zephyr Bluetooth LE Controller needs 16 event buffers to generate Extended
|
||||
# Advertising Report for receiving the complete 1650 bytes of data
|
||||
CONFIG_BT_BUF_EVT_RX_COUNT=16
|
||||
|
||||
# Set maximum scan data length for Extended Scanning in Bluetooth LE Controller
|
||||
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=1650
|
||||
|
||||
# Increase Zephyr Bluetooth LE Controller Rx buffer to receive complete chain
|
||||
# of PDUs
|
||||
CONFIG_BT_CTLR_RX_BUFFERS=9
|
||||
|
||||
# Sufficient ISO SDU and PDU length for this sample with ISO_TX_MTU of 247
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
|
||||
# Number of supported streami sources and sinks
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
CONFIG_BT_CTLR_ISOAL_SINKS=1
|
||||
|
||||
# Support the highest SDU size required by this sample 247 + 8 bytes of HCI ISO Data
|
||||
# packet overhead (timestamp and HCI ISO Data packet header)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=4
|
||||
|
||||
# Use Low Latency Connected ISO policy
|
||||
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y
|
||||
|
||||
# Use the below if the sample is sending stale packet sequence number
|
||||
# CONFIG_BT_CTLR_ISOAL_SN_STRICT=n
|
|
@ -8,3 +8,14 @@ tests:
|
|||
integration_platforms:
|
||||
- qemu_x86
|
||||
tags: bluetooth
|
||||
sample.bluetooth.central_iso.bt_ll_sw_split:
|
||||
harness: bluetooth
|
||||
platform_allow:
|
||||
- qemu_cortex_m3
|
||||
- qemu_x86
|
||||
- nrf52_bsim
|
||||
- nrf52833dk/nrf52833
|
||||
integration_platforms:
|
||||
- nrf52833dk/nrf52833
|
||||
extra_args: OVERLAY_CONFIG=overlay-bt_ll_sw_split.conf
|
||||
tags: bluetooth
|
||||
|
|
|
@ -77,7 +77,7 @@ CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
|
|||
CONFIG_BT_CTLR_ADV_EXT=y
|
||||
CONFIG_BT_CTLR_ADV_PERIODIC=y
|
||||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
|
||||
# ISO Receive Controller
|
||||
|
@ -89,7 +89,7 @@ CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
|
|||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
|
|
|
@ -77,12 +77,12 @@ CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
|
|||
# ISO Connection Oriented
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
|
|
|
@ -82,7 +82,7 @@ CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
|
|||
CONFIG_BT_CTLR_ADV_EXT=y
|
||||
CONFIG_BT_CTLR_ADV_PERIODIC=y
|
||||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
|
||||
# ISO Receive Controller
|
||||
|
@ -95,12 +95,12 @@ CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
|
|||
# ISO Connection Oriented
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
|
|
|
@ -31,8 +31,8 @@ CONFIG_BT_CTLR_ADV_PERIODIC=y
|
|||
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
|
||||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=16
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
|
|
|
@ -44,12 +44,12 @@ CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=191
|
|||
# ISO Connection Oriented
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=n
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=16
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
|
|
|
@ -44,12 +44,12 @@ CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
|
|||
# ISO Connection Oriented
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=n
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=16
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
|
|
|
@ -80,7 +80,7 @@ CONFIG_BT_CTLR_DF_CONN_CTE_REQ=y
|
|||
CONFIG_BT_CTLR_ADV_EXT=y
|
||||
CONFIG_BT_CTLR_ADV_PERIODIC=y
|
||||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
|
||||
# ISO Receive Controller
|
||||
|
@ -93,12 +93,12 @@ CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
|
|||
# ISO Connection Oriented
|
||||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
|
||||
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
|
||||
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
|
||||
|
||||
# ISO Transmissions
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# ISO Receptions
|
||||
|
|
|
@ -1,13 +1,20 @@
|
|||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=4
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
# Zephyr Bluetooth Controller
|
||||
CONFIG_BT_LL_SW_SPLIT=y
|
||||
|
||||
# Zephyr Controller tested maximum advertising data that can be set in a single HCI command
|
||||
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
|
||||
|
||||
# Enable support for Broadcast ISO in Zephyr Bluetooth Controller
|
||||
CONFIG_BT_CTLR_ADV_ISO=y
|
||||
|
||||
# Sufficient ISO PDU length for this sample
|
||||
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=4
|
||||
|
||||
# Number of supported streams
|
||||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# FIXME: Host needs CONFIG_BT_ISO_TX_MTU + 4 bytes for sequence number, and
|
||||
# optionally additional + 4 bytes for timestamp when not using
|
||||
# BT_ISO_TIMESTAMP_NONE in bt_iso_chan_send(), otherwise Host tries to fragment
|
||||
# ISO data.
|
||||
# When Host is fixed, CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE can inherit the
|
||||
# CONFIG_BT_ISO_TX_MTU value.
|
||||
# Support the highest SDU size required by any BAP LC3 presets (155) + 8 bytes of HCI ISO Data
|
||||
# packet overhead (the Packet_Sequence_Number, ISO_SDU_Length, Packet_Status_Flag fields; and
|
||||
# the optional Time_Stamp field, if supplied)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=12
|
||||
|
|
|
@ -17,8 +17,8 @@ tests:
|
|||
- qemu_cortex_m3
|
||||
- qemu_x86
|
||||
- nrf52_bsim
|
||||
- nrf52dk/nrf52832
|
||||
- nrf52833dk/nrf52833
|
||||
integration_platforms:
|
||||
- nrf52dk/nrf52832
|
||||
- nrf52833dk/nrf52833
|
||||
extra_args: OVERLAY_CONFIG=overlay-bt_ll_sw_split.conf
|
||||
tags: bluetooth
|
||||
|
|
|
@ -14,11 +14,7 @@ CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=155
|
|||
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
|
||||
# FIXME: Host needs CONFIG_BT_ISO_TX_MTU + 4 bytes for sequence number, and optionally
|
||||
# additional + 4 bytes for timestamp when not using BT_ISO_TIMESTAMP_NONE in bt_iso_chan_send(),
|
||||
# otherwise Host tries to fragment ISO data.
|
||||
# When Host is fixed, CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE can inherit the
|
||||
# CONFIG_BT_ISO_TX_MTU value.
|
||||
#
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
# Support the highest SDU size required by any BAP LC3 presets (155) + 8 bytes of HCI ISO Data
|
||||
# packet overhead (the Packet_Sequence_Number, ISO_SDU_Length, Packet_Status_Flag fields; and
|
||||
# the optional Time_Stamp field, if supplied)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=163
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG_BT_CTLR_CENTRAL_ISO=y
|
||||
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
|
@ -1,9 +1,14 @@
|
|||
CONFIG_BT_LL_SW_SPLIT=y
|
||||
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=1650
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=4
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=2
|
||||
CONFIG_BT_CTLR_ISOAL_SINKS=1
|
||||
|
||||
# Support the highest SDU size required by any BAP LC3 presets (155) + 8 bytes of HCI ISO Data
|
||||
# packet overhead (the Packet_Sequence_Number, ISO_SDU_Length, Packet_Status_Flag fields; and
|
||||
# the optional Time_Stamp field, if supplied)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=163
|
||||
|
||||
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
|
||||
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
|
||||
|
||||
# Supports the highest SDU size required by any BAP LC3 presets (155)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
|
@ -1,10 +1,14 @@
|
|||
CONFIG_BT_LL_SW_SPLIT=y
|
||||
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFERS=2
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=155
|
||||
CONFIG_BT_CTLR_ISOAL_SOURCES=1
|
||||
CONFIG_BT_CTLR_ISOAL_SINKS=2
|
||||
|
||||
# Support the highest SDU size required by any BAP LC3 presets (155) + 8 bytes of HCI ISO Data
|
||||
# packet overhead (the Packet_Sequence_Number, ISO_SDU_Length, Packet_Status_Flag fields; and
|
||||
# the optional Time_Stamp field, if supplied)
|
||||
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=163
|
||||
|
||||
# Use the below if the sample is sending stale packet sequence number
|
||||
# CONFIG_BT_CTLR_ADVANCED_FEATURES=y
|
||||
# CONFIG_BT_CTLR_ISOAL_SN_STRICT=n
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue