Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3104056ybv; Mon, 24 Feb 2020 18:18:55 -0800 (PST) X-Google-Smtp-Source: APXvYqzn8+DiUsmULn1WzxL6nRXg4UUQeoJX10ORzIYu10BurZKr1pliUQA/XGrr4SJNZUR28sZP X-Received: by 2002:a05:6830:200d:: with SMTP id e13mr43470283otp.364.1582597135722; Mon, 24 Feb 2020 18:18:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582597135; cv=none; d=google.com; s=arc-20160816; b=iNaKvXbBVbjqK+IMzSJwThy1tLbQlCHfUxCKqnKPe//Tvzg4sFPMV8dG2M8VeufD1g c937dQ4YGxU1IIJW3FCAwpLSQGOglgO7C93Vtv4P+3Rd2d21NA8c/EKgWpQxcLZiGe5b gJXJHz5LeEYsznwBIFxfuH7wxvdUAovSX89S5+F/efPwcEIpGbzsjBZcBoXtI/65GbH/ 3Uwf7FUluMJOhZnGo6s5U0/SnqdCeYFET2T0rlQ4Z8QGxXVf5gG2WaEsR1DBmOimHJGC TWvjUYKmp1HSlA4ZOqvS0yr3enAq/LN4UlMe6kGIFtLtssBXWDz0UwFf8sR4qDAKOXNU eVuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=BorgV2hcURsdYjdaOVBs24kkWkYUQfMMu/bryAnlmWY=; b=luVk4KxpLLHxqTjJOOqafI/ScP8Y0zuYtpxNkfX8Iw22NNU9vAZLMfaCDH2XuGYnA+ HJyAcnFPMzuyhvvGEx/Oj9D1bMzESfS6O/L9APhLsmG0WW4SDldRN1s7Z+0iIxKbNneN bMeFHb3a09CrE7Gw8xiIDqDM2eF5vW3pSM5X3SQMCH6l9439UtX8Sl59wCKUN8L/yA2E g/uKkT37tSzP0ULKdZICx5fl+cqCUDza+jREtYea46XfeP3BM+1oIYFEArdlleGiwfqE EN6Orht0lIGDIRcv0EIeHXur+902Jksijgjb46Tbsu0xB1TCweYybGd/3cRnT9BI97Ku OIPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=IVVRUBjn; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h14si5604787oie.130.2020.02.24.18.18.29; Mon, 24 Feb 2020 18:18:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=IVVRUBjn; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728529AbgBYCS2 (ORCPT + 99 others); Mon, 24 Feb 2020 21:18:28 -0500 Received: from mail-oi1-f177.google.com ([209.85.167.177]:43396 "EHLO mail-oi1-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726962AbgBYCS2 (ORCPT ); Mon, 24 Feb 2020 21:18:28 -0500 Received: by mail-oi1-f177.google.com with SMTP id p125so11066080oif.10 for ; Mon, 24 Feb 2020 18:18:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=BorgV2hcURsdYjdaOVBs24kkWkYUQfMMu/bryAnlmWY=; b=IVVRUBjnkNSNLF/x8GsNiDEXRNR82TU+8iu2EG+T/w1qI9nB2NKCXohgoad29aigN6 SRaFjD7AvpTl/ONKCDwwfxDIM8zqMELTwzRClQuuU9u5hZfuyfVnKZL5yuxvGCe2kQFk Ky7ngU1ibdyMlyVaHb/tW9FN2olHlA4v6qEfrESzCib3s+XTOth0a33TTNswNlu1jTr8 lcjh8Sy1FYuSY5QlMIG/RArq3mUQyzWui3NIFidHI55gRC8PE9MjZTuRuzTWPA5jJ/cL pzhrJ3Vpb6d9Djs+qrSGq8TrSKjra6nrGXHT3yRQgAxPsYMmgrCfECPdyYixFndAlyKw EQhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=BorgV2hcURsdYjdaOVBs24kkWkYUQfMMu/bryAnlmWY=; b=Es/KW8p1E572ipb/KrElr2SMeFCg/u0vmqDny/LXeSdMvgJ7rdjPWHq2iIO/Bl3kJR nZWm41m144xZR462BxwPUJ9gltzK0GzNkJeHQGzaytlHb9ZH+xcl5uvrOZKoLOhAKlwe tpCTOags/9gg7WxsRrzqjyysoGlPgLxw9ANrt8QxgY6AayCHXkRwcYuvqFiOmDgvR1Lt LoCP6Fb0YXOaiNpl0TQBl0+B2fqFzDRUhIoMN+jbscwavBvDK3NXnS3T1yLnohNxhX7W EEz61zPWmhcOVZo9FvDRUfOBH1TJt5jAMNVH+sJyJU6n+tllOVHddI+C+TjWbfaYB6d1 aW1g== X-Gm-Message-State: APjAAAVZ5PVfDzLGMYm6jsMdsOxs9UMJ1WUWnfFCk7rNr64y+2bBxGO3 1dQ8bSP8f5fGN5GSP79Q48FQ+OSp9dPUYyuEwR15Cg== X-Received: by 2002:a05:6808:643:: with SMTP id z3mr1656698oih.19.1582597107461; Mon, 24 Feb 2020 18:18:27 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: chris baker Date: Mon, 24 Feb 2020 18:18:18 -0800 Message-ID: Subject: Re: Bluez blotoothctl scan vs hcitool scan To: Luiz Augusto von Dentz Cc: Barry Byford <31baz66@gmail.com>, Bluez mailing list Content-Type: text/plain; charset="UTF-8" Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Thanks Luiz, that makes sense and would explain why it ignores the sensor's advertisements at pretty regular 11 second intervals. And again, I don't want to keep bugging you guys but my last question is, is there any issue using the MGMT api in conjunction with the normal DBus BLE api's? For that matter if I end up having to go to the hci level can that be mixed as well or will they step on each other somehow? I'm envisioning putting the normal, "connected" sensors using the DBus api calls (for scanning, connecting, receiving characteristic data) in one thread and the beacon devices in a completely separate thread, both running independently and using different api's (though possibly sharing some data). If that's just not going to work it'll help to know up front and I can look at alternatives. Thanks again, chris On Mon, Feb 24, 2020 at 5:52 PM Luiz Augusto von Dentz wrote: > > Hi Chris, > > On Mon, Feb 24, 2020 at 5:36 PM chris baker wrote: > > > > On Mon, Feb 24, 2020 at 4:33 PM Luiz Augusto von Dentz > > wrote: > > > > > > Hi Chris, > > > > > > On Mon, Feb 24, 2020 at 1:56 PM chris baker wrote: > > > > > > > > On Mon, Feb 24, 2020 at 9:13 AM Barry Byford <31baz66@gmail.com> wrote: > > > > > > > > > > If the DBus API is not cutting it for you then using the MGMT API > > > > > https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/mgmt-api.txt > > > > > is what has been recommended in the past: > > > > > https://www.spinics.net/lists/linux-bluetooth/msg68959.html > > > > > > > > > > On Mon, 24 Feb 2020 at 16:37, chris baker wrote: > > > > > > > > > > > > On Mon, Feb 24, 2020 at 6:08 AM Barry Byford <31baz66@gmail.com> wrote: > > > > > > > > > > > > > > Hi Chris, > > > > > > > > > > > > > > On Mon, 24 Feb 2020 at 10:12, chris baker wrote: > > > > > > > > > > > > > > > > > > > > > > > So my question is, is there a way to get those missing advertisements > > > > > > > > through the dbus api, possibly some additional setting somewhere? > > > > > > > > > > > > > > Duplicates are disabled by default with the DBus API. This can be > > > > > > > controlled with the DuplicateData setting: > > > > > > > https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/adapter-api.txt#n107 > > > > > > > > > > > > > > Regards, > > > > > > > Barry > > > > > > > > > > > > > > > > > > My apologies, I guess I wasn't clear (long post) but, I turned > > > > > > duplicate data on when using the bluetoothctl command (via the "scan" > > > > > > submenu) and also used the flag, "hcitool lescan --duplicates", when > > > > > > running the hcitool command. So both scans should have included any > > > > > > duplicates (unless I've misunderstood something). Additionally, none > > > > > > of the missing packets were duplicates (again, unless I'm > > > > > > misunderstanding what "duplicates" means). each packet had a unique > > > > > > sequence numbers as well as the button data field toggling. > > > > > > > > Great, thank you. I'll look into the MGMT api in the coming days. That > > > > said, is it a problem to use both api's (MGMT/DBus) concurrently from > > > > the same app? My application supports both connected BLE sensors as > > > > well as BLE beacon type sensors. If possible I can handle them in two > > > > different threads, but the DBus thread for connected sensors would > > > > still occasionally need to scan for new sensors (using the DBus > > > > discovery call) and would still need to get characteristic changed > > > > callbacks as well. > > > > > > Have a look at the other thread subject: Adding support for > > > DuplicateData into the kernel > > > > > > We are discussing adding support to disable duplicate via MGMT since > > > DuplicateData does not currently remove it but we might want to change > > > that, or at least have some alternative API to do that. We could for > > > example have a socket that enables a more direct access to the > > > advertisments, that way protocol that work over advertisement would > > > have a way to do this, in fact this might be better for things like > > > mesh so it can coexist with bluetoothd. > > > > > > > Out of curiosity though, is the behavior I'm seeing normal? Or is the > > > > sensor doing something improper possibly? Seeing as the packets aren't > > > > duplicates why would they be filtered (or are they just not being > > > > received to begin with for some reason)? The 11 second interval seems > > > > kind of strange. Anyway, thanks again for the help! Chris > > > > > > > > > > > > -- > > > Luiz Augusto von Dentz > > > > > > Thanks Luiz, I don't want to sound dense, and I really appreciate you > > and Barry's help, but these aren't duplicate packets (unless, again, > > I'm misunderstanding the term). Each packet payload is completely > > unique. I'll have a look at the other thread for sure, but I'm really > > just trying to understand if the missing packets I identified in the > > trace should be there (in the DBus/bluetoothctl trace) or if there's a > > reason they were excluded. Again, they weren't duplicates and I'm > > reasonably sure I had the duplicate data flags set correctly each > > time. Also, whatever is going on is not transient, I can duplicate it > > with the senor I'm testing every time (both in my app or via > > bluetoothctl). More important for sure is to find a work-around > > (hopefully the MGMT api Barry pointed me to) but still just curious > > why these packets are getting dropped/filtered... Anyway, thanks again > > to you both! > > Afaik the HCI duplicate filter flag is not very granular, so the > controller may be dropping any reports found during a sort period > since it might not have enough memory to store everything, include > actual data in the advertisement, to compare with. > > -- > Luiz Augusto von Dentz