Other Parts Discussed in Thread: SYSCONFIG,
Tool/software:
Hi,
Our solution is based on the simple peripheral example from the BLE stack. Here are the details for the software/ tools that we are using:
TI SimpleLink SDK: v7.41.00.17
TI Code Composer Studio: CCS-12.5.0
TI ARM Clang Compiler tools: 3.2.0.LTS
XDCTools: 3.62.01.15
Our application is using 'Just Works' pairing schema together with bonding enabled and filter policy configured as 'Process scan req from all devices and only conn req from devices in AL (WL in SDK v6.20)' . Additionally, we rely on the GAPBondMgr to handle the pairing, bonding and whitelist connection workflow and do not perform any of these operation handling in the application.
We have migrated our project from SDK v6.20 to the latest v7.41.00.17 recently and observe an issue w.r.t whitelisting policy. The test steps are illustrated here:
- Peripheral is advertising in pairable advertising mode
- Unbonded central device scans the peripheral and attempts to connect, pair and bonded. Also, bonds successfully to the central device and the bonds are stored in the NVS correctly (verified using a GAP API to return the number of bonded devices)
- Peripheral disables pairable advertising mode and advertises in whitelisted advertising mode.
- Already bonded central device attempts to connect.
Expectation: Already bonded device should establish an encrypted BLE connection
Result: Already bonded device is denied connection 'GATT error (0x85)' on Android, and OS timeout on iOS
Here is the sniffer screenshot that highlights the failed connection attempt:
- connection in pairable adv mode
- connection in whitelist adv mode
Questions:
- Are the filter policy settings consistent with the previous SDK or are there additional configurations that I miss?
- Are there gapbondmgr.h/.c changes that we need to take care in the application?