Topic

FAQ
Login Register
TLSR8253 Multi Connection SDK - whitelist problem
Jan 17, 2022 14:40

/

A

/A

I try to add to the whitelist a number of mac addresses for filtering of scanning for devices

I add 5 mac addresses to the list as follows:


u8 TC_B1[6] = {0xAD, 0xBE, 0x1A, 0x38, 0xC1, 0xA4};

u8 TC_B2[6] = {0x5B, 0xAE, 0xD5, 0x38, 0xC1, 0xA4};

u8 TC_B3[6] = {0x5F, 0x35, 0x86, 0x38, 0xC1, 0xA4};

u8 TC_W6[6] = {0x51, 0x11, 0xA5, 0x38, 0xC1, 0xA4};

u8 TC_W5[6] = {0xF1, 0x76, 0x34, 0x38, 0xC1, 0xA4};

ll_whiteList_add(BLE_ADDR_PUBLIC, TC_B2);

ll_whiteList_add(BLE_ADDR_PUBLIC, TC_B3);

ll_whiteList_add(BLE_ADDR_PUBLIC, TC_W6);

ll_whiteList_add(BLE_ADDR_PUBLIC, TC_W5);

ll_whiteList_add(BLE_ADDR_PUBLIC, TC_B1);


In app_le_adv_report_event_handle() I can only see first 4 mac addresses. The device with the last address is never shown!

Note that all devices are available and accessible. I even tried to change the order of adding mac addresses to the whitelist, but this doesn t change anything. Always only first 4 address are shown in the app_le_adv_report_event_handle().


Why is it so? Only 4 addresses can be added to the list?

Is there a limit of mac addresses that can be added to the list?


I would appreciate your help.


Edit:

I realized that I can check if adding to the whitelist was succesfull by doing:

ble_sts_t res = ll_whiteList_add(BLE_ADDR_PUBLIC, ATC_B2);


The result for first 4 was 0 (command succeeded) and for the last one was 7


Edit #2:

I have checked today what it looks like in single connection SDK.

in the old Single Connection SDK (which can still be downloaded here: http://wiki.telink-semi.cn/wiki/IDE-and-Tools/IDE-for-TLSR8-Chips/), in the file ll_whitelist.h there is a following definition:

#define MAX_WHITE_LIST_SIZE 4
There is also definition of the structure:
typedef struct {
wl_addr_t wl_addr_tbl[MAX_WHITE_LIST_SIZE];
u8 wl_addr_tbl_index;
u8 wl_irk_tbl_index;
} ll_whiteListTbl_t;

There are a lot of other defines in this file.


In the latest Single Connection SDK there is nothing, except for a couple of function prototypes.

The same situation is in the Multi Connection SDK.

So I assume in the latest SDK the whitelist size is limited to 4, and can't be changed, which makes it useless for me.

Unless, it is using the same struct ll_whiteListTbl_t as was used in the old SDK (which I doubt that the name will be the same), and the structure can be redefined as external and the size of the whitelist change in there.


So what can be done to change the size of the whitelist?



2 replies
TL_hk Jan 18, 2022 10:23
0
/A

In current SDK, whitelist can store up to four devices, “Resolvinglist” can store up to two devices.


For more details, please refer to the AN-21112300-E_Telink B85m BLE Single Connection SDK Developer Handbook Chapter 3.2.9.22 Whitelist & Resolvinglist.

wes58 [Author] Jan 18, 2022 12:45
0
/A

Hi hk.wang,

Thanks for your response.


So, I guess, I have to forget about the whitelist, and do the filtering for mac address myself.