[PATCH BlueZ v1 1/3] rap: Add OndemandRanging configuration option
From: Naga Bhavani Akella <hidden>
Date: 2026-09-08 04:27:45
Subsystem:
the rest · Maintainer:
Linus Torvalds
Add a per-adapter config knob under [ChannelSounding] to let the RAS Initiator use on-demand Ranging Data delivery (Get_Ranging_Data/ ACK_Ranging_Data) instead of real-time notifications. Defaults to false. - src/btd.h: add bool ondemand_ranging to struct btd_le_bcs. - src/main.c: parse "OndemandRanging" into btd_opts.defaults.bcs.ondemand_ranging. - src/main.conf: document the new option. --- src/btd.h | 1 + src/main.c | 4 ++++ src/main.conf | 8 ++++++++ 3 files changed, 13 insertions(+)
diff --git a/src/btd.h b/src/btd.h
index db2e81239..d70276b1d 100644
--- a/src/btd.h
+++ b/src/btd.h@@ -98,6 +98,7 @@ struct btd_le_bcs { uint8_t role; uint8_t cs_sync_ant_sel; int8_t max_tx_power; + bool ondemand_ranging; }; struct btd_defaults {
diff --git a/src/main.c b/src/main.c
index 8aa19a3e3..c7a55d30f 100644
--- a/src/main.c
+++ b/src/main.c@@ -160,6 +160,7 @@ static const char *const bcs_options[] = { "Role", "CsSyncAntennaSel", "MaxTxPower", + "OndemandRanging", NULL };
@@ -1301,6 +1302,8 @@ static void parse_le_cs_config(GKeyFile *config) parse_config_signed_int(config, "ChannelSounding", "MaxTxPower", &btd_opts.defaults.bcs.max_tx_power, INT8_MIN, INT8_MAX); + parse_config_bool(config, "ChannelSounding", "OndemandRanging", + &btd_opts.defaults.bcs.ondemand_ranging); } static void parse_avdtp_session_mode(GKeyFile *config)
@@ -1437,6 +1440,7 @@ static void init_defaults(void) btd_opts.defaults.bcs.role = 0x03; btd_opts.defaults.bcs.cs_sync_ant_sel = 0xFF; btd_opts.defaults.bcs.max_tx_power = 0x14; + btd_opts.defaults.bcs.ondemand_ranging = false; } static void log_handler(const gchar *log_domain, GLogLevelFlags log_level,
diff --git a/src/main.conf b/src/main.conf
index 80f4a3a0c..1d8e97dc6 100644
--- a/src/main.conf
+++ b/src/main.conf@@ -323,6 +323,14 @@ # Default: 20 (Max Power possible) #MaxTxPower = 20 +# Enables on-demand Ranging Data delivery for the RAS Initiator role. +# When true, the initiator subscribes to the On-demand Ranging Data, +# Ranging Data Ready/Overwritten, and RAS Control Point characteristics +# and fetches ranging data via Get_Ranging_Data/ACK_Ranging_Data instead +# of the default real-time streaming path. +# Default: false (use real-time streaming) +#OndemandRanging = false + [CSIS] # SIRK - Set Identification Resolution Key which is common for all the # sets. They SIRK key is used to identify its sets. This can be any
--