SWCU194 March 2023 CC1314R10 , CC1354P10 , CC1354R10 , CC2674P10 , CC2674R10
A whitelist is used in advertiser, scanner, and initiator operation. The whitelist consists of a configurable number of entries. The whitelist is an array of entries of the type defined in Table 26-116. The first entry of the array shall contain the array size in the size field.
The minimum number of entries in a whitelist array is 1, but if no whitelist is to be used, pParams->pWhiteList may be NULL. The maximum number of entries is limited by the performance obtained in the radio CPU for doing the filtering. Testing indicates that up to at least 24 entries can be used.
Each entry contains one address and three configuration bits. The bEnable bit is 1 if the entry is enabled, otherwise the address shall be ignored when doing whitelist filtering. The addrType bit tells if the entry is a public or random address. The bIgnore bit can be used by a scanner to avoid reporting and scanning the same device multiple times.
When an address is to be checked against the whitelist, the address is compared against the address field of each entry in the whitelist. The address is said to be present in the whitelist if and only if there is an entry where:
For scanners, the bWlIgn bit may be set in the whitelist to indicate that a device shall be ignored even if the whitelist entry would otherwise be a match. This can be used to check for advertisers that have already been scanned or where the advertising data has already been reported. Even if no whitelist filtering is to be performed, this feature may be used. The whitelist shall be scanned for devices that match the address and address type, and where bWlIgn is 1. Such devices shall be ignored. The bEnable bit shall not be checked in this case. The check is always done when receiving legacy packets, while for extended advertiser packets, the check is only done when pParams->extFilterConfig.bApplyDuplicateFiltering is 1 and no ADI field is present in the extended header. It is possible to configure the radio CPU to automatically set the bWlIgn bit, see Section 26.8.10.
For initiators, the bIrkValid bit may be set in the whitelist to indicate that a device shall be ignored even if the whitelist entry would otherwise be a match. This can be used to avoid connecting to a device with a resolvable private address where a valid identity resolving key (IRK) exists. The bIrkValid bit should never be set by the system CPU for address entries not containing an RPA.