SWCU192 November 2021 CC1312R7 , CC1352P7 , CC2652P7 , CC2652R7
Extended advertising packets on primary channel (ADV_EXT_IND), are accepted if running CMD_BLE5_SCANNER on a primary advertising channel, prior to following an AuxPtr.
The bCrcErr and bIgnore bits are set according to the CRC result and the received message. Only connectable packets are accepted by an initiator. The parameter pParams->initConfig.bUseWhiteList determines if the initiator should try to connect to a specific device or against the whitelist. If this parameter is 0, the whitelist is not used, and pParams->pWhiteList shall point to a buffer containing only the device address of the device to connect to. The address type of the peer shall be given in pParams->advConfig.peerAddrType (see also Section 26.8.17). Otherwise, pParams->pWhiteList shall point to a whitelist, and the received AdvA field in the message, along with the TxAdd bit of the received header is checked against whitelist as described in Section 26.8.14. The complete check on AdvA is performed as listed in Table 26-144. If the extended header flags indicate that AdvA is not present, the AdvA filter result is always Accept. If the extended header flags indicate that TargetA is present (that is, the packet is directed), the received TargetA field and RxAdd bit are checked against pParams->pDeviceAddress and pParams->initConfig.deviceAddrType, respectively (see also Section 26.8.17), and match if they are equal. Nondirected messages always have TargetA match. Depending on the received packet, the actions taken shall be as given in Table 26-157, where the definition of each action (including the value that will be used on bCrcErr and bIgnore) is given in Table 26-158. The packet length of a received ADV_EXT_IND packet is always valid by default, but it is possible to configure a maximum length by overriding the firmware defined parameter maxAdvExtLen. In addition, the extended header length and flags are checked. If the extended header length is too large for the extended header to fit in the packet, or if it is too small to hold the configured, the length is invalid. If pParams->initConfig.bStrictLenFilter is 1, all defined fields are considered, while if pParams->initConfig.bStrictLenFilter is 0, the fields that are not automatically checked by the CPE (SyncInfo and TxPower) are ignored when finding the minimum allowed extended header length.
PDU Type | CRC Result | AdvMode | AdvA Filter Result | TargetA Match | AuxPtr Present | Action No. |
---|---|---|---|---|---|---|
ADV_EXT_IND | OK | 01 | Reject | X | X | 1 |
ADV_EXT_IND | OK | 01 | Accept | No | X | 1 |
ADV_EXT_IND | OK | 01 | Accept | Yes | No | 2 |
ADV_EXT_IND | OK | 01 | Accept | Yes | Yes | 6 |
ADV_EXT_IND | NOK | 01 | X | X | X | 4 |
ADV_EXT_IND | X | 00, 10, or 11 | X | X | X | 5 |
ADV_EXT_IND with invalid lengths | X | X | X | X | X | 5 |
Other (see also Section 26.8.10.1) | X | X | X | X | X | 5 |
Action No. | bCrcErr | bIgnore | Description |
---|---|---|---|
1 | 0 | 1 | Continue scanning |
2 | 0 | 0 | Continue scanning |
4 | 1 | 0 | Continue scanning |
5 | — | — | Stop receiving packet, then continue scanning |
6 | 0 | 0 | Follow Aux pointer and receive on the new channel, or end operation with BLE_DONE_AUX |
If the packet being received did not fit in the RX queue, the packet shall be received to the end, but the received bytes are not stored. If the packet would normally not have been discarded from the RX buffer, the operation shall end.
If the action from the received packet is 6, the radio CPU will either look for a secondary advertising packet or end the operation with status BLE_DONE_AUX.