From: Naga Bhavani Akella <naga.akella@oss.qualcomm.com>
To: linux-bluetooth@vger.kernel.org
Cc: luiz.dentz@gmail.com, quic_mohamull@quicinc.com,
quic_hbandi@quicinc.com, quic_anubhavg@quicinc.com,
Naga Bhavani Akella <naga.akella@oss.qualcomm.com>
Subject: [PATCH BlueZ v3 2/7] doc: Add org.bluez.RangingProvider1 documentation
Date: Thu, 27 Aug 2026 10:50:29 +0530 [thread overview]
Message-ID: <20260827052034.1374180-3-naga.akella@oss.qualcomm.com> (raw)
In-Reply-To: <20260827052034.1374180-1-naga.akella@oss.qualcomm.com>
Document org.bluez.RangingProvider1 interface,
implemented by external clients to expose per-device Channel Sounding
distance estimates that BlueZ reflects onto the corresponding device
object.
---
Makefile.am | 9 ++-
doc/org.bluez.RangingProvider1.rst | 92 ++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+), 3 deletions(-)
create mode 100644 doc/org.bluez.RangingProvider1.rst
diff --git a/Makefile.am b/Makefile.am
index 682ec26e5..8252df65b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -406,7 +406,8 @@ man_MANS += doc/org.bluez.ThermometerManager.5 \
doc/org.bluez.Thermometer.5 \
doc/org.bluez.ThermometerWatcher.5
man_MANS += doc/org.bluez.ChannelSounding1.5 \
- doc/org.bluez.Ranging1.5
+ doc/org.bluez.Ranging1.5 \
+ doc/org.bluez.RangingProvider1.5
endif
manual_pages += doc/bluetoothd.8
manual_pages += doc/hci.7 doc/mgmt.7 doc/l2cap.7 doc/rfcomm.7 doc/sco.7 \
@@ -448,7 +449,8 @@ manual_pages += doc/org.bluez.ThermometerManager.5 \
doc/org.bluez.Thermometer.5 \
doc/org.bluez.ThermometerWatcher.5
manual_pages += doc/org.bluez.ChannelSounding1.5 \
- doc/org.bluez.Ranging1.5
+ doc/org.bluez.Ranging1.5 \
+ doc/org.bluez.RangingProvider1.5
EXTRA_DIST += src/genbuiltin src/bluetooth.conf \
src/main.conf profiles/network/network.conf \
@@ -538,7 +540,8 @@ EXTRA_DIST += doc/org.bluez.ThermometerManager.rst \
doc/org.bluez.ThermometerWatcher.rst
EXTRA_DIST += doc/org.bluez.ChannelSounding1.rst \
- doc/org.bluez.Ranging1.rst
+ doc/org.bluez.Ranging1.rst \
+ doc/org.bluez.RangingProvider1.rst
EXTRA_DIST += doc/pics-opp.txt doc/pixit-opp.txt \
doc/pts-opp.txt
diff --git a/doc/org.bluez.RangingProvider1.rst b/doc/org.bluez.RangingProvider1.rst
new file mode 100644
index 000000000..4237d5a5e
--- /dev/null
+++ b/doc/org.bluez.RangingProvider1.rst
@@ -0,0 +1,92 @@
+===========================
+org.bluez.RangingProvider1
+===========================
+
+-----------------------------------------------
+BlueZ D-Bus RangingProvider API documentation
+-----------------------------------------------
+
+:Version: BlueZ
+:Date: August 2026
+:Manual section: 5
+:Manual group: Linux System Administration
+
+Interface
+=========
+
+:Service: <client D-Bus address>
+:Interface: org.bluez.RangingProvider1
+:Object path: {provider_root}/{unique ranging object path}
+
+Properties
+----------
+
+object Device [readonly]
+```````````````````````````
+
+The object path of the device that this distance estimate applies to.
+
+uint32 Distance [readonly, optional]
+````````````````````````````````````
+
+Estimated distance to the device identified by **Device**, in
+millimeters. May be absent when the object is first exposed and set
+once the provider has computed an initial estimate; **bluetoothd(8)**
+watches for it via ``PropertiesChanged``.
+
+Error handling
+==============
+
+This interface has no methods; it is implemented by the ranging daemon
+and consumed by **bluetoothd(8)** via **org.freedesktop.DBus.ObjectManager**
+and property-change watches, so there is no D-Bus method call to return
+an error from. Instead, **bluetoothd(8)** validates each exposed object
+and silently ignores (logging a warning) any that fail validation:
+
+- An object path outside the provider's registered root path is
+ ignored.
+- An object missing the **Device** property, or whose **Device**
+ property is not an object path, is ignored.
+- An object whose **Device** does not match an existing, non-temporary
+ device is ignored.
+- A **Distance** value (initial or updated) that is not a uint32 is
+ ignored; the previously reported value, if any, is left unchanged.
+- If the provider has already exposed a **RangingProvider** object
+ for a given device (e.g. a stale or duplicate object), any further
+ object it exposes for that same device is ignored — each device may
+ only be represented by one **RangingProvider** object at a time.
+ Note that only one provider may be registered per adapter at all
+ (see **org.bluez.RangingProviderManager1(5)**), so this situation can
+ only arise from the same provider re-exposing a device, not from a
+ second, distinct provider racing for it.
+
+Removing an ignored object, or fixing it and re-adding it, is treated
+the same as any other **InterfacesAdded**/**InterfacesRemoved** event.
+
+Overview
+========
+
+A ranging daemon exposes one **RangingProvider** object per device it
+is tracking, under the root path it registered with
+**org.bluez.RangingProviderManager1(5)**::
+
+ Ranging daemon bluetoothd
+ | |
+ | export {provider_root}/dev_XX (RangingProvider) |
+ | { Device: <device path> } |
+ |--------------------------------------------------->|
+ | | reflects a
+ | | Ranging object
+ | | on the device path
+ | |
+ | Distance = D |
+ | PropertiesChanged("Distance", D) |
+ |--------------------------------------------------->|
+ | | updates
+ | | Ranging.Distance
+ | | and notifies clients
+ | | (see org.bluez.Ranging1(5))
+
+Removing the object (or disconnecting from D-Bus) causes
+**bluetoothd(8)** to remove the matching **org.bluez.Ranging1(5)**
+interface from the device.
--
next prev parent reply other threads:[~2026-08-27 5:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-27 5:20 [PATCH BlueZ v3 0/7] Add ranging provider implementation Naga Bhavani Akella
2026-08-27 5:20 ` [PATCH BlueZ v3 1/7] doc: Add org.bluez.Ranging1 documentation Naga Bhavani Akella
2026-08-27 16:16 ` Add ranging provider implementation bluez.test.bot
2026-08-27 5:20 ` Naga Bhavani Akella [this message]
2026-08-27 5:20 ` [PATCH BlueZ v3 3/7] doc: Add org.bluez.RangingProviderManager1 documentation Naga Bhavani Akella
2026-08-27 5:20 ` [PATCH BlueZ v3 4/7] doc: Modify bluetoothctl-cs documentation Naga Bhavani Akella
2026-08-27 5:20 ` [PATCH BlueZ v3 5/7] src: Add Ranging provider D-Bus API Naga Bhavani Akella
2026-08-27 5:20 ` [PATCH BlueZ v3 6/7] client: Add ranging distance display support to bluetoothctl Naga Bhavani Akella
2026-08-27 5:20 ` [PATCH BlueZ v3 7/7] test: Add Python Ranging Provider example Naga Bhavani Akella
2026-09-02 17:10 ` [PATCH BlueZ v3 0/7] Add ranging provider implementation patchwork-bot+bluetooth
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=20260827052034.1374180-3-naga.akella@oss.qualcomm.com \
--to=naga.akella@oss.qualcomm.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=quic_anubhavg@quicinc.com \
--cc=quic_hbandi@quicinc.com \
--cc=quic_mohamull@quicinc.com \
/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