Skip to content

Commit

Permalink
Bluetooth: Controller: Don't report when AUX_ADV_IND is not received
Browse files Browse the repository at this point in the history
An advertising report must not be generated unless the AUX_ADV_IND
has been received (for ADV_EXT_IND with an auxptr)

Signed-off-by: Troels Nilsson <trnn@demant.com>
  • Loading branch information
Tronil authored and fabiobaltieri committed Jul 5, 2023
1 parent 813c910 commit 287eb04
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion subsys/bluetooth/controller/hci/hci.c
Original file line number Diff line number Diff line change
Expand Up @@ -6878,7 +6878,14 @@ static void le_ext_adv_report(struct pdu_data *pdu_data,
uint8_t aux_phy;

aux_ptr = (void *)ptr;
if (PDU_ADV_AUX_PTR_PHY_GET(aux_ptr) > EXT_ADV_AUX_PHY_LE_CODED) {

/* Don't report if invalid phy or AUX_ADV_IND was not received
* See BT Core 5.4, Vol 6, Part B, Section 4.4.3.5:
* If the Controller does not listen for or does not receive the
* AUX_ADV_IND PDU, no report shall be generated
*/
if ((node_rx_curr == node_rx && !node_rx_next) ||
PDU_ADV_AUX_PTR_PHY_GET(aux_ptr) > EXT_ADV_AUX_PHY_LE_CODED) {
struct node_rx_ftr *ftr;

ftr = &node_rx->hdr.rx_ftr;
Expand Down

0 comments on commit 287eb04

Please sign in to comment.