commit | 0e3733b80f795cbb095402c8b0cd61e0b4457503 | [log] [tgz] |
---|---|---|
author | Faraaz Sareshwala <fsareshwala@google.com> | Mon Mar 17 11:20:43 2025 -0700 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Mar 17 11:20:43 2025 -0700 |
tree | bce5a8ec5ba7b3d543261b216ff4ba6cd5daa9d5 | |
parent | 40459ab8b2ebacd450aa9334c1dd9127cb3aad19 [diff] |
pw_bluetooth_sapphire: Support Controller packet filter offloading This change updates Sapphire to support offloading packet filters to the Controller when possible. Until recently, Sapphire was targeted towards smart displays (e.g. when providing the Bluetooth stack within Fuchsia). As Sapphire moves towards support for embedded devices, power efficiency will become a much larger focus. In this case, we want Sapphire to use the device’s battery as efficiently as possible. One of the ways to achieve this is to offload as much processing to the Controller’s processor as possible. This allows the Host’s processor to remain idle or sleep for longer periods of time, reducing power consumption in the Host. The Sapphire stack currently implements Host level advertising packet filtering. The Bluetooth Core Specification includes support for chip-level advertising packet filters (e.g. HCI_LE_Add_Device_To_Filter_Accept_List). However, the Core Specification’s feature set isn’t as feature rich as the one we would like to provide in Sapphire: it includes filtering only on device addresses. Within Sapphire, we currently support filtering based on a variety of other properties (e.g. service UUIDs, device name, etc). However, these are Host level filters. For better power efficiency, we want to offload this more feature-rich filtering onto the Controller itself via Android vendor extensions. This change implements such Controller based offloaded packet filtering. Fixed: 42174576 Test: bazelisk test --config googletest //pw_bluetooth_sapphire/... Change-Id: I42413bb35888d0615446d5fb835a6f0350842b1a Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/265639 Docs-Not-Needed: Faraaz Sareshwala <fsareshwala@google.com> Commit-Queue: Faraaz Sareshwala <fsareshwala@google.com> Reviewed-by: Jason Graffius <jgraff@google.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.
For more information please see our website: https://pigweed.dev/.