Re: [PATCH] advertising: Fix setting discoverable flag only for peripheral

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

 



Hi Szymon,

On Wed, Feb 21, 2018 at 9:59 AM, Szymon Janc <szymon.janc@xxxxxxxxxxx> wrote:
> Hi Luiz,
>
> On Tuesday, 20 February 2018 17:21:54 CET Luiz Augusto von Dentz wrote:
>> Hi Szymon,
>>
>> On Tue, Feb 20, 2018 at 5:13 PM, Szymon Janc <szymon.janc@xxxxxxxxxxx>
> wrote:
>> > General Discoverable mode can also be set for non-connectable
>> > advertising. This was affecting GAP/DISC/GENM/BV-03-C qualification
>> > testcase.
>> > ---
>> >
>> >  src/advertising.c | 7 +++----
>> >  1 file changed, 3 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/src/advertising.c b/src/advertising.c
>> > index 38d2a2d1f..6e227d4d1 100644
>> > --- a/src/advertising.c
>> > +++ b/src/advertising.c
>> > @@ -622,12 +622,11 @@ static int refresh_adv(struct btd_adv_client
>> > *client, mgmt_request_func_t func)>
>> >         DBG("Refreshing advertisement: %s", client->path);
>> >
>> > -       if (client->type == AD_TYPE_PERIPHERAL) {
>> > +       if (client->type == AD_TYPE_PERIPHERAL)
>> >
>> >                 flags = MGMT_ADV_FLAG_CONNECTABLE;
>> >
>> > -               if
>> > (btd_adapter_get_discoverable(client->manager->adapter))
>> > -                       flags |= MGMT_ADV_FLAG_DISCOV;
>> > -       }
>> > +       if (btd_adapter_get_discoverable(client->manager->adapter))
>> > +               flags |= MGMT_ADV_FLAG_DISCOV;
>>
>> iirc there were something saying that non-connectable advertisement
>> should not set these flags, if I recall this right this was why
>> beacons used to not show on the discovery or something like that.
>
> As mentioned in commit there is qualification test which tests it.
>
> GAP/DISC/GENM/BV-03-C
> [General Discoverable Mode Non-Connectable Mode - LE Only]
>
> That said, this patch isn't valid since in bluetoothd discoverable requires
> connectable so currently we are not able to configure non-connectable
> advertising instance when discoverable.
>
> I think we should extend Add Advertising mgmt command with flag that would
> allow to force non-connectable advertising regardless of global connectable
> flag.
>
> Thoughts?

I guess I was assuming that discoverable would always be connectable
aka. Peripheral Mode, since  Broadcast Mode shall not set these flags:

'A device in the broadcast mode shall not set the ‘LE General Discoverable Mode’
flag or the ‘LE Limited Discoverable Mode’ flag in the Flags AD Type as defined
in [Core Specification Supplement], Part A, Section 1.3.'

Perhaps this test is not really for broadcast mode, but our D-Bus is,
so I wonder how we can accommodate this, or perhaps this would go
under Peripheral Mode? I really thought the distinction of broadcast
vs peripheral would be the use of non-connectable vs connectable
advertisements but that doesn't seem to be true for the test above.

-- 
Luiz Augusto von Dentz
--
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