This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Get private Bluetooth device address

I am reading through IETF RFC7668, IPv6 over BLUETOOTH(R) Low Energy. In section 3.2.2, it states the following:

At network interface initialization, both 6LN and 6LBR SHALL generate
and assign to the Bluetooth LE network interface IPv6 link-local
addresses [RFC4862] based on the 48-bit Bluetooth device addresses
(see Section 2.3) that were used for establishing the underlying
Bluetooth LE connection. A 6LN and a 6LBR are RECOMMENDED to use
private Bluetooth device addresses. A 6LN SHOULD pick a different
Bluetooth device address for every Bluetooth LE connection with a
6LBR, and a 6LBR SHOULD periodically change its random Bluetooth
device address.

With the newest nRF5 SDK (v15), there is currently no way to get a private address, so that it's not possible to follow this recommendation, correct?

Is it possible to manually set a private address? I believe this used to be possible by using sd_ble_gap_address_set() with cycle mode set to BLE_GAP_ADDR_CYCLE_MODE_NONE.

Parents Reply
  • Hi,

    You are right, I read the question too quickly. For some reason "private" was converted to "public" in my head, which is obviously not the same :)

    As you write, the SoftDevice does not have an API to get the current private resolvable address of the device. The sd_ble_gap_addr_get() will only return the identity address (public or random static), but not the current private resolvable address. It should be possible for the application to calculate the resolvable address using information you can obtain with sd_ble_gap_privacy_get(). It might not be as effective, but it should be OK as this is only done once per connection.

Children
No Data
Related