Bluetooth: Controller: Duplicate and add aux offset to chain PDU in ULL

Refactor PDU chaining implementation to add aux offset in
the aux pointer field in the parent PDU when duplicating
chain PDUs.

By adding the aux offsets in the ULL execution context the
LLL prepare execution in Extended and Periodic Advertising
does not need to have a O(n) while loop in LLL execution
context.

This will reduce CPU use in the highest priority ISR
compared to current implementation where chain PDUs where
duplicated in ULL execution context and aux offset populated
in LLL execution context.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2022-07-12 10:34:04 +05:30 committed by Carles Cufí
commit 84450d8981
4 changed files with 143 additions and 211 deletions

View file

@ -215,10 +215,15 @@ config BT_CTLR_ADV_PDU_BACK2BACK_AFS
Specific AUX Frame Space to be used for back-to-back transmission of
extended advertising trains. Time specified in microseconds.
config BT_CTLR_ADV_SYNC_PDU_LINK
bool
depends on BT_CTLR_ADV_PERIODIC
select BT_CTLR_ADV_PDU_LINK
config BT_CTLR_ADV_SYNC_PDU_BACK2BACK
bool "Back-to-back transmission of periodic advertising trains"
depends on BT_CTLR_ADV_PERIODIC
select BT_CTLR_ADV_PDU_LINK
select BT_CTLR_ADV_SYNC_PDU_LINK
help
Enables transmission of AUX_CHAIN_IND in periodic advertising train by
sending each AUX_CHAIN_IND one after another back-to-back.
@ -229,8 +234,8 @@ config BT_CTLR_ADV_SYNC_PDU_BACK2BACK
config BT_CTLR_ADV_SYNC_PDU_BACK2BACK_AFS
int "AUX Frame Space for back-to-back transmission of periodic advertising trains"
depends on BT_CTLR_ADV_SYNC_PDU_BACK2BACK
default 300
range 300 1000
default 300
help
Specific AUX Frame Space to be used for back-to-back transmission of
periodic advertising trains. Time specified in microseconds.