Thread (6 messages) 6 messages, 4 authors, 2016-09-12

Re: Option to disable filtering of duplicate LE ADV

flat view

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2016-09-12 10:52:05

Hi Marcel, Johan,

On Mon, Sep 12, 2016 at 9:47 AM, Marcel Holtmann [off-list ref] wrote:
Hi Johan,
quoted
quoted
quoted
Right now in all of the le_scan functions filter_dup is set to
LE_SCAN_FILTER_DUP_ENABLE.  This is not always desired with beacons as
the content may change.  I can force this by sending the HCI commands
to enable scanning without this filter, but then the mgmt api (and
DBUS) cannot be used for scanning.

I was wondering if people had thoughts on making this configurable?
Check out the SetDiscoveryFilter:

https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/adapter-api.txt

When that is used it will not enable duplicated filter and in fact is
the only way to discover beacons which don't have discoverable flags
sets e.g. broadcaster.
Actually Brennan is right that none of these methods disable duplicate
filtering. All of the places in the kernel that set the LE scan
parameters explicitly enable duplicate filtering. I suppose we should
seriously consider extending the mgmt API to allow performing LE scan
without the duplicate filtering. Right now the only way to do that is
through raw HCI access.
however when a driver sets the strict duplicate filtering quirk, then scanning will be restarted and thus new advertising data can be found.
Im not sure what the quirk actually means but it doesn't look like it
will be able to attend the RSSI filtering since the controller may
omit results thus why I though duplicate was not enabled when
filtering is. From the code it looks like the quirk would force
restarting the scanning:

/* If duplicate filtering does not report RSSI changes, then restart
* scanning to ensure updated result with updated RSSI values.
*/
if (test_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks)) {
restart_le_scan(hdev);

Isn't that a causing a little too many restarts? I wonder if there is
anyone using this quirk in practice? And is this really worth it
instead of just disabling the duplicate filter?

-- 
Luiz Augusto von Dentz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help