Skip to content

Commit f6bf73d

Browse files
cvinayakcarlescufi
authored andcommitted
Bluetooth: Controller: Use NRF_CCM HEADERMASK for ISO PDU encryption
Use NRF_CCM HEADERMASK register to use correct Additional Authentication Data (AAD) from ISO PDU header. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
1 parent 9ede8cd commit f6bf73d

File tree

6 files changed

+120
-51
lines changed

6 files changed

+120
-51
lines changed

subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.c

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,9 @@ void radio_pkt_configure(uint8_t bits_len, uint8_t max_len, uint8_t flags)
445445
/* To use same Data Channel PDU structure with nRF5 specific overhead
446446
* byte, include the S1 field in radio packet configuration.
447447
*/
448-
if (pdu_type == RADIO_PKT_CONF_PDU_TYPE_DC) {
448+
if ((pdu_type == RADIO_PKT_CONF_PDU_TYPE_DC) ||
449+
(pdu_type == RADIO_PKT_CONF_PDU_TYPE_BIS) ||
450+
(pdu_type == RADIO_PKT_CONF_PDU_TYPE_CIS)) {
449451
extra |= (RADIO_PCNF0_S1INCL_Include <<
450452
RADIO_PCNF0_S1INCL_Pos) & RADIO_PCNF0_S1INCL_Msk;
451453
#if defined(CONFIG_BT_CTLR_DF)
@@ -1643,7 +1645,7 @@ void radio_gpio_pa_lna_disable(void)
16431645

16441646
static uint8_t MALIGN(4) _ccm_scratch[(HAL_RADIO_PDU_LEN_MAX - 4) + 16];
16451647

1646-
void *radio_ccm_rx_pkt_set(struct ccm *ccm, uint8_t phy, void *pkt)
1648+
static void *radio_ccm_ext_rx_pkt_set(struct ccm *cnf, uint8_t phy, uint8_t pdu_type, void *pkt)
16471649
{
16481650
uint32_t mode;
16491651

@@ -1726,8 +1728,23 @@ void *radio_ccm_rx_pkt_set(struct ccm *ccm, uint8_t phy, void *pkt)
17261728
NRF_CCM->MAXPACKETSIZE = max_len - 4U;
17271729
#endif
17281730

1731+
#if defined(CONFIG_HAS_HW_NRF_CCM_HEADERMASK)
1732+
switch (pdu_type) {
1733+
case RADIO_PKT_CONF_PDU_TYPE_BIS:
1734+
NRF_CCM->HEADERMASK = 0xC3; /* mask CSSN and CSTF */
1735+
break;
1736+
case RADIO_PKT_CONF_PDU_TYPE_CIS:
1737+
NRF_CCM->HEADERMASK = 0xA3; /* mask SN, NESN, CIE and NPI */
1738+
break;
1739+
default:
1740+
/* Using default reset value of HEADERMASK */
1741+
NRF_CCM->HEADERMASK = 0xE3; /* mask SN, NESN and MD */
1742+
break;
1743+
}
1744+
#endif /* CONFIG_HAS_HW_NRF_CCM_HEADERMASK */
1745+
17291746
NRF_CCM->MODE = mode;
1730-
NRF_CCM->CNFPTR = (uint32_t)ccm;
1747+
NRF_CCM->CNFPTR = (uint32_t)cnf;
17311748
NRF_CCM->INPTR = (uint32_t)_pkt_scratch;
17321749
NRF_CCM->OUTPTR = (uint32_t)pkt;
17331750
NRF_CCM->SCRATCHPTR = (uint32_t)_ccm_scratch;
@@ -1741,7 +1758,17 @@ void *radio_ccm_rx_pkt_set(struct ccm *ccm, uint8_t phy, void *pkt)
17411758
return _pkt_scratch;
17421759
}
17431760

1744-
void *radio_ccm_tx_pkt_set(struct ccm *ccm, void *pkt)
1761+
void *radio_ccm_rx_pkt_set(struct ccm *cnf, uint8_t phy, void *pkt)
1762+
{
1763+
return radio_ccm_ext_rx_pkt_set(cnf, phy, RADIO_PKT_CONF_PDU_TYPE_DC, pkt);
1764+
}
1765+
1766+
void *radio_ccm_iso_rx_pkt_set(struct ccm *cnf, uint8_t phy, uint8_t pdu_type, void *pkt)
1767+
{
1768+
return radio_ccm_ext_rx_pkt_set(cnf, phy, pdu_type, pkt);
1769+
}
1770+
1771+
static void *radio_ccm_ext_tx_pkt_set(struct ccm *cnf, uint8_t pdu_type, void *pkt)
17451772
{
17461773
uint32_t mode;
17471774

@@ -1772,8 +1799,23 @@ void *radio_ccm_tx_pkt_set(struct ccm *ccm, void *pkt)
17721799
NRF_CCM->MAXPACKETSIZE = max_len - 4U;
17731800
#endif
17741801

1802+
#if defined(CONFIG_HAS_HW_NRF_CCM_HEADERMASK)
1803+
switch (pdu_type) {
1804+
case RADIO_PKT_CONF_PDU_TYPE_BIS:
1805+
NRF_CCM->HEADERMASK = 0xC3; /* mask CSSN and CSTF */
1806+
break;
1807+
case RADIO_PKT_CONF_PDU_TYPE_CIS:
1808+
NRF_CCM->HEADERMASK = 0xA3; /* mask SN, NESN, CIE and NPI */
1809+
break;
1810+
default:
1811+
/* Using default reset value of HEADERMASK */
1812+
NRF_CCM->HEADERMASK = 0xE3; /* mask SN, NESN and MD */
1813+
break;
1814+
}
1815+
#endif /* CONFIG_HAS_HW_NRF_CCM_HEADERMASK */
1816+
17751817
NRF_CCM->MODE = mode;
1776-
NRF_CCM->CNFPTR = (uint32_t)ccm;
1818+
NRF_CCM->CNFPTR = (uint32_t)cnf;
17771819
NRF_CCM->INPTR = (uint32_t)pkt;
17781820
NRF_CCM->OUTPTR = (uint32_t)_pkt_scratch;
17791821
NRF_CCM->SCRATCHPTR = (uint32_t)_ccm_scratch;
@@ -1787,6 +1829,16 @@ void *radio_ccm_tx_pkt_set(struct ccm *ccm, void *pkt)
17871829
return _pkt_scratch;
17881830
}
17891831

1832+
void *radio_ccm_tx_pkt_set(struct ccm *cnf, void *pkt)
1833+
{
1834+
return radio_ccm_ext_tx_pkt_set(cnf, RADIO_PKT_CONF_PDU_TYPE_DC, pkt);
1835+
}
1836+
1837+
void *radio_ccm_iso_tx_pkt_set(struct ccm *cnf, uint8_t pdu_type, void *pkt)
1838+
{
1839+
return radio_ccm_ext_tx_pkt_set(cnf, pdu_type, pkt);
1840+
}
1841+
17901842
uint32_t radio_ccm_is_done(void)
17911843
{
17921844
nrf_ccm_int_enable(NRF_CCM, CCM_INTENSET_ENDCRYPT_Msk);

subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/radio/radio.h

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,25 @@
66
*/
77

88
/* Set of macros related with Radio packet configuration flags */
9-
/* PDU type, 1 bit field*/
9+
/* PDU type, 2 bit field*/
1010
#define RADIO_PKT_CONF_PDU_TYPE_POS (0U)
11-
#define RADIO_PKT_CONF_PDU_TYPE_MSK BIT(RADIO_PKT_CONF_PDU_TYPE_POS)
11+
#define RADIO_PKT_CONF_PDU_TYPE_MSK (BIT_MASK(2U))
1212
#define RADIO_PKT_CONF_PDU_TYPE_AC (0U)
1313
#define RADIO_PKT_CONF_PDU_TYPE_DC (1U)
14-
#define RADIO_PKT_CONF_PDU_TYPE_BIS (1U)
15-
#define RADIO_PKT_CONF_PDU_TYPE_CIS (1U)
14+
#define RADIO_PKT_CONF_PDU_TYPE_BIS (2U)
15+
#define RADIO_PKT_CONF_PDU_TYPE_CIS (3U)
1616
/* PHY type, three bit field */
17-
#define RADIO_PKT_CONF_PHY_POS (1U)
18-
#define RADIO_PKT_CONF_PHY_MSK (BIT_MASK(3U))
19-
#define RADIO_PKT_CONF_PHY_LEGACY (0U)
20-
#define RADIO_PKT_CONF_PHY_1M (BIT(0U))
21-
#define RADIO_PKT_CONF_PHY_2M (BIT(1U))
22-
#define RADIO_PKT_CONF_PHY_CODED (BIT(2U))
17+
#define RADIO_PKT_CONF_PHY_POS (2U)
18+
#define RADIO_PKT_CONF_PHY_MSK (BIT_MASK(3U))
19+
#define RADIO_PKT_CONF_PHY_LEGACY (0U)
20+
#define RADIO_PKT_CONF_PHY_1M (BIT(0U))
21+
#define RADIO_PKT_CONF_PHY_2M (BIT(1U))
22+
#define RADIO_PKT_CONF_PHY_CODED (BIT(2U))
2323
/* CTE enabled, 1 bit field */
24-
#define RADIO_PKT_CONF_CTE_POS (4U)
25-
#define RADIO_PKT_CONF_CTE_MSK BIT(0)
24+
#define RADIO_PKT_CONF_CTE_POS (5U)
25+
#define RADIO_PKT_CONF_CTE_MSK (BIT_MASK(1U))
2626
#define RADIO_PKT_CONF_CTE_DISABLED (0U)
27-
#define RADIO_PKT_CONF_CTE_ENABLED (1U)
27+
#define RADIO_PKT_CONF_CTE_ENABLED (1U)
2828

2929
/* Macro to define length of the BLE packet length field in bits */
3030
#define RADIO_PKT_CONF_LENGTH_8BIT (8U)
@@ -164,7 +164,9 @@ void radio_gpio_pa_lna_enable(uint32_t trx_us);
164164
void radio_gpio_pa_lna_disable(void);
165165

166166
void *radio_ccm_rx_pkt_set(struct ccm *ccm, uint8_t phy, void *pkt);
167+
void *radio_ccm_iso_rx_pkt_set(struct ccm *ccm, uint8_t phy, uint8_t pdu_type, void *pkt);
167168
void *radio_ccm_tx_pkt_set(struct ccm *ccm, void *pkt);
169+
void *radio_ccm_iso_tx_pkt_set(struct ccm *ccm, uint8_t pdu_type, void *pkt);
168170
uint32_t radio_ccm_is_done(void);
169171
uint32_t radio_ccm_mic_is_valid(void);
170172

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,9 @@ static int prepare_cb_common(struct lll_prepare_param *p)
361361
RADIO_PKT_CONF_CTE_DISABLED);
362362
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
363363
(lll->max_pdu + PDU_MIC_SIZE), pkt_flags);
364-
radio_pkt_tx_set(radio_ccm_tx_pkt_set(&lll->ccm_tx, pdu));
364+
radio_pkt_tx_set(radio_ccm_iso_tx_pkt_set(&lll->ccm_tx,
365+
RADIO_PKT_CONF_PDU_TYPE_BIS,
366+
pdu));
365367
} else {
366368
uint8_t pkt_flags;
367369

@@ -691,7 +693,9 @@ static void isr_tx_common(void *param,
691693
(void)memcpy(lll->ccm_tx.iv, lll->giv, 4U);
692694
mem_xor_32(lll->ccm_tx.iv, lll->ccm_tx.iv, access_addr);
693695

694-
radio_pkt_tx_set(radio_ccm_tx_pkt_set(&lll->ccm_tx, pdu));
696+
radio_pkt_tx_set(radio_ccm_iso_tx_pkt_set(&lll->ccm_tx,
697+
RADIO_PKT_CONF_PDU_TYPE_BIS,
698+
pdu));
695699
} else {
696700
radio_pkt_tx_set(pdu);
697701
}

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

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -312,20 +312,21 @@ static int prepare_cb(struct lll_prepare_param *p)
312312

313313
cis_lll->tx.ccm.counter = payload_count;
314314

315-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
315+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
316316
phy,
317317
RADIO_PKT_CONF_CTE_DISABLED);
318318
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
319319
(cis_lll->tx.max_pdu + PDU_MIC_SIZE),
320320
pkt_flags);
321-
radio_pkt_tx_set(radio_ccm_tx_pkt_set(&cis_lll->tx.ccm,
321+
radio_pkt_tx_set(radio_ccm_iso_tx_pkt_set(&cis_lll->tx.ccm,
322+
RADIO_PKT_CONF_PDU_TYPE_CIS,
322323
pdu_tx));
323324
#endif /* CONFIG_BT_CTLR_LE_ENC */
324325

325326
} else {
326327
uint8_t pkt_flags;
327328

328-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
329+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
329330
phy,
330331
RADIO_PKT_CONF_CTE_DISABLED);
331332
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
@@ -506,23 +507,25 @@ static void isr_tx(void *param)
506507

507508
payload_count = (cis_lll->event_count * cis_lll->rx.bn) +
508509
(cis_lll->rx.bn_curr - 1U);
510+
509511
cis_lll->rx.ccm.counter = payload_count;
510512

511-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
513+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
512514
cis_lll->rx.phy,
513515
RADIO_PKT_CONF_CTE_DISABLED);
514516
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
515517
(cis_lll->rx.max_pdu + PDU_MIC_SIZE),
516518
pkt_flags);
517-
radio_pkt_rx_set(radio_ccm_rx_pkt_set(&cis_lll->rx.ccm,
518-
cis_lll->rx.phy,
519-
node_rx->pdu));
519+
radio_pkt_rx_set(radio_ccm_iso_rx_pkt_set(&cis_lll->rx.ccm,
520+
cis_lll->rx.phy,
521+
RADIO_PKT_CONF_PDU_TYPE_CIS,
522+
node_rx->pdu));
520523
#endif /* CONFIG_BT_CTLR_LE_ENC */
521524

522525
} else {
523526
uint8_t pkt_flags;
524527

525-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
528+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
526529
cis_lll->rx.phy,
527530
RADIO_PKT_CONF_CTE_DISABLED);
528531
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
@@ -1093,19 +1096,20 @@ static void isr_prepare_subevent(void *param)
10931096

10941097
cis_lll->tx.ccm.counter = payload_count;
10951098

1096-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
1099+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
10971100
cis_lll->tx.phy,
10981101
RADIO_PKT_CONF_CTE_DISABLED);
10991102
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
11001103
(cis_lll->tx.max_pdu + PDU_MIC_SIZE), pkt_flags);
1101-
radio_pkt_tx_set(radio_ccm_tx_pkt_set(&cis_lll->tx.ccm,
1104+
radio_pkt_tx_set(radio_ccm_iso_tx_pkt_set(&cis_lll->tx.ccm,
1105+
RADIO_PKT_CONF_PDU_TYPE_CIS,
11021106
pdu_tx));
11031107
#endif /* CONFIG_BT_CTLR_LE_ENC */
11041108

11051109
} else {
11061110
uint8_t pkt_flags;
11071111

1108-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
1112+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
11091113
cis_lll->tx.phy,
11101114
RADIO_PKT_CONF_CTE_DISABLED);
11111115
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,

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

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -264,20 +264,21 @@ static int prepare_cb(struct lll_prepare_param *p)
264264
(cis_lll->rx.bn_curr - 1U);
265265
cis_lll->rx.ccm.counter = payload_cnt;
266266

267-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
267+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
268268
phy,
269269
RADIO_PKT_CONF_CTE_DISABLED);
270270
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
271271
(cis_lll->rx.max_pdu + PDU_MIC_SIZE),
272272
pkt_flags);
273-
radio_pkt_rx_set(radio_ccm_rx_pkt_set(&cis_lll->rx.ccm, phy,
274-
node_rx->pdu));
273+
radio_pkt_rx_set(radio_ccm_iso_rx_pkt_set(&cis_lll->rx.ccm, phy,
274+
RADIO_PKT_CONF_PDU_TYPE_CIS,
275+
node_rx->pdu));
275276
#endif /* CONFIG_BT_CTLR_LE_ENC */
276277

277278
} else {
278279
uint8_t pkt_flags;
279280

280-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
281+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
281282
phy,
282283
RADIO_PKT_CONF_CTE_DISABLED);
283284
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
@@ -746,20 +747,21 @@ static void isr_rx(void *param)
746747

747748
cis_lll->tx.ccm.counter = payload_count;
748749

749-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
750+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
750751
cis_lll->tx.phy,
751752
RADIO_PKT_CONF_CTE_DISABLED);
752753
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
753754
(cis_lll->tx.max_pdu + PDU_MIC_SIZE),
754755
pkt_flags);
755-
radio_pkt_tx_set(radio_ccm_tx_pkt_set(&cis_lll->tx.ccm,
756+
radio_pkt_tx_set(radio_ccm_iso_tx_pkt_set(&cis_lll->tx.ccm,
757+
RADIO_PKT_CONF_PDU_TYPE_CIS,
756758
pdu_tx));
757759
#endif /* CONFIG_BT_CTLR_LE_ENC */
758760

759761
} else {
760762
uint8_t pkt_flags;
761763

762-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
764+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
763765
cis_lll->tx.phy,
764766
RADIO_PKT_CONF_CTE_DISABLED);
765767
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
@@ -890,21 +892,22 @@ static void isr_tx(void *param)
890892
(cis_lll->rx.bn_curr - 1U);
891893
cis_lll->rx.ccm.counter = payload_count;
892894

893-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
895+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
894896
cis_lll->rx.phy,
895897
RADIO_PKT_CONF_CTE_DISABLED);
896898
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
897899
(cis_lll->rx.max_pdu + PDU_MIC_SIZE),
898900
pkt_flags);
899-
radio_pkt_rx_set(radio_ccm_rx_pkt_set(&cis_lll->rx.ccm,
900-
cis_lll->rx.phy,
901-
node_rx->pdu));
901+
radio_pkt_rx_set(radio_ccm_iso_rx_pkt_set(&cis_lll->rx.ccm,
902+
cis_lll->rx.phy,
903+
RADIO_PKT_CONF_PDU_TYPE_CIS,
904+
node_rx->pdu));
902905
#endif /* CONFIG_BT_CTLR_LE_ENC */
903906

904907
} else {
905908
uint8_t pkt_flags;
906909

907-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
910+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
908911
cis_lll->rx.phy,
909912
RADIO_PKT_CONF_CTE_DISABLED);
910913
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
@@ -1103,21 +1106,22 @@ static void isr_prepare_subevent_common(void *param)
11031106
(cis_lll->rx.bn_curr - 1U);
11041107
cis_lll->rx.ccm.counter = payload_count;
11051108

1106-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
1109+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
11071110
cis_lll->rx.phy,
11081111
RADIO_PKT_CONF_CTE_DISABLED);
11091112
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
11101113
(cis_lll->rx.max_pdu + PDU_MIC_SIZE),
11111114
pkt_flags);
1112-
radio_pkt_rx_set(radio_ccm_rx_pkt_set(&cis_lll->rx.ccm,
1113-
cis_lll->rx.phy,
1114-
node_rx->pdu));
1115+
radio_pkt_rx_set(radio_ccm_iso_rx_pkt_set(&cis_lll->rx.ccm,
1116+
cis_lll->rx.phy,
1117+
RADIO_PKT_CONF_PDU_TYPE_CIS,
1118+
node_rx->pdu));
11151119
#endif /* CONFIG_BT_CTLR_LE_ENC */
11161120

11171121
} else {
11181122
uint8_t pkt_flags;
11191123

1120-
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC,
1124+
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_CIS,
11211125
cis_lll->rx.phy,
11221126
RADIO_PKT_CONF_CTE_DISABLED);
11231127
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,9 @@ static int prepare_cb_common(struct lll_prepare_param *p)
320320
RADIO_PKT_CONF_CTE_DISABLED);
321321
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT,
322322
(lll->max_pdu + PDU_MIC_SIZE), pkt_flags);
323-
radio_pkt_rx_set(radio_ccm_rx_pkt_set(&lll->ccm_rx, phy,
324-
node_rx->pdu));
323+
radio_pkt_rx_set(radio_ccm_iso_rx_pkt_set(&lll->ccm_rx, phy,
324+
RADIO_PKT_CONF_PDU_TYPE_BIS,
325+
node_rx->pdu));
325326
} else {
326327
uint8_t pkt_flags;
327328

@@ -905,7 +906,9 @@ static void isr_rx(void *param)
905906
(void)memcpy(lll->ccm_rx.iv, lll->giv, 4U);
906907
mem_xor_32(lll->ccm_rx.iv, lll->ccm_rx.iv, access_addr);
907908

908-
radio_pkt_rx_set(radio_ccm_rx_pkt_set(&lll->ccm_rx, lll->phy, pdu));
909+
radio_pkt_rx_set(radio_ccm_iso_rx_pkt_set(&lll->ccm_rx, lll->phy,
910+
RADIO_PKT_CONF_PDU_TYPE_BIS,
911+
pdu));
909912

910913
} else {
911914
struct pdu_bis *pdu;

0 commit comments

Comments
 (0)