Skip to content

Commit 2c6306d

Browse files
cvinayakcarlescufi
authored andcommitted
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 <[email protected]>
1 parent 3997479 commit 2c6306d

31 files changed

+136
-86
lines changed

samples/bluetooth/broadcast_audio_source/overlay-bt_ll_sw_split.conf

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@ CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=155
1414
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
1515
CONFIG_BT_CTLR_ISOAL_SOURCES=2
1616

17-
# FIXME: Host needs CONFIG_BT_ISO_TX_MTU + 4 bytes for sequence number, and optionally
18-
# additional + 4 bytes for timestamp when not using BT_ISO_TIMESTAMP_NONE in bt_iso_chan_send(),
19-
# otherwise Host tries to fragment ISO data.
20-
# When Host is fixed, CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE can inherit the
21-
# CONFIG_BT_ISO_TX_MTU value.
22-
#
23-
# Supports the highest SDU size required by any BAP LC3 presets (155)
17+
# Support the highest SDU size required by any BAP LC3 presets (155) + 8 bytes of HCI ISO Data
18+
# packet overhead (the Packet_Sequence_Number, ISO_SDU_Length, Packet_Status_Flag fields; and
19+
# the optional Time_Stamp field, if supplied)
2420
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=163
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Zephyr Bluetooth Controller
2+
CONFIG_BT_LL_SW_SPLIT=y
3+
4+
# Zephyr Bluetooth LE Controller needs 16 event buffers to generate Extended
5+
# Advertising Report for receiving the complete 1650 bytes of data
6+
CONFIG_BT_BUF_EVT_RX_COUNT=16
7+
8+
# Set maximum scan data length for Extended Scanning in Bluetooth LE Controller
9+
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=1650
10+
11+
# Increase Zephyr Bluetooth LE Controller Rx buffer to receive complete chain
12+
# of PDUs
13+
CONFIG_BT_CTLR_RX_BUFFERS=9
14+
15+
# Sufficient ISO SDU and PDU length for this sample with ISO_TX_MTU of 247
16+
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
17+
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
18+
19+
# Number of supported streami sources and sinks
20+
CONFIG_BT_CTLR_ISOAL_SOURCES=2
21+
CONFIG_BT_CTLR_ISOAL_SINKS=1
22+
23+
# Support the highest SDU size required by this sample 247 + 8 bytes of HCI ISO Data
24+
# packet overhead (timestamp and HCI ISO Data packet header)
25+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
26+
CONFIG_BT_CTLR_ISO_TX_BUFFERS=4
27+
28+
# Use Low Latency Connected ISO policy
29+
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
30+
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y
31+
32+
# Use the below if the sample is sending stale packet sequence number
33+
# CONFIG_BT_CTLR_ISOAL_SN_STRICT=n

samples/bluetooth/central_iso/sample.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,14 @@ tests:
88
integration_platforms:
99
- qemu_x86
1010
tags: bluetooth
11+
sample.bluetooth.central_iso.bt_ll_sw_split:
12+
harness: bluetooth
13+
platform_allow:
14+
- qemu_cortex_m3
15+
- qemu_x86
16+
- nrf52_bsim
17+
- nrf52833dk/nrf52833
18+
integration_platforms:
19+
- nrf52833dk/nrf52833
20+
extra_args: OVERLAY_CONFIG=overlay-bt_ll_sw_split.conf
21+
tags: bluetooth

samples/bluetooth/hci_ipc/nrf5340_cpunet_bis-bt_ll_sw_split.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
7777
CONFIG_BT_CTLR_ADV_EXT=y
7878
CONFIG_BT_CTLR_ADV_PERIODIC=y
7979
CONFIG_BT_CTLR_ADV_ISO=y
80-
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
80+
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
8181
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
8282

8383
# ISO Receive Controller
@@ -89,7 +89,7 @@ CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
8989

9090
# ISO Transmissions
9191
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
92-
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
92+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
9393
CONFIG_BT_CTLR_ISOAL_SOURCES=2
9494

9595
# ISO Receptions

samples/bluetooth/hci_ipc/nrf5340_cpunet_cis-bt_ll_sw_split.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@ CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
7777
# ISO Connection Oriented
7878
CONFIG_BT_CTLR_CENTRAL_ISO=y
7979
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
80-
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
80+
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
8181
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
8282

8383
# ISO Transmissions
8484
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
85-
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
85+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
8686
CONFIG_BT_CTLR_ISOAL_SOURCES=2
8787

8888
# ISO Receptions

samples/bluetooth/hci_ipc/nrf5340_cpunet_iso-bt_ll_sw_split.conf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
8282
CONFIG_BT_CTLR_ADV_EXT=y
8383
CONFIG_BT_CTLR_ADV_PERIODIC=y
8484
CONFIG_BT_CTLR_ADV_ISO=y
85-
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
85+
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
8686
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
8787

8888
# ISO Receive Controller
@@ -95,12 +95,12 @@ CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
9595
# ISO Connection Oriented
9696
CONFIG_BT_CTLR_CENTRAL_ISO=y
9797
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
98-
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
98+
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
9999
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
100100

101101
# ISO Transmissions
102102
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
103-
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
103+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
104104
CONFIG_BT_CTLR_ISOAL_SOURCES=2
105105

106106
# ISO Receptions

samples/bluetooth/hci_ipc/nrf5340_cpunet_iso_broadcast-bt_ll_sw_split.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ CONFIG_BT_CTLR_ADV_PERIODIC=y
3131
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
3232
CONFIG_BT_CTLR_ADV_ISO=y
3333
CONFIG_BT_CTLR_ISO_TX_BUFFERS=16
34-
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
35-
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
34+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
35+
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
3636
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
3737
CONFIG_BT_CTLR_ISOAL_SOURCES=2
3838

samples/bluetooth/hci_ipc/nrf5340_cpunet_iso_central-bt_ll_sw_split.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=191
4444
# ISO Connection Oriented
4545
CONFIG_BT_CTLR_CENTRAL_ISO=y
4646
CONFIG_BT_CTLR_PERIPHERAL_ISO=n
47-
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
47+
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
4848
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
4949

5050
# ISO Transmissions
5151
CONFIG_BT_CTLR_ISO_TX_BUFFERS=16
52-
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
52+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
5353
CONFIG_BT_CTLR_ISOAL_SOURCES=2
5454

5555
# ISO Receptions

samples/bluetooth/hci_ipc/nrf5340_cpunet_iso_peripheral-bt_ll_sw_split.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
4444
# ISO Connection Oriented
4545
CONFIG_BT_CTLR_CENTRAL_ISO=n
4646
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
47-
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
47+
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
4848
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
4949

5050
# ISO Transmissions
5151
CONFIG_BT_CTLR_ISO_TX_BUFFERS=16
52-
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
52+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
5353
CONFIG_BT_CTLR_ISOAL_SOURCES=2
5454

5555
# ISO Receptions

samples/bluetooth/hci_uart/overlay-all-bt_ll_sw_split.conf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ CONFIG_BT_CTLR_DF_CONN_CTE_REQ=y
8080
CONFIG_BT_CTLR_ADV_EXT=y
8181
CONFIG_BT_CTLR_ADV_PERIODIC=y
8282
CONFIG_BT_CTLR_ADV_ISO=y
83-
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
83+
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
8484
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
8585

8686
# ISO Receive Controller
@@ -93,12 +93,12 @@ CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
9393
# ISO Connection Oriented
9494
CONFIG_BT_CTLR_CENTRAL_ISO=y
9595
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
96-
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
96+
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
9797
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
9898

9999
# ISO Transmissions
100100
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
101-
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
101+
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
102102
CONFIG_BT_CTLR_ISOAL_SOURCES=2
103103

104104
# ISO Receptions

0 commit comments

Comments
 (0)