Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2100837ybt; Fri, 3 Jul 2020 00:25:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxH53o9QC36EfEzM7mgb6i9hG0B8XZrxHdi/A2ljzTSKtENTzyeCyrxWzlkJ3cvXu2lx4F3 X-Received: by 2002:a17:907:7245:: with SMTP id ds5mr32726251ejc.67.1593761116764; Fri, 03 Jul 2020 00:25:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593761116; cv=none; d=google.com; s=arc-20160816; b=qeK+Bd8XDxDuOv+2HiBN1Cfu0YxX0Wm+UlCRKSrS4H8JRO0hCNbnef3bvns2ZkV9Mi LYGq9wO1a41Z+0zRrabDK5LgXNfFiD6THC188bpy/e9r8lWYnadPOsrBIVypa+t6E784 oGTH1554zaYtZK6F9qy7IhR15Wuw2D5CqOGDFsBqXEXekusmSJqX0Ydk4tGZ2KNnXhEW oeTTPLUbgPo5Rc2Yf/w6OZnGD8KH76PcfOIImlzkGQuWTTGeJ0Ppjm/8lezeiWuFRNuk aBhqmAKlXdeNPNR5gAyAyt/5nlhDoFxC7k2UYlqmgzEnknw9nc8Jcg35NzAxVnUeKNeJ 3Krg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version; bh=V8w8BtX7lr6/vw7Wzx+UWc/YIMKqC6KmA1evw3HuaUg=; b=c/wcXFLqo4CwID/xTQ8y9bQ7pP2X1cDulkSNIjwnUCa/chmyMnTTrh5PoW+tVg/7bB gMgEGrdnR7R4piiK38d3Rw6YFLXpUUhgjF0cAALjBGVOMw9y5b+9yoqkWFeRgYnKR67y NWwTNhxtE/QQwNOBBsJIj0IOX5AflLCjQGCf7wNkRA+7BPEYGcsGOt2Vhp20XtTKhxrk X9XK+AVVz+z15I4QfzjnPprgblicImBFPvUlnQspI3UgkKmKcBxW9I4rWgPfOPRA0GM5 siuiGeWUC2GVIwUPGdoGn/fwVse6PhQDg52g7L05b8Nlk3prOkq6me4cdcbVKM2EsD+z oZrQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h17si7041808ejd.655.2020.07.03.00.24.45; Fri, 03 Jul 2020 00:25:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725960AbgGCHYZ convert rfc822-to-8bit (ORCPT + 99 others); Fri, 3 Jul 2020 03:24:25 -0400 Received: from coyote.holtmann.net ([212.227.132.17]:46836 "EHLO mail.holtmann.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725648AbgGCHYZ (ORCPT ); Fri, 3 Jul 2020 03:24:25 -0400 Received: from marcel-macpro.fritz.box (p5b3d2638.dip0.t-ipconnect.de [91.61.38.56]) by mail.holtmann.org (Postfix) with ESMTPSA id A2DE1CED23; Fri, 3 Jul 2020 09:34:19 +0200 (CEST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: [PATCH v2] Bluetooth: le_supported_roles experimental feature From: Marcel Holtmann In-Reply-To: Date: Fri, 3 Jul 2020 09:24:23 +0200 Cc: Alain Michaud , BlueZ Content-Transfer-Encoding: 8BIT Message-Id: <2CCCE793-1489-4162-AD02-A5737718B956@holtmann.org> References: <20200701220853.421445-1-alainm@chromium.org> <427B6E1C-178C-405D-88F8-899EC48AC8A9@holtmann.org> To: Alain Michaud X-Mailer: Apple Mail (2.3608.80.23.2.2) Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Hi Alain, > > This patch adds an le_supported_roles features which allows a > > clients to determine if the controller is able to support peripheral and > > central connections separately and at the same time. > > > > Signed-off-by: Alain Michaud > > --- > > > > Changes in v2: > > - Slight change of design based on offline feedback > > > > net/bluetooth/mgmt.c | 36 +++++++++++++++++++++++++++++++++++- > > 1 file changed, 35 insertions(+), 1 deletion(-) > > > > diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c > > index 5e9b9728eeac..c13fcc21745f 100644 > > --- a/net/bluetooth/mgmt.c > > +++ b/net/bluetooth/mgmt.c > > @@ -3753,10 +3753,36 @@ static const u8 debug_uuid[16] = { > > }; > > #endif > > > > +/* 671b10b5-42c0-4696-9227-eb28d1b049d6 */ > > +static const u8 le_supported_roles[16] = { > > + 0xd6, 0x49, 0xb0, 0xd1, 0x28, 0xeb, 0x27, 0x92, > > + 0x96, 0x46, 0xc0, 0x42, 0xb5, 0x10, 0x1b, 0x67, > > +}; > > + > > +static u32 get_le_roles_flags(struct hci_dev *hdev) > > +{ > > + u32 flags = 0; > > + > > + /* Central connections supported */ > > + if (hdev->le_states[4] & 0x08) > > + flags |= BIT(0); > > + > > + /* Peripheral connections supported */ > > + if (hdev->le_states[4] & 0x40) > > + flags |= BIT(1); > > + > > + /* Simult central and peripheral connections supported */ > > + if (test_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks) && > > + (hdev->le_states[3] & 0x10)) > > + flags |= BIT(2); > > + > > + return flags; > > +} > > this is not what we can do here. The flags are defined like this. > > The following bits are defined for the Flags parameter: > > 0 Feature active > 1 Causes change in supported settings > > And I want these flags for generic handling of experimental features. Individual features can not overwrite it. > > So if you only want to support a the “read" functionality, then something like this please. > > if ((hdev->le_states[4] & 0x08) && /* Central */ > (hdev->le_states[4] & 0x40) && /* Peripheral */ > (hdev->le_states[3] & 0x10) && /* Simultaneous */ > test_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks)) > flags |= BIT(0); > > OK, Since the userspace Api we discussed reports individual states, would you suggest if LE is supported that the Central and Peripheral roles are supported and just use this to query the simultaneous support? you get the Central state support from the LE setting and Peripheral from the Advertising setting. So I think the only extra information you would need is the support for both at the same time. That said, I have been discussing with Daniel if we could extend (and with that rename) the Read Security Information command and allow it to report static information about the controller support. Maybe it fits better there. However for now, I would just export this via a simple experimental feature. Regards Marcel