Re: [PATCH] Bluetooth: Fix legacy pairing with some devices

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

 



Hi Szymon,

On Thu, Jul 19, 2012, Szymon Janc wrote:
> Some devices e.g. some Android based phones don't do SDP search before
> pairing and cancel legacy pairing when ACL is disconnected.
> 
> PIN Code Request event which changes ACL timeout to HCI_PAIRING_TIMEOUT
> is only received after remote user entered PIN.
> 
> In that case no L2CAP is connected so default HCI_DISCONN_TIMEOUT
> (2 seconds) is being used to timeout ACL connection. This results in
> problems with legacy pairing as remote user has only few seconds to
> enter PIN before ACL is disconnected.
> 
> Increase disconnect timeout for incomming connection to
> HCI_PAIRING_TIMEOUT if SSP is disabled and no linkey exists.
> 
> To avoid keeping ACL alive for too long after SDP search set ACL
> timeout back to HCI_DISCONN_TIMEOUT when L2CAP is connected.
> 
> 2012-07-19 13:24:43.413521 < HCI Command: Create Connection (0x01|0x0005) plen 13
>     bdaddr 00:02:72:D6:6A:3F ptype 0xcc18 rswitch 0x01 clkoffset 0x0000
>     Packet type: DM1 DM3 DM5 DH1 DH3 DH5
> 2012-07-19 13:24:43.425224 > HCI Event: Command Status (0x0f) plen 4
>     Create Connection (0x01|0x0005) status 0x00 ncmd 1
> 2012-07-19 13:24:43.885222 > HCI Event: Role Change (0x12) plen 8
>     status 0x00 bdaddr 00:02:72:D6:6A:3F role 0x01
>     Role: Slave
> 2012-07-19 13:24:44.054221 > HCI Event: Connect Complete (0x03) plen 11
>     status 0x00 handle 42 bdaddr 00:02:72:D6:6A:3F type ACL encrypt 0x00
> 2012-07-19 13:24:44.054313 < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
>     handle 42
> 2012-07-19 13:24:44.055176 > HCI Event: Page Scan Repetition Mode Change (0x20) plen 7
>     bdaddr 00:02:72:D6:6A:3F mode 0
> 2012-07-19 13:24:44.056217 > HCI Event: Max Slots Change (0x1b) plen 3
>     handle 42 slots 5
> 2012-07-19 13:24:44.059218 > HCI Event: Command Status (0x0f) plen 4
>     Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 0
> 2012-07-19 13:24:44.062192 > HCI Event: Command Status (0x0f) plen 4
>     Unknown (0x00|0x0000) status 0x00 ncmd 1
> 2012-07-19 13:24:44.067219 > HCI Event: Read Remote Supported Features (0x0b) plen 11
>     status 0x00 handle 42
>     Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
> 2012-07-19 13:24:44.067248 < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
>     handle 42 page 1
> 2012-07-19 13:24:44.071217 > HCI Event: Command Status (0x0f) plen 4
>     Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
> 2012-07-19 13:24:44.076218 > HCI Event: Read Remote Extended Features (0x23) plen 13
>     status 0x00 handle 42 page 1 max 1
>     Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> 2012-07-19 13:24:44.076249 < HCI Command: Remote Name Request (0x01|0x0019) plen 10
>     bdaddr 00:02:72:D6:6A:3F mode 2 clkoffset 0x0000
> 2012-07-19 13:24:44.081218 > HCI Event: Command Status (0x0f) plen 4
>     Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> 2012-07-19 13:24:44.105214 > HCI Event: Remote Name Req Complete (0x07) plen 255
>     status 0x00 bdaddr 00:02:72:D6:6A:3F name 'uw000951-0'
> 2012-07-19 13:24:44.105284 < HCI Command: Authentication Requested (0x01|0x0011) plen 2
>     handle 42
> 2012-07-19 13:24:44.111207 > HCI Event: Command Status (0x0f) plen 4
>     Authentication Requested (0x01|0x0011) status 0x00 ncmd 1
> 2012-07-19 13:24:44.112220 > HCI Event: Link Key Request (0x17) plen 6
>     bdaddr 00:02:72:D6:6A:3F
> 2012-07-19 13:24:44.112249 < HCI Command: Link Key Request Negative Reply (0x01|0x000c) plen 6
>     bdaddr 00:02:72:D6:6A:3F
> 2012-07-19 13:24:44.115215 > HCI Event: Command Complete (0x0e) plen 10
>     Link Key Request Negative Reply (0x01|0x000c) ncmd 1
>     status 0x00 bdaddr 00:02:72:D6:6A:3F
> 2012-07-19 13:24:44.116215 > HCI Event: PIN Code Request (0x16) plen 6
>     bdaddr 00:02:72:D6:6A:3F
> 2012-07-19 13:24:48.099184 > HCI Event: Auth Complete (0x06) plen 3
>     status 0x13 handle 42
>     Error: Remote User Terminated Connection
> 2012-07-19 13:24:48.179182 > HCI Event: Disconn Complete (0x05) plen 4
>     status 0x00 handle 42 reason 0x13
>     Reason: Remote User Terminated Connection
> 
> Cc: stable@xxxxxxxxxx
> Signed-off-by: Szymon Janc <szymon.janc@xxxxxxxxx>
> ---
>  net/bluetooth/hci_event.c  |    7 ++++++-
>  net/bluetooth/l2cap_core.c |    1 +
>  2 files changed, 7 insertions(+), 1 deletion(-)

Acked-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>

Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux