Bluetooth: Controller: Introduce BT_CTLR_PERIPHERAL_ISO_RESERVE_MAX

Introduce BT_CTLR_PERIPHERAL_ISO_RESERVE_MAX Kconfig option
so that disabling this option will use minimum time
reservation and exercise the peripheral ISO connection event
continuation using is_abort_cb mechanism.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2024-07-12 04:18:38 +02:00 committed by Fabio Baltieri
commit 468b60087e
3 changed files with 17 additions and 1 deletions

View file

@ -73,6 +73,7 @@ CONFIG_BT_CTLR_SCAN_AUX_SET=1
CONFIG_BT_CTLR_ADV_RESERVE_MAX=n CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
CONFIG_BT_CTLR_PERIPHERAL_RESERVE_MAX=n CONFIG_BT_CTLR_PERIPHERAL_RESERVE_MAX=n
CONFIG_BT_CTLR_PERIPHERAL_ISO_RESERVE_MAX=n
CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=y CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=y
CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
CONFIG_BT_CTLR_SCAN_UNRESERVED=y CONFIG_BT_CTLR_SCAN_UNRESERVED=y

View file

@ -767,6 +767,17 @@ config BT_CTLR_PERIPHERAL_RESERVE_MAX
the is_abort_cb mechanism to decide on continuation of the connection the is_abort_cb mechanism to decide on continuation of the connection
event. event.
config BT_CTLR_PERIPHERAL_ISO_RESERVE_MAX
bool "Use maximum data PDU size time reservation for Peripheral"
depends on BT_CTLR_PERIPHERAL_ISO
default y
help
Use the maximum Peripheral CIG event time reservation.
If maximum Peripheral CIG event time reservation is not enabled, then
only time required to transmit or receive the burst number of CIS PDUs
is reserved.
config BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX config BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX
bool "Reserve maximum event overhead in time reservations" bool "Reserve maximum event overhead in time reservations"
default y default y

View file

@ -1032,7 +1032,11 @@ void ull_conn_iso_start(struct ll_conn *conn, uint16_t cis_handle,
/* FIXME: Time reservation for interleaved packing */ /* FIXME: Time reservation for interleaved packing */
/* Below is time reservation for sequential packing */ /* Below is time reservation for sequential packing */
slot_us = cis->lll.sub_interval * cis->lll.nse; if (IS_ENABLED(CONFIG_BT_CTLR_PERIPHERAL_ISO_RESERVE_MAX)) {
slot_us = cis->lll.sub_interval * cis->lll.nse;
} else {
slot_us = cis->lll.sub_interval * MAX(cis->lll.tx.bn, cis->lll.rx.bn);
}
if (IS_ENABLED(CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX)) { if (IS_ENABLED(CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX)) {
slot_us += EVENT_OVERHEAD_START_US + EVENT_OVERHEAD_END_US; slot_us += EVENT_OVERHEAD_START_US + EVENT_OVERHEAD_END_US;