Re: [PATCH v2] Bluetooth: Fix connection if directed advertising and privacy is used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Szymon,

> Local random address needs to be updated before creating connection if
> RPA from LE Direct Advertising Report was resolved in host. Otherwise
> remote device might ignore connection request due to address mismatch.
> 
> This was affecting following qualification test cases:
> GAP/CONN/SCEP/BV-03-C, GAP/CONN/GCEP/BV-05-C, GAP/CONN/DCEP/BV-05-C
> 
> Before patch:
> < HCI Command: LE Set Random Address (0x08|0x0005) plen 6          #11350 [hci0] 84680.231216
>        Address: 56:BC:E8:24:11:68 (Resolvable)
>          Identity type: Random (0x01)
>          Identity: F2:F1:06:3D:9C:42 (Static)
>> HCI Event: Command Complete (0x0e) plen 4                        #11351 [hci0] 84680.246022
>      LE Set Random Address (0x08|0x0005) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7         #11352 [hci0] 84680.246417
>        Type: Passive (0x00)
>        Interval: 60.000 msec (0x0060)
>        Window: 30.000 msec (0x0030)
>        Own address type: Random (0x01)
>        Filter policy: Accept all advertisement, inc. directed unresolved RPA (0x02)
>> HCI Event: Command Complete (0x0e) plen 4                        #11353 [hci0] 84680.248854
>      LE Set Scan Parameters (0x08|0x000b) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2             #11354 [hci0] 84680.249466
>        Scanning: Enabled (0x01)
>        Filter duplicates: Enabled (0x01)
>> HCI Event: Command Complete (0x0e) plen 4                        #11355 [hci0] 84680.253222
>      LE Set Scan Enable (0x08|0x000c) ncmd 1
>        Status: Success (0x00)
>> HCI Event: LE Meta Event (0x3e) plen 18                          #11356 [hci0] 84680.458387
>      LE Direct Advertising Report (0x0b)
>        Num reports: 1
>        Event type: Connectable directed - ADV_DIRECT_IND (0x01)
>        Address type: Random (0x01)
>        Address: 53:38:DA:46:8C:45 (Resolvable)
>          Identity type: Public (0x00)
>          Identity: 11:22:33:44:55:66 (OUI 11-22-33)
>        Direct address type: Random (0x01)
>        Direct address: 7C:D6:76:8C:DF:82 (Resolvable)
>          Identity type: Random (0x01)
>          Identity: F2:F1:06:3D:9C:42 (Static)
>        RSSI: -74 dBm (0xb6)
> < HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2             #11357 [hci0] 84680.458737
>        Scanning: Disabled (0x00)
>        Filter duplicates: Disabled (0x00)
>> HCI Event: Command Complete (0x0e) plen 4                        #11358 [hci0] 84680.469982
>      LE Set Scan Enable (0x08|0x000c) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Create Connection (0x08|0x000d) plen 25          #11359 [hci0] 84680.470444
>        Scan interval: 60.000 msec (0x0060)
>        Scan window: 60.000 msec (0x0060)
>        Filter policy: White list is not used (0x00)
>        Peer address type: Random (0x01)
>        Peer address: 53:38:DA:46:8C:45 (Resolvable)
>          Identity type: Public (0x00)
>          Identity: 11:22:33:44:55:66 (OUI 11-22-33)
>        Own address type: Random (0x01)
>        Min connection interval: 30.00 msec (0x0018)
>        Max connection interval: 50.00 msec (0x0028)
>        Connection latency: 0 (0x0000)
>        Supervision timeout: 420 msec (0x002a)
>        Min connection length: 0.000 msec (0x0000)
>        Max connection length: 0.000 msec (0x0000)
>> HCI Event: Command Status (0x0f) plen 4                          #11360 [hci0] 84680.474971
>      LE Create Connection (0x08|0x000d) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Create Connection Cancel (0x08|0x000e) plen 0    #11361 [hci0] 84682.545385
>> HCI Event: Command Complete (0x0e) plen 4                        #11362 [hci0] 84682.551014
>      LE Create Connection Cancel (0x08|0x000e) ncmd 1
>        Status: Success (0x00)
>> HCI Event: LE Meta Event (0x3e) plen 19                          #11363 [hci0] 84682.551074
>      LE Connection Complete (0x01)
>        Status: Unknown Connection Identifier (0x02)
>        Handle: 0
>        Role: Master (0x00)
>        Peer address type: Public (0x00)
>        Peer address: 00:00:00:00:00:00 (OUI 00-00-00)
>        Connection interval: 0.00 msec (0x0000)
>        Connection latency: 0 (0x0000)
>        Supervision timeout: 0 msec (0x0000)
>        Master clock accuracy: 0x00
> 
> After patch:
> < HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7    #210 [hci0] 667.152459
>        Type: Passive (0x00)
>        Interval: 60.000 msec (0x0060)
>        Window: 30.000 msec (0x0030)
>        Own address type: Random (0x01)
>        Filter policy: Accept all advertisement, inc. directed unresolved RPA (0x02)
>> HCI Event: Command Complete (0x0e) plen 4                   #211 [hci0] 667.153613
>      LE Set Scan Parameters (0x08|0x000b) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2        #212 [hci0] 667.153704
>        Scanning: Enabled (0x01)
>        Filter duplicates: Enabled (0x01)
>> HCI Event: Command Complete (0x0e) plen 4                   #213 [hci0] 667.154584
>      LE Set Scan Enable (0x08|0x000c) ncmd 1
>        Status: Success (0x00)
>> HCI Event: LE Meta Event (0x3e) plen 18                     #214 [hci0] 667.182619
>      LE Direct Advertising Report (0x0b)
>        Num reports: 1
>        Event type: Connectable directed - ADV_DIRECT_IND (0x01)
>        Address type: Random (0x01)
>        Address: 50:52:D9:A6:48:A0 (Resolvable)
>          Identity type: Public (0x00)
>          Identity: 11:22:33:44:55:66 (OUI 11-22-33)
>        Direct address type: Random (0x01)
>        Direct address: 7C:C1:57:A5:B7:A8 (Resolvable)
>          Identity type: Random (0x01)
>          Identity: F4:28:73:5D:38:B0 (Static)
>        RSSI: -70 dBm (0xba)
> < HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2       #215 [hci0] 667.182704
>        Scanning: Disabled (0x00)
>        Filter duplicates: Disabled (0x00)
>> HCI Event: Command Complete (0x0e) plen 4                  #216 [hci0] 667.183599
>      LE Set Scan Enable (0x08|0x000c) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Set Random Address (0x08|0x0005) plen 6    #217 [hci0] 667.183645
>        Address: 7C:C1:57:A5:B7:A8 (Resolvable)
>          Identity type: Random (0x01)
>          Identity: F4:28:73:5D:38:B0 (Static)
>> HCI Event: Command Complete (0x0e) plen 4                  #218 [hci0] 667.184590
>      LE Set Random Address (0x08|0x0005) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Create Connection (0x08|0x000d) plen 25    #219 [hci0] 667.184613
>        Scan interval: 60.000 msec (0x0060)
>        Scan window: 60.000 msec (0x0060)
>        Filter policy: White list is not used (0x00)
>        Peer address type: Random (0x01)
>        Peer address: 50:52:D9:A6:48:A0 (Resolvable)
>          Identity type: Public (0x00)
>          Identity: 11:22:33:44:55:66 (OUI 11-22-33)
>        Own address type: Random (0x01)
>        Min connection interval: 30.00 msec (0x0018)
>        Max connection interval: 50.00 msec (0x0028)
>        Connection latency: 0 (0x0000)
>        Supervision timeout: 420 msec (0x002a)
>        Min connection length: 0.000 msec (0x0000)
>        Max connection length: 0.000 msec (0x0000)
>> HCI Event: Command Status (0x0f) plen 4                    #220 [hci0] 667.186558
>      LE Create Connection (0x08|0x000d) ncmd 1
>        Status: Success (0x00)
>> HCI Event: LE Meta Event (0x3e) plen 19                    #221 [hci0] 667.485824
>      LE Connection Complete (0x01)
>        Status: Success (0x00)
>        Handle: 0
>        Role: Master (0x00)
>        Peer address type: Random (0x01)
>        Peer address: 50:52:D9:A6:48:A0 (Resolvable)
>          Identity type: Public (0x00)
>          Identity: 11:22:33:44:55:66 (OUI 11-22-33)
>        Connection interval: 50.00 msec (0x0028)
>        Connection latency: 0 (0x0000)
>        Supervision timeout: 420 msec (0x002a)
>        Master clock accuracy: 0x07
> @ MGMT Event: Device Connected (0x000b) plen 13          {0x0002} [hci0] 667.485996
>        LE Address: 11:22:33:44:55:66 (OUI 11-22-33)
>        Flags: 0x00000000
>        Data length: 0
> 
> Signed-off-by: Szymon Janc <szymon.janc@xxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> ---
> include/net/bluetooth/hci_core.h |  2 +-
> net/bluetooth/hci_conn.c         | 29 +++++++++++++++++++++--------
> net/bluetooth/hci_event.c        | 15 +++++++++++----
> net/bluetooth/l2cap_core.c       |  2 +-
> 4 files changed, 34 insertions(+), 14 deletions(-)

patch has been applied to bluetooth tree.

Regards

Marcel




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]