Number of Reports in Advertising Report

Hi, we are working on an application which sends advertising data from multiple end-nodes simultaneously. At the scanner end, we want the link layer to generate a common advertising report for multiple advertisers. In section 7.7.65.2 of the Bluetooth 4.2 core specification document, the structure of the advertising report has been provided, which contains a field named num_reports which enable accommodating the data received from multiple advertising devices in a single advertising report, as shown in the attached image.

  The num_reports field can take values from 1 to 25. Which means, according to the BLE specification, the link layer can actually send to host, the data received from upto 25 advertisers in a single advertising report. The rest of the parameters following num_reports are arrays with num_reports number of elements.

However, the advertising report struct reference ble_gap_evt_adv_report_t does not contain any data field that allows us to set number of advertisers to a value greater than 1. The data field also accommodates only one advertiser. Is this functionality not supported by Nordic? Is there any way to have data from multiple advertisers in a single advertising report?

  • Hello,

    Nordic doesn't have this functionality in the nRF5 SDK, and as far as I know, not in NCS either. The advertising report events trigger immediately after the advertisement is received. 

    However, the advertising report struct reference ble_gap_evt_adv_report_t does not contain any data field that allows us to set number of advertisers

    The way that I read the part of the specification that you have shown here, this would not apply to several advertisers. It would only be a case if the scanner stores up multiple advertising reports from one single peripheral. But again, this is not something that our bluetooth stack does. It informs the application right away.

    Best regards,

    Edvin

  • Hi Edvin, thanks for the reply. Actually yes, initially, even I read it the way you just mentioned. But as you can see in the first image that I've attached, there's a highlighted sentence that says 

    "The controller may queue these advertising reports and send information from multiple devices in one LE Advertising Report Event". 

    This made me assume that it is possible to accomodate data from multiple advertisers. 

    Keeping this aside, as per my understanding, nRF SDK will support advertising report generation right after the packet gets received, and any new packet that gets received during report generation (which would possibly take a few micro-seconds) will be considered as lost. Am I thinking in the right direction? The duration of the advertising report packet should also be a factor contributing to packet loss then? 

  • Sukriti said:
    "The controller may queue these advertising reports and send information from multiple devices in one LE Advertising Report Event". 

    I think "may" is a key word here. That is an option for the developer, but not something that they need to do. 

    Sukriti said:
    and any new packet that gets received during report generation (which would possibly take a few micro-seconds) will be considered as lost. Am I thinking in the right direction? The duration of the advertising report packet should also be a factor contributing to packet loss then? 

    Yes. I believe that is correct. However, I don't think the effect of this loss is very large. Considering that the advertisement on air takes a couple of ms, the processing time of the packet is neglible. Besides, we only have one radio, so it will only be possible to receive one advertising pack at the time.

    BR,

    Edvin

  • Understood! Thanks for your time Edvin :) 

Related