Re: Determining whether a Bluetooth device supports pairing

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

 



Hi Marcel,

On Thu, 18 May 2017 16:56:14 +0200, Marcel Holtmann wrote:

> > Am I missing some method for determining whether or not a device
> > supports pairing?  Or do we need to handle SMP_PAIRING_NOTSUPP
> > specially?
> 
> I do not remember any indication from the Bluetooth Core specification
> that would tell you in advance if you support pairing or not. Mainly
> since most devices actually just support pairing. Can you show us the
> btmon trace output of the advertising reports.

Here's the advertising report and scan response:

-- >8 --
> HCI Event: LE Meta Event (0x3e) plen 33
      LE Advertising Report (0x02)
        Num reports: 1
        Event type: Connectable undirected - ADV_IND (0x00)
        Address type: Public (0x00)
        Address: A0:E6:F8:4A:AE:AD (Texas Instruments)
        Data length: 21
        Flags: 0x06
          LE General Discoverable Mode
          BR/EDR Not Supported
        128-bit Service UUIDs (complete): 1 entry
          Vendor specific (03b80e5a-ede8-4b33-a751-6ce34ec4c700)
        RSSI: -66 dBm (0xbe)
> HCI Event: LE Meta Event (0x3e) plen 42
      LE Advertising Report (0x02)
        Num reports: 1
        Event type: Scan response - SCAN_RSP (0x04)
        Address type: Public (0x00)
        Address: A0:E6:F8:4A:AE:AD (Texas Instruments)
        Data length: 30
        Name (complete): Akai LPK25 Wireless
        Slave Conn. Interval: 0x000a - 0x0014
        TX power: 0 dBm
        RSSI: -67 dBm (0xbd)
-- 8< --

> One thing that I can think of is that Pair Device should return a
> reasonable error code so that bluetoothd can detect non-supported
> pairing and treat it as non-bonded device. Best would be a full btmon
> -w trace.log trace with a recent kernel that also monitors mgmt
> commands and events.

I've attached the full trace, but I think this is the interesting
section:

-- >8 --
@ MGMT Command: Pair Device (0x0019) plen 8
        LE Address: A0:E6:F8:4A:AE:AD (Texas Instruments)
        Capability: KeyboardDisplay (0x04)
< ACL Data TX: Handle 3585 flags 0x00 dlen 11
      SMP: Pairing Request (0x01) len 6
        IO capability: KeyboardDisplay (0x04)
        OOB data: Authentication data not present (0x00)
        Authentication requirement: Bonding, MITM, SC, No Keypresses, CT2 (0x2d)
        Max encryption key size: 16
        Initiator key distribution: EncKey Sign LinkKey (0x0d)
        Responder key distribution: EncKey IdKey Sign LinkKey (0x0f)
> HCI Event: Number of Completed Packets (0x13) plen 5
        Num handles: 1
        Handle: 3585
        Count: 1
> ACL Data RX: Handle 3585 flags 0x02 dlen 6
      SMP: Pairing Failed (0x05) len 1
        Reason: Pairing not supported (0x05)
@ MGMT Event: Authentication Failed (0x0011) plen 8
        LE Address: A0:E6:F8:4A:AE:AD (Texas Instruments)
        Status: Authentication Failed (0x05)
@ MGMT Event: Command Complete (0x0001) plen 10
      Pair Device (0x0019) plen 7
        Status: Authentication Failed (0x05)
        LE Address: A0:E6:F8:4A:AE:AD (Texas Instruments)
< HCI Command: Disconnect (0x01|0x0006) plen 3
        Handle: 3585
        Reason: Authentication Failure (0x05)
> HCI Event: Command Status (0x0f) plen 4
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Disconnect Complete (0x05) plen 4
        Status: Success (0x00)
        Handle: 3585
        Reason: Connection Terminated By Local Host (0x16)
@ MGMT Event: Device Disconnected (0x000c) plen 8
        LE Address: A0:E6:F8:4A:AE:AD (Texas Instruments)
        Reason: Connection terminated by local host (0x02)
-- 8< --


Regards,
John

Attachment: lpk25.log
Description: Binary data


[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