Skip to content

Commit d435acf

Browse files
cvinayakfabiobaltieri
authored andcommitted
Bluetooth: Controller: Fix CIS accept fails with unsupp parameters
Fix CIS accepted by Host being failed in the Controller with reason 0x20 Unsupported LL Parameter Value, by relaxing the check that the ACL connection is sufficiently placed such that the time reservation using in the Controller implementation does not overlap with the CIG event. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
1 parent 3a5bbb1 commit d435acf

File tree

4 files changed

+15
-1
lines changed

4 files changed

+15
-1
lines changed

subsys/bluetooth/controller/Kconfig.ll_sw_split

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,16 @@ config BT_CTLR_SCAN_ENABLE_STRICT
536536
Enforce returning HCI Error Command Disallowed on enabling/disabling
537537
already enabled/disabled scanning.
538538

539+
config BT_CTLR_CIS_ACCEPT_MIN_OFFSET_STRICT
540+
bool "Enforce Strict CIS Minimum Offset Check"
541+
depends on BT_CTLR_PERIPHERAL_ISO
542+
help
543+
Enforce strict check of CIS minimum offset accepted by the peripheral
544+
considering that there will be no overlap of ACL connection with the
545+
CIG events. Radio and CPU overheads for an ACL connection event is
546+
considered and checks the CIS minimum offset is greater than the time
547+
reservation for the ACL connection.
548+
539549
config BT_CTLR_ISOAL_SN_STRICT
540550
bool "Enforce Strict Tx ISO Data Sequence Number use"
541551
depends on !BT_CTLR_ISOAL_PSN_IGNORE && (BT_CTLR_ADV_ISO || \

subsys/bluetooth/controller/ll_sw/ull_peripheral_iso.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ uint8_t ll_cis_accept(uint16_t handle)
104104
if (conn) {
105105
uint32_t cis_offset_min;
106106

107-
if (IS_ENABLED(CONFIG_BT_CTLR_PERIPHERAL_ISO_EARLY_CIG_START)) {
107+
if (IS_ENABLED(CONFIG_BT_CTLR_PERIPHERAL_ISO_EARLY_CIG_START) ||
108+
!IS_ENABLED(CONFIG_BT_CTLR_CIS_ACCEPT_MIN_OFFSET_STRICT)) {
108109
/* Early start allows offset down to spec defined minimum */
109110
cis_offset_min = CIS_MIN_OFFSET_MIN;
110111
} else {

tests/bluetooth/init/prj_ctlr_5_x_dbg.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
3939
CONFIG_BT_CTLR_ADV_ISO_RESERVE_MAX=n
4040
CONFIG_BT_CTLR_SYNC_ISO_RESERVE_MAX=n
4141
CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
42+
CONFIG_BT_CTLR_CIS_ACCEPT_MIN_OFFSET_STRICT=y
4243
CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=n
4344
CONFIG_BT_CTLR_PROFILE_ISR=y
4445
CONFIG_BT_CTLR_DEBUG_PINS=y

tests/bluetooth/init/prj_ctlr_dbg.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ CONFIG_BT_CTLR_LLL_PRIO=0
2121
CONFIG_BT_CTLR_ULL_HIGH_PRIO=1
2222
CONFIG_BT_CTLR_XTAL_ADVANCED=n
2323
CONFIG_BT_CTLR_SCHED_ADVANCED=n
24+
CONFIG_BT_CTLR_CIS_ACCEPT_MIN_OFFSET_STRICT=n
25+
CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=y
2426
CONFIG_BT_CTLR_RADIO_ENABLE_FAST=y
2527
CONFIG_BT_CTLR_TIFS_HW=n
2628
CONFIG_BT_CTLR_TX_RETRY_DISABLE=y

0 commit comments

Comments
 (0)