From: Daniel Winkler <danielwinkler@google.com>
To: marcel@holtmann.org
Cc: linux-bluetooth@vger.kernel.org,
chromeos-bluetooth-upstreaming@chromium.org,
Daniel Winkler <danielwinkler@google.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Johan Hedberg <johan.hedberg@gmail.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH v6 0/5] Bluetooth: Add new MGMT interface for advertising add
Date: Mon, 30 Nov 2020 14:57:39 -0800 [thread overview]
Message-ID: <20201130225744.3793244-1-danielwinkler@google.com> (raw)
Hi Maintainers,
This patch series defines the new two-call MGMT interface for adding
new advertising instances. Similarly to the hci advertising commands, a
mgmt call to set parameters is expected to be first, followed by a mgmt
call to set advertising data/scan response. The members of the
parameters request are optional; the caller defines a "params" bitfield
in the structure that indicates which parameters were intentionally set,
and others are set to defaults.
The main feature here is the introduction of min/max parameters and tx
power that can be requested by the client. Min/max parameters will be
used both with and without extended advertising support, and tx power
will be used with extended advertising support. After a call to set
advertising parameters, the selected transmission power will be
propagated in the reponse to alert userspace to the actual power used.
Additionally, to inform userspace of the controller LE Tx power
capabilities for the client's benefit, this series also changes the
security info MGMT command to more flexibly contain other capabilities,
such as LE min and max tx power.
All changes have been tested on hatch (extended advertising) and kukui
(no extended advertising) chromebooks with manual testing verifying
correctness of parameters/data in btmon traces, and our automated test
suite of 25 single- and multi-advertising usage scenarios.
A separate patch series will add support in bluetoothd. Thanks in
advance for your feedback!
Daniel Winkler
Changes in v6:
- Only populate LE tx power range if controller reports it
Changes in v5:
- Ensure data/scan rsp length is returned for non-ext adv
Changes in v4:
- Add remaining data and scan response length to MGMT params response
- Moving optional params into 'flags' field of MGMT command
- Combine LE tx range into a single EIR field for MGMT capabilities cmd
Changes in v3:
- Adding selected tx power to adv params mgmt response, removing event
- Re-using security info MGMT command to carry controller capabilities
Changes in v2:
- Fixed sparse error in Capabilities MGMT command
Daniel Winkler (5):
Bluetooth: Add helper to set adv data
Bluetooth: Break add adv into two mgmt commands
Bluetooth: Use intervals and tx power from mgmt cmds
Bluetooth: Query LE tx power on startup
Bluetooth: Change MGMT security info CMD to be more generic
include/net/bluetooth/hci.h | 7 +
include/net/bluetooth/hci_core.h | 12 +-
include/net/bluetooth/mgmt.h | 49 +++-
net/bluetooth/hci_core.c | 47 +++-
net/bluetooth/hci_event.c | 19 ++
net/bluetooth/hci_request.c | 29 ++-
net/bluetooth/mgmt.c | 430 +++++++++++++++++++++++++++++--
7 files changed, 548 insertions(+), 45 deletions(-)
--
2.29.2.454.gaff20da3a2-goog
next reply other threads:[~2020-11-30 22:59 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-30 22:57 Daniel Winkler [this message]
2020-11-30 22:57 ` [PATCH v6 1/5] Bluetooth: Add helper to set adv data Daniel Winkler
2020-11-30 22:57 ` [PATCH v6 2/5] Bluetooth: Break add adv into two mgmt commands Daniel Winkler
2020-11-30 22:57 ` [PATCH v6 3/5] Bluetooth: Use intervals and tx power from mgmt cmds Daniel Winkler
2020-11-30 22:57 ` [PATCH v6 4/5] Bluetooth: Query LE tx power on startup Daniel Winkler
2020-11-30 22:57 ` [PATCH v6 5/5] Bluetooth: Change MGMT security info CMD to be more generic Daniel Winkler
2020-12-03 12:47 ` [PATCH v6 0/5] Bluetooth: Add new MGMT interface for advertising add Marcel Holtmann
2020-12-03 20:15 ` Daniel Winkler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201130225744.3793244-1-danielwinkler@google.com \
--to=danielwinkler@google.com \
--cc=chromeos-bluetooth-upstreaming@chromium.org \
--cc=davem@davemloft.net \
--cc=johan.hedberg@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).