Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-Pairing Required on Reconnect due to Resolvable Random Address Handling Issue on Linux #1852

Open
Digitelektro opened this issue Aug 28, 2024 · 0 comments

Comments

@Digitelektro
Copy link

Hi,
I am facing an issue that might not be a nimble bug, but I haven't found a solution yet. I am using the NimBLE stack on Linux to create a BLE peripheral. I can successfully connect and pair my phone. However, when I try to reconnect my phone later, it prompts me to pair again.

After investigating, I suspect the problem is that my Bluetooth adapter doesn't support the Resolving List feature. As a result, when my phone reconnects using a resolvable random address, NimBLE cannot identify it as an already bonded device.

I use key distribution flags: BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID

Logs when I start my program:
btmon log (I removed the sensitive informations):

HCI Command: LE Add Device To Resolving List (0x08|0x0027) plen 39  
[hci1] 8.517265
        Address type: Public (0x00)
        Address: XX:XX:XX:XX:XX:XX
        Peer identity resolving key: ...
        Local identity resolving key: ...
HCI Event: Command Complete (0x0e) plen 4 
8.519054
      LE Add Device To Resolving List (0x08|0x0027) ncmd 2
        Status: Unsupported Remote Feature / Unsupported LMP Feature (0x1a)

Nimble log output:

failed to configure restored IRK

Out of three BT adapter, two has this issue.
Is there a way to solve this problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant