Bluetooth: controller: Add extra data storage for ext. adv. configuration

The storage for extra data is required for implementation of
CTE transmission with periodic advertising.

Data required to transmit CTE correctly are compound of two parts:
- PDU field CTEInfo
- radio configuration to transmit actual constant tone at the end
  of PDU.

Extra data is a storage required for radio configuration data.
Nevertheless it must be in compliance with content of CTEInfo field.
Because of that extra data is stored as part of lll_adv_pdu and
is double buffered like PDU memory.

Bluetooth 5.1 spec. allows to enable or disable CTE TX
and change CTE TX parameters when periodic advertising is
enabled. Besides that CTE TX settings may be set before periodic
advertising parameters are set. In such situation ll_adv_sync_set
may be not yet created.
To overcome these constraints ULL should store CTE TX
settings and forward them to LLL only when CTE TX is enabled.
Because of above reasons ULL stores CTE TX settings in ll_adv_set.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
This commit is contained in:
Piotr Pryga 2021-01-09 03:58:52 -08:00 committed by Anas Nashif
commit b56a2d1384
9 changed files with 376 additions and 51 deletions

View file

@ -175,6 +175,20 @@ config BT_CTLR_ADV_DATA_BUF_MAX
Maximum number of buffered Advertising Data payload across enabled
advertising sets.
config BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY
bool
depends on BT_CTLR_ADV_EXT
help
Add additional memory to advertising PDU storage. The memory is a
general purpose storage for data that should be send from ULL to LLL.
The data stored in the memory are in synchoronization with content
of PDU memory.
For example, the extra data memory is used for storage for parameters
to configure Radio peripheral to transmit CTE. The configuration data
must be synchronized with CTEInfo field in extended advertising header
that is part of PDU data.
config BT_CTRL_ADV_ADI_IN_SCAN_RSP
bool "Include ADI in AUX_SCAN_RSP PDU"
depends on BT_BROADCASTER && BT_CTLR_ADV_EXT