Skip to content

Commit 1e2ad5a

Browse files
ppryga-nordiccfriedt
authored andcommitted
Bluetooth: controller: Make per. adv. PDUs count related to max CTE num
Amount of memory allocated for advertising PDUs (including periodic advertising) depends on two factors: - maximum advertising data length - maximum number of CTE in a periodic advertising chain. Maximum advertising data length is divided by maximum size of a single fragment (number of payload bytes that single advertising PDU may hold) to get required number of fragments. Actual number of PDUs allocated for advertising is maximum of acutal number of advertising payload fragments and maximum number of CTEs. Signed-off-by: Piotr Pryga <[email protected]>
1 parent f01b77f commit 1e2ad5a

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

subsys/bluetooth/controller/ll_sw/nordic/lll/lll_adv.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,10 @@ static inline bool isr_rx_ci_adva_check(uint8_t tx_addr, uint8_t *addr,
8383
struct pdu_adv *ci);
8484

8585
#if defined(CONFIG_BT_CTLR_ADV_EXT)
86-
#define PAYLOAD_FRAG_COUNT ((CONFIG_BT_CTLR_ADV_DATA_LEN_MAX + \
87-
PDU_AC_PAYLOAD_SIZE_MAX - 1) / \
88-
PDU_AC_PAYLOAD_SIZE_MAX)
86+
#define PAYLOAD_BASED_FRAG_COUNT ((CONFIG_BT_CTLR_ADV_DATA_LEN_MAX + \
87+
PDU_AC_PAYLOAD_SIZE_MAX - 1) / \
88+
PDU_AC_PAYLOAD_SIZE_MAX)
89+
#define PAYLOAD_FRAG_COUNT MAX(PAYLOAD_BASED_FRAG_COUNT, BT_CTLR_DF_PER_ADV_CTE_NUM_MAX)
8990
#define BT_CTLR_ADV_AUX_SET CONFIG_BT_CTLR_ADV_AUX_SET
9091
#if defined(CONFIG_BT_CTLR_ADV_PERIODIC)
9192
#define BT_CTLR_ADV_SYNC_SET CONFIG_BT_CTLR_ADV_SYNC_SET

subsys/bluetooth/controller/ll_sw/nordic/lll/lll_df_types.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
#define BT_CTLR_DF_MAX_ANT_SW_PATTERN_LEN 0
2323
#endif
2424

25+
#if defined(CONFIG_BT_CTLR_DF_PER_ADV_CTE_NUM_MAX)
26+
#define BT_CTLR_DF_PER_ADV_CTE_NUM_MAX CONFIG_BT_CTLR_DF_PER_ADV_CTE_NUM_MAX
27+
#else
28+
#define BT_CTLR_DF_PER_ADV_CTE_NUM_MAX 0
29+
#endif
30+
2531
/* @brief Configuration of Constant Tone Extension for connectionless
2632
* transmission.
2733
*/

0 commit comments

Comments
 (0)