Bluetooth: controller: Enable back-to-back chaining for periodic adv

This enables chaining ota for periodic advertising. AUX_CHAIN_IND PDUs
will be sent automatically if AuxPtr is detected in preceding PDU.
AuxPtr offset is always set to achieve minimal required frame spacing,
i.e. 300us (T_mafs). AuxPtr in all PDUs in advertising train are
updated on enqueue since PDU spacing is already known at that time so
we do not need to waste time in LLL.

Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@codecoup.pl>
This commit is contained in:
Andrzej Kaczmarek 2021-02-02 15:37:05 +01:00 committed by Anas Nashif
commit 7c81ed71d0
6 changed files with 197 additions and 12 deletions

View file

@ -172,6 +172,26 @@ config BT_CTLR_ADV_PDU_LINK
is required to enable advertising data trains (i.e. transmission of
AUX_CHAIN_IND).
config BT_CTLR_ADV_SYNC_PDU_BACK2BACK
bool "Enable back-to-back transmission of periodic advertising trains"
depends on BT_CTLR_ADV_PERIODIC
select BT_CTLR_ADV_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.
Note, consecutive AUX_CHAIN_IND packets are not scheduled but sent at
a constant offset on a best effort basis. This means advertising train can
be preempted by other event at any time.
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
help
Specific AUX Frame Space to be used for back-to-back transmission of
periodic advertising trains. Time specified in microseconds.
config BT_CTLR_ADV_DATA_BUF_MAX
int "Advertising Data Maximum Buffers"
depends on BT_BROADCASTER