ble
ble copied to clipboard
Problems with BLE address handling
In BLE there are 4 types of addresses:
- Public MAC address:
- Random static
- Random unresolvable
- Random resolvable
According to the BLE spec v4.2 in Vol 6, Part B Section 1.3:
If a device is using Resolvable Private Addresses, it shall also have an Identity Address that is either a Public Device Address or Random Static Device Address type.
Currently, the available APIs to handle addresses are getAddress() and setAddress() in Gap.h. But it is not clear from the documentation how can a user make sure that a call to setAddress() with ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE
will not clear the previous Public or Random static address.
This feature is important for bonding because without the Public or Random static address in the BLE server the client has no way of identifying the bonded peripheral.
ARM Internal Ref: IOTSFW-1374