Re: Unknown Connection Identifier
flat view
From: François Beaufort <hidden>
Date: 2015-11-30 07:43:16
On Tue, Nov 24, 2015 at 12:00 PM, Marcel Holtmann [off-list ref] wrote:
Hi Francois,quoted
Thanks both of you for your input. Here are my 100% reproducible steps: - Restart bluetoothd to start fresh - Remove cached device (remove 88:0F:10:9D:EB:42) - Run basic scan (scan on) - Wait for the device to pop up in results and stop scan (scan off) - Try to connect to it (connect 88:0F:10:9D:EB:42) As you can read below I now have 2 "LE Connection Complete (0x01)"events.quoted
Bluetooth monitor ver 5.35 = New Index: A4:17:31:78:A6:04 (BR/EDR,USB,hci0) [hci0] 0.624321 < HCI Command: LE Add Device To White List (0x08|0x0011) plen 7 [hci0] 11.038826 Address type: Public (0x00) Address: 88:0F:10:9D:EB:42 (OUI 88-0F-10)quoted
HCI Event: Command Complete (0x0e) plen 4[hci0] 11.040084quoted
LE Add Device To White List (0x08|0x0011) ncmd 1 Status: Success (0x00) < HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7 [hci0] 11.040125 Type: Passive (0x00) Interval: 60.000 msec (0x0060) Window: 30.000 msec (0x0030) Own address type: Public (0x00) Filter policy: Ignore not in white list (0x01)quoted
HCI Event: Command Complete (0x0e) plen 4[hci0] 11.041085quoted
LE Set Scan Parameters (0x08|0x000b) ncmd 1 Status: Success (0x00) < HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2 [hci0] 11.041134 Scanning: Enabled (0x01) Filter duplicates: Enabled (0x01)quoted
HCI Event: Command Complete (0x0e) plen 4[hci0] 11.042084quoted
LE Set Scan Enable (0x08|0x000c) ncmd 1 Status: Success (0x00)quoted
HCI Event: LE Meta Event (0x3e) plen 43[hci0] 15.668141quoted
LE Advertising Report (0x02) Num reports: 1 Event type: Connectable undirected - ADV_IND (0x00) Address type: Public (0x00) Address: 88:0F:10:9D:EB:42 (OUI 88-0F-10) Data length: 31 Flags: 0x06 LE General Discoverable Mode BR/EDR Not Supported Company: Anhui Huami Information Technology Co., Ltd. (343) Data: 00f70b676930f4c909f4a5acd792a299ff02880f109deb42 RSSI: -59 dBm (0xc5) < HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2 [hci0] 15.668289 Scanning: Disabled (0x00) Filter duplicates: Disabled (0x00)quoted
HCI Event: Command Complete (0x0e) plen 4[hci0] 15.669062quoted
LE Set Scan Enable (0x08|0x000c) ncmd 1 Status: Success (0x00) < HCI Command: LE Create Connection (0x08|0x000d) plen 25 [hci0] 15.669171 Scan interval: 60.000 msec (0x0060) Scan window: 30.000 msec (0x0030)we might should have the LE Create Connection scan with a full duty cycle here. So it does not miss any advertising PDUs.
Is this something the Linux Bluetooth team is going to address?
quoted
Filter policy: White list is not used (0x00) Peer address type: Public (0x00) Peer address: 88:0F:10:9D:EB:42 (OUI 88-0F-10) Own address type: Public (0x00) Min connection interval: 50.00 msec (0x0028) Max connection interval: 70.00 msec (0x0038) Connection latency: 0x0000 Supervision timeout: 420 msec (0x002a) Min connection length: 0.000 msec (0x0000) Max connection length: 0.000 msec (0x0000)quoted
HCI Event: Command Status (0x0f) plen 4[hci0] 15.670065quoted
LE Create Connection (0x08|0x000d) ncmd 1 Status: Success (0x00) < HCI Command: LE Create Connection Cancel (0x08|0x000e) plen 0 [hci0] 17.670566And I think we need to increase the timeout to something like 4-5 seconds before we give up and try the next device that might have been found.
For my own curiosity, how does does perform Android Bluetooth stack when creating a LE connection? Does it hardcode a 4-5 seconds timeout or does it use other heuristics?
quoted
quoted
HCI Event: Command Complete (0x0e) plen 4[hci0] 17.672048quoted
LE Create Connection Cancel (0x08|0x000e) ncmd 1 Status: Success (0x00)quoted
HCI Event: LE Meta Event (0x3e) plen 19[hci0] 17.674036quoted
LE Connection Complete (0x01) Status: Unknown Connection Identifier (0x02) Handle: 32 Role: Master (0x00) Peer address type: Public (0x00) Peer address: 88:0F:10:9D:EB:42 (OUI 88-0F-10) Connection interval: 67.50 msec (0x0036) Connection latency: 0.00 msec (0x0000) Supervision timeout: 420 msec (0x002a) Master clock accuracy: 0x00 @ Connect Failed: 88:0F:10:9D:EB:42 (1) status 0x02This one still needs to be fixed. It is a bug. The implementation is too naive. The unknown connection identifier is actually the success case for LE Create Connection Cancel command. And since we keep trying until the connection timeout hits, this is not an error at this point. Regards Marcel