This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F: Multiple Centrals Using RPA

Part Number: CC2640R2F
Other Parts Discussed in Thread: BLE-STACK

First question: If a peripheral is paired (and bonded) to multiple centrals using resolvable private addressing (aka unique IRK’s per central), does the peripheral have to cycle through all RPA’s when trying to connect to any of them?

And if so, does TI RTOS provide support for cycling through all paired IRK’s when advertising or is it the responsibility of the application to cycle through the IRK’s?

My bet is that it’s the application’s responsibility. Then the next question is can it be done by simply changing the advertising data on some interval basis during runtime (using GAPROLE_ADVERT_DATA for example)?

Please advise.

Thanks,
Mark

 

  • Hi Mark,

    I'm not sure about the best way to answer your questions because I'm a little confused about the wording so I'll provide some background on our privacy implementation and address your questions as well as provide some key sections of the spec to look at.

    1. Have you read through the Privacy section here?: http://software-dl.ti.com/lprf/simplelink_cc2640r2_latest/docs/blestack/ble_user_guide/html/ble-stack-3.x/gapbondmngr.html#le-privacy-1-2

    2. The LL Privacy feature is always enabled when using the CC2640R2 SDK. This means that the Controller will always check the Resolving List before forwarding packets to the Host. All resolving is done in the Controller in the CC2640R2.

    3. As a user, in order to resolve a peer address, all that should be required is to enable bonding in your application. After bonding, the GAP Bond Manager (if it is used), will add the device to the Resolving List so that the Controller can resolve the address. After bonding, if the device is connected to again, the Public ID address of the peer device should be used at the application level. You can check this in your PuTTY window or by putting a breakpoint in GAP_LINK_ESTABLISHED_EVENT of peripheral.c and checking out the address and address type of the device you've connected to.

    4. What do you think the TI-RTOS involvement would be? Privacy, Resolving List, IRKs are all components of the Bluetooth specification so they are implemented in the BLE-Stack. TI-RTOS schedules the stack task to run but that's about it.

    5. "Next question is can it be done by simply changing the advertising data on some interval basis during runtime (using GAPROLE_ADVERT_DATA for example)" - Can what be done? Resolving Addresses? Why would changing advertisement data affect the resolving functionality? I'm going to assume you mean that you want to use an RPA with your peripheral application. If that is the case, all you need to do is follow the guidance here: http://software-dl.ti.com/lprf/simplelink_cc2640r2_latest/docs/blestack/ble_user_guide/html/ble-stack-3.x/gapbondmngr.html#using-resolvable-private-addresses

    6. Privacy is a confusing topic and we have had some issues related to privacy in the past. Make sure you check out the Known Issues in the Release Notes and the Porting Guide & Known Issues wiki page for any Privacy-related updates: www.ti.com/ble-wiki

    Key sections of the spec to help you understand Privacy in the Bluetooth Core Specification:

           Vol 1, Part A, Section 5.4.5 - Overview of the LE Privacy Feature

           Vol 2, Part E, Sections 7.8 - HCI Commands

           Vol 3, Part C, Section 10.7 - Privacy in the Host

           Vol 3, Part C, Section 12 - GAP Service and Characteristics for GATT Server

           Vol 6, Part B, Section 1.3 - Device Address

           Vol 6, Part B, Section 6 - Privacy in the Link Layer

  • Hi Rachel,

    Thanks for the reply. Here’s the simplified question - does a device only have a single IRK that is used across all of its peers?

    So let’s call the peripheral P1 and let’s call it’s associated centrals C1 and C2. Does P1 use the same IRK to generate a private address that both C1 and C2 can see and resolve P1’s private address since they both have the same copy of P1’s IRK?

    Please advise.

    Regards,
    Mark
  • Hi Mark,

    Yes, BLE-Stack devices will use the same local IRK for all peers.