Bluetooth: Controller: Add Kconfig for minimal time reservation
Add Kconfig to use minimal time reservation for auxiliary and sync PDU reception. A peer device could be scheduling multiple advertising sets in a short duration with small PDUs hence using the minimal time reservation would avoid skipping closely scheduled reception of multiple auxiliary PDUs. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
6de7e461cd
commit
1a1f347ad3
4 changed files with 23 additions and 2 deletions
|
@ -284,6 +284,17 @@ config BT_CTRL_ADV_ADI_IN_SCAN_RSP
|
|||
help
|
||||
Enable ADI field in AUX_SCAN_RSP PDU
|
||||
|
||||
config BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN
|
||||
bool "Use minimal Scan Auxiliary and Periodic Sync PDU time reservation"
|
||||
depends on (BT_OBSERVER && BT_CTLR_ADV_EXT) || BT_CTLR_SYNC_PERIODIC
|
||||
default y
|
||||
help
|
||||
Use minimal time reservation for Auxiliary and Periodic Sync PDU
|
||||
reception. A peer device could scheduling multiple advertising sets
|
||||
in a short duration with small PDUs hence using the minimal time
|
||||
reservation would avoid skipping closely scheduled reception of
|
||||
multiple Auxiliary or Periodic Sync PDUs.
|
||||
|
||||
config BT_CTLR_SYNC_PERIODIC_SKIP_ON_SCAN_AUX
|
||||
bool "Skip Periodic Sync event on overlap with Extended Scan Event"
|
||||
depends on BT_CTLR_SYNC_PERIODIC
|
||||
|
|
|
@ -41,6 +41,14 @@
|
|||
|
||||
/* Advertisement channel maximum payload size */
|
||||
#if defined(CONFIG_BT_CTLR_ADV_EXT)
|
||||
|
||||
/* Extended Scan and Periodic Sync Rx PDU time reservation */
|
||||
#if defined(CONFIG_BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN)
|
||||
#define PDU_AC_EXT_PAYLOAD_RX_SIZE 0U
|
||||
#else /* !CONFIG_BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN */
|
||||
#define PDU_AC_EXT_PAYLOAD_RX_SIZE PDU_AC_EXT_PAYLOAD_SIZE_MAX
|
||||
#endif /* !CONFIG_BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN */
|
||||
|
||||
#define PDU_AC_EXT_HEADER_SIZE_MIN offsetof(struct pdu_adv_com_ext_adv, \
|
||||
ext_hdr_adv_data)
|
||||
#define PDU_AC_EXT_HEADER_SIZE_MAX 63
|
||||
|
|
|
@ -654,7 +654,8 @@ void ull_scan_aux_setup(memq_link_t *link, struct node_rx_hdr *rx)
|
|||
aux->ull.ticks_slot =
|
||||
HAL_TICKER_US_TO_TICKS(EVENT_OVERHEAD_START_US +
|
||||
ready_delay_us +
|
||||
PDU_AC_MAX_US(0U, lll_aux->phy) +
|
||||
PDU_AC_MAX_US(PDU_AC_EXT_PAYLOAD_RX_SIZE,
|
||||
lll_aux->phy) +
|
||||
EVENT_OVERHEAD_END_US);
|
||||
|
||||
ticks_slot_offset = MAX(aux->ull.ticks_active_to_start,
|
||||
|
|
|
@ -761,7 +761,8 @@ void ull_sync_setup(struct ll_scan_set *scan, struct ll_scan_aux_set *aux,
|
|||
sync->ull.ticks_slot =
|
||||
HAL_TICKER_US_TO_TICKS(EVENT_OVERHEAD_START_US +
|
||||
ready_delay_us +
|
||||
PDU_AC_MAX_US(0U, lll->phy) +
|
||||
PDU_AC_MAX_US(PDU_AC_EXT_PAYLOAD_RX_SIZE,
|
||||
lll->phy) +
|
||||
EVENT_OVERHEAD_END_US);
|
||||
|
||||
ticks_slot_offset = MAX(sync->ull.ticks_active_to_start,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue