Re: [RFC] New mgmt API for Features Exchange (was: Re: Security level for Primary Services discovery during pairing)

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

 



Hi

On Wed, Sep 7, 2011 at 8:28 PM, Ash K <ashoksarf@xxxxxxxxx> wrote:
> If the two procedure are running independently, primary service
> discovery is not dependent on pairing and pairing is not dependent on
> primary service discovery, one would return error for pairing and
> continue with primary service discovery. Once primary service
> discovery is done, LE ACL can be disconnected.
>
> Same way as SDP and pairing can be done onver BR/EDR.
>

As per current implementation in l2cap_recv_frame, if we recv SMP
error/not supported from remote device then it disconnects the l2cap
channel, and create_paired_device expects primary service to happen
with security level high, so in this case two procedures are dependent
on each other. I am not sure if current behavior is ok ? as from spec
section ( 5.3.5.1 Pairing Not Supported by Slave page 649) failure
conditions it doesn't mention about either continuing or closing of
channel, let me know your opinion.

Regards
Vishwanath


>
> On Tue, Sep 6, 2011 at 12:42 PM, VISHWANATH KM <a21174@xxxxxxxxxxxx> wrote:
>> Hi,
>>
>> On Tue, Aug 9, 2011 at 3:30 AM, Ash K <ashoksarf@xxxxxxxxx> wrote:
>>>
>>> Also, section 2.1 from core spec 4.0 L2CAP says:
>>>
>>> 2.1 CHANNEL IDENTIFIERS
>>> A channel identifier (CID) is the local name representing a logical
>>> channel endpoint
>>> on the device. The null identifier (0x0000) shall never be used as a destination
>>> endpoint. Identifiers from 0x0001 to 0x003F are reserved for specific
>>> L2CAP functions. These channels are referred to as Fixed Channels. At a minimum,
>>> the L2CAP Signaling channel (Fixed Channel 0x0001) or the L2CAP LE
>>> Signaling channel (Fixed Channel 0x0005) shall be supported. If Fixed Channel
>>> 0x0005 is supported, then Fixed Channels 0x0004 and 0x0006 shall be
>>> supported (see Table 2.1).
>>>
>>> Which mean SMP L2CAP (0x0006) channel is mandatory if a device is
>>> using LE connection. In least case a implementation would have to
>>> implement SMP module which returns error (pairing not supported or
>>> command not supported). This procedure could be used to identify if
>>> SMP is supported.
>>
>> I miss the conclusion, so in above case when remote returns error
>> (pairing/cmd not supported) do we disconnect the LE ACL link or
>> continue with our usecase, ( here the usecase is doing primary service
>> discovery and disconnect as part of CreatePairedDevice API), pls
>> clarify
>>
>>>
>>> As I said in earlier mail, SMP procedure might not be invoked until a
>>> service requests for it. This might make error handling easier, since
>>> once would have just return GATT procedure failure since stating
>>> remote device does not support pairing or pairing command.
>>>
>>>
>>> On Mon, Aug 8, 2011 at 12:05 PM, Ash K <ashoksarf@xxxxxxxxx> wrote:
>>> > Hi All,
>>> >
>>> > LE is designed for low energy devices and as far as I can understand
>>> > Encryption/security related features are should not be used until the
>>> > service requests for it (even if it is supported), this might drain
>>> > low energy devices unnecessarily (since some service may not need
>>> > security). For example: Device Information service access.
>>> >
>>> > The correct procedure would be to start security related procedure
>>> > once any GATT service request for it. You can see the procedure in
>>> > "BLUETOOTH SPECIFICATION Version 4.0 [Vol 3] page 365 of 656"
>>> > (Bluetooth 4.0 core spec absolute page number 1725). Attached the flow
>>> > chart image from spec.
>>> >
>>> > As soon as you see a request for security mode, you can assume that
>>> > remote device supports SMP and encryption bit can also be verified
>>> > from remote feature.
>>> >
>>> > Let me know thoughts.
>>> >
>>> > Thanks,
>>> > Ashok
>>> >
>>> > On Mon, Aug 8, 2011 at 10:32 AM, Anderson Lizardo
>>> > <anderson.lizardo@xxxxxxxxxxxxx> wrote:
>>> >> Hi,
>>> >>
>>> >> On Mon, Aug 8, 2011 at 10:59 AM, VISHWANATH KM <a21174@xxxxxxxxxxxx> wrote:
>>> >>>> I think you have two options:
>>> >>>>
>>> >>>> 1) Always use CreateDevice(). Then if you want to issue SMP pairing,
>>> >>>> you can change the BT_IO_SECLEVEL when connection with bt_io_connect()
>>> >>>> (I haven't tested this lately, but I remember it used to work).
>>> >>>>
>>> >>>> 2) Extend the kernel Management API to allow Features Exchange. See
>>> >>>> doc/mgmt-api.txt for the existing commands, to have an idea on how it
>>> >>>> works (I recommend first sending an API proposal here to the list).
>>> >>>
>>> >>> Option 2 sounds better, where we use CreatePairedDevice and after the LE ACL
>>> >>> is established we can do LE Read Remote features, (similar to what we do for
>>> >>> BR i.e we do HCI Read Remote features in conn complete ) and if Encryption
>>> >>> feature bit is set then we trigger SMP else we don't, pls let me know if any
>>> >>> comments, if this sounds ok then i will mail the changes to this maillist
>>> >>> for further review
>>> >>
>>> >> Let's hear others opinions. Johan, Marcel, Gustavo?
>>> >>
>>> >> Regards,
>>> >> --
>>> >> Anderson Lizardo
>>> >> Instituto Nokia de Tecnologia - INdT
>>> >> Manaus - Brazil
>>> >> --
>>> >> 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
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Ash
>>> >
>>>
>>>
>>>
>>> --
>>> Ash
>>
>
>
>
> --
> Ash
>
--
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