From: Cheng Jiang <cheng.jiang@oss.qualcomm.com>
To: linux-bluetooth@vger.kernel.org
Cc: jinwang.li@oss.qualcomm.com, wei.deng@oss.qualcomm.com,
xiuzhuo.shang@oss.qualcomm.com, shuai.zhang@oss.qualcomm.com,
Cheng Jiang <cheng.jiang@oss.qualcomm.com>
Subject: [PATCH 11/11] doc/qualification: Add RAP/RAS PTS qualification results
Date: Thu, 1 Oct 2026 21:18:57 +0800 [thread overview]
Message-ID: <20261001131900.707485-12-cheng.jiang@oss.qualcomm.com> (raw)
In-Reply-To: <20261001131900.707485-1-cheng.jiang@oss.qualcomm.com>
Record the PTS results for the Ranging Profile and the Ranging Service.
Both are split per case prefix, as the other qualification documents are:
rap-pts.rst keeps the 19 RAP Requester and Responder cases, and the new
ras-pts.rst carries the 31 RAS Server cases.
Every case is listed on its own row rather than collapsed into a range, so
the file states which cases were actually run. RAS/SR/SPE/BI-02-C is
listed as not applicable: RAS.TS Table 5.1 selects it only when Abort
Operation is unsupported (NOT RAS 3/4), and the IUT supports it, so
RAS/SR/RCP/BV-03-C and RAS/SR/SPE/BI-05-C cover that path instead.
ras-pts.rst also records which transport the server must pick when a
client enables both notifications and indications, since the rule differs
per characteristic and each variant has its own case.
Assisted-by: Claude:claude-opus-4.8
---
doc/qualification/rap-pts.rst | 180 ++++++++++++++++++++++++++++++++++
doc/qualification/ras-pts.rst | 135 +++++++++++++++++++++++++
2 files changed, 315 insertions(+)
create mode 100644 doc/qualification/rap-pts.rst
create mode 100644 doc/qualification/ras-pts.rst
diff --git a/doc/qualification/rap-pts.rst b/doc/qualification/rap-pts.rst
new file mode 100644
index 000000000..a2647f701
--- /dev/null
+++ b/doc/qualification/rap-pts.rst
@@ -0,0 +1,180 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2026 Qualcomm Technologies, Inc.
+
+================
+RAP test results
+================
+
+:PTS version: 8.14.0.4
+:BlueZ: 5.87 with Channel Sounding support
+
+RAS Server test results are in ``ras-pts.rst``.
+
+Setup
+=====
+
+- Enable ``Experimental = true`` in ``/etc/bluetooth/main.conf``.
+- Use a ``NoInputNoOutput`` bluetoothctl agent and make it the default agent.
+- Before cases that establish a new encrypted link, delete the DUT bond and the
+ corresponding PTS LTK/bond. Removing only one side causes authentication
+ failure.
+- Do not use the bluetoothctl ``gatt`` menu to write RAS CCCDs. Use the
+ ``cs ranging-data-mode`` command so RAP owns subscription lifetime.
+
+Requester results
+=================
+
++----------------------------+----------+--------------------------------------------------------------------------+
+| Test name | Result | Notes |
++============================+==========+==========================================================================+
+| RAP/REQ/RRD/BV-01-C | PASS | Configure the requested Real-time notification or indication transport. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/RRD/BI-01-C | PASS | The Requester disables the Real-time CCCD after 5 seconds without a |
+| | | first segment. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/RRD/BI-02-C | PASS | The Requester disables the Real-time CCCD after 1 second without a |
+| | | continuation segment. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/CGGIT/SER/BV-01-C | PASS | Discover the remote primary Ranging Service. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/CGGIT/CHA/BV-01-C | PASS | Discover the RAS Features characteristic. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/CGGIT/CHA/BV-02-C | PASS | Discover the Real-time Ranging Data characteristic. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/CGGIT/CHA/BV-03-C | PASS | Discover the On-demand Ranging Data characteristic. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/CGGIT/CHA/BV-04-C | PASS | Discover the RAS Control Point characteristic. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/CGGIT/CHA/BV-05-C | PASS | Discover the Ranging Data Ready characteristic. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/CGGIT/CHA/BV-06-C | PASS | Discover the Ranging Data Overwritten characteristic. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BV-01-C | PASS | See the On-demand ranging data procedures below. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BI-01-C | PASS | The Requester sends Abort Operation after 5 seconds without the first |
+| | | On-demand segment. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BI-02-C | PASS | The Requester sends Abort Operation when a continuation segment is |
+| | | missing for more than one second. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BI-03-C | PASS | Ignore Complete Lost and RFU Control Point responses; receive normal |
+| | | data and ACK the subsequent Complete response. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BV-05-C | PASS | Configure On-demand notification transport; PTS validates Ranging Data |
+| | | Ready notification handling. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BV-06-C | PASS | On the PTS MMI, promptly read Ranging Data Ready after PTS suppresses |
+| | | its notification. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BV-07-C | PASS | Configure On-demand indication transport; PTS validates Ranging Data |
+| | | Overwritten indication reception. |
++----------------------------+----------+--------------------------------------------------------------------------+
+| RAP/REQ/ORD/BV-08-C | PASS | Configure On-demand notification transport; PTS validates Ranging Data |
+| | | Overwritten notification reception. |
++----------------------------+----------+--------------------------------------------------------------------------+
+
+Responder results
+=================
+
++----------------------------+----------+--------------------------------------------------------------------------+
+| Test name | Result | Notes |
++============================+==========+==========================================================================+
+| RAP/RES/RSPF/BV-01-C | PASS | Discoverable advertising includes the Ranging Service UUID (0x185B). |
++----------------------------+----------+--------------------------------------------------------------------------+
+
+
+Before ``RAP/RES/RSPF/BV-01-C``, advertise the Ranging Service UUID so PTS can
+discover the Responder::
+
+ menu advertise
+ uuids 0000185b-0000-1000-8000-00805f9b34fb
+ back
+ advertise peripheral
+
+Stop it after the case with ``advertise off``.
+
+On-demand ranging data procedures
+=================================
+
+Some RAS Requester cases are exercised against PTS's SIG pre-generated ranging
+data (``TSPX_test_method``) when the PTS controller does not support Channel
+Sounding. The procedures below use the ``ranging-data-mode`` command to select
+the transport PTS expects for each case.
+
+For ``RAP/REQ/ORD/BV-01-C``, set ``TSPX_test_method`` to ``pre-generated
+ranging data`` and select the ``2_procedures`` input.
+
+After connection, pairing, and encryption complete, run the following in the
+same bluetoothctl session::
+
+ menu cs
+ ranging-data-mode <pts_addr> ondemand indicate
+
+This configures indications for Ranging Data Ready, RAS Control Point, and
+Ranging Data Overwritten. Segmented On-demand Ranging Data remains configured
+for notifications so large pre-generated streams are not stalled by
+per-indication confirmation pacing.
+
+The Requester reads the Ranging Data Ready characteristic, waits for the PTS
+Ready indication, writes ``Get Ranging Data``, reassembles the data, and writes
+``ACK Ranging Data`` after the PTS Complete response.
+
+For ``RAP/REQ/ORD/BI-01-C``, use the same setup but configure PTS not to send
+the first On-demand segment after ``Get Ranging Data``. The Requester writes
+``Abort Operation`` after five seconds. For ``RAP/REQ/ORD/BI-02-C``, have PTS
+send only First Segment; the Requester's one-second continuation watchdog
+sends Abort within the PTS assertion window.
+
+For ``RAP/REQ/ORD/BI-03-C``, use the same setup and allow PTS to inject
+Complete Lost Ranging Data Segments and RFU Control Point responses during the
+transfer. No additional DUT action is required: the Requester ignores them,
+then ACKs the normal Complete Ranging Data response.
+
+For ``RAP/REQ/ORD/BV-05-C``, select notification transport after security is
+complete::
+
+ menu cs
+ ranging-data-mode <pts_addr> ondemand notify
+
+This configures the Ranging Data Ready path for the PTS notification round.
+
+For ``RAP/REQ/ORD/BV-07-C``, select indication transport to receive the
+Ranging Data Overwritten indication::
+
+ menu cs
+ ranging-data-mode <pts_addr> ondemand indicate
+
+PTS can log failed attempts to send an indication during this case even though
+its final verdict is PASS; record the final PTS verdict rather than treating
+that server-side diagnostic alone as a DUT failure.
+
+For ``RAP/REQ/ORD/BV-08-C``, select notification transport to receive the
+Ranging Data Overwritten notification::
+
+ menu cs
+ ranging-data-mode <pts_addr> ondemand notify
+
+For ``RAP/REQ/ORD/BV-06-C``, after connection and security complete, first use
+indication transport to enter the PTS On-demand flow, then switch to the
+notification transport used by the lost-Ready round::
+
+ menu cs
+ ranging-data-mode <pts_addr> ondemand indicate
+ ranging-data-mode <pts_addr> ondemand notify
+
+Wait for ``Ranging Data mode updated`` after each command. PTS does not advance
+to the lost-Ready MMI until both transitions have been completed. It then
+suppresses the Ranging Data Ready notification and presents an MMI asking for a
+read of the Ranging Data Ready characteristic. Complete the MMI promptly, before
+its short timeout, from the bluetoothctl GATT menu::
+
+ back
+ menu gatt
+ select-attribute 00002c18-0000-1000-8000-00805f9b34fb
+ read
+
+Selecting the characteristic by UUID avoids depending on the handles PTS
+happens to assign; ``select-attribute`` matches characteristics before
+descriptors, so this selects the value attribute and not its CCCD. Use
+``list-attributes`` if the remote database needs to be inspected first. Return
+to PTS and continue the MMI after the read request is sent.
diff --git a/doc/qualification/ras-pts.rst b/doc/qualification/ras-pts.rst
new file mode 100644
index 000000000..3b9bfd0d0
--- /dev/null
+++ b/doc/qualification/ras-pts.rst
@@ -0,0 +1,135 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2026 Qualcomm Technologies, Inc.
+
+================
+RAS test results
+================
+
+:PTS version: 8.14.0.4
+:BlueZ: 5.87 with Channel Sounding support
+
+RAP Requester and Responder test results are in ``rap-pts.rst``.
+
+Setup
+=====
+
+- Enable ``Experimental = true`` in ``/etc/bluetooth/main.conf``.
+- Use a ``NoInputNoOutput`` bluetoothctl agent and make it the default agent.
+- Before cases that establish a new encrypted link, delete the DUT bond and the
+ corresponding PTS LTK/bond. Removing only one side causes authentication
+ failure.
+- The DUT acts as the CS Reflector. Set the role from the bluetoothctl Channel
+ Sounding menu before the first case::
+
+ menu cs
+ role 0x02
+
+Tests
+=====
+
++------------------------------+----------+----------------------------------------------------------------+
+| Test name | Result | Notes |
++==============================+==========+================================================================+
+| IOPT/RAS/SR/GATTDB/BV-01-I | PASS | RAS database validation. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SGGIT/SER/BV-01-C | PASS | Primary, unique Ranging Service discovery. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SGGIT/CHA/BV-01-C | PASS | RAS Features characteristic declaration. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SGGIT/CHA/BV-02-C | PASS | Real-time Ranging Data characteristic declaration. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SGGIT/CHA/BV-03-C | PASS | On-demand Ranging Data characteristic declaration. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SGGIT/CHA/BV-04-C | PASS | RAS Control Point characteristic declaration. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SGGIT/CHA/BV-08-C | PASS | Ranging Data Ready characteristic declaration. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SGGIT/CHA/BV-12-C | PASS | Ranging Data Overwritten characteristic declaration. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-01-C | PASS | RAS Features read. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-02-C | PASS | Ranging Data Ready notification or indication. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-03-C | PASS | Ranging Data Ready read. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-04-C | PASS | Ranging Data Overwritten read. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-05-C | PASS | Ranging Data Ready, Indication transport. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-06-C | PASS | Ranging Data Ready, Notification transport. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-07-C | PASS | Ranging Data Ready, Indication and Read. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-08-C | PASS | Ranging Data Overwritten is indicated when the client enabled |
+| | | both transports. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCO/BV-09-C | PASS | Ranging Data Ready is indicated when the client enabled both |
+| | | transports. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RRD/BV-01-C | PASS | Real-time Ranging Data delivery. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RRD/BV-03-C | PASS | Real-time Ranging Data is notified when the client enabled |
+| | | both transports. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RRD/BV-04-C | PASS | Overwritten Real-time data restarts on the new Ranging |
+| | | Counter. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RRD/BV-05-C | PASS | Real-time subscription is dropped on disconnection. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCP/BV-01-C | PASS | Get Ranging Data, segmented transfer and ACK. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCP/BV-03-C | PASS | Abort Operation stops an in-progress transfer. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/RCP/BV-05-C | PASS | Control Point state is reset on disconnection. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SPE/BI-01-C | PASS | Op Code Not Supported, Retrieve Lost Ranging Data Segments. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SPE/BI-03-C | PASS | Op Code Not Supported, Set Filter. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SPE/BI-04-C | PASS | Op Code Not Supported, RFU. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SPE/BI-05-C | PASS | Invalid Parameter, Abort Operation. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SPE/BI-06-C | PASS | Get Ranging Data and ACK Ranging Data errors. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SPE/BI-07-C | PASS | Server Busy. |
++------------------------------+----------+----------------------------------------------------------------+
+| RAS/SR/SPE/BI-11-C | PASS | Real-time and On-demand CCCDs are mutually exclusive. |
++------------------------------+----------+----------------------------------------------------------------+
+
+Not applicable
+==============
+
++------------------------------+-----------------------------------------------+
+| Test name | Reason |
++==============================+===============================================+
+| RAS/SR/SPE/BI-02-C | Applies when Abort Operation is not supported |
+| | (NOT RAS 3/4 in RAS.TS Table 5.1). The IUT |
+| | supports it, so RAS/SR/RCP/BV-03-C and |
+| | RAS/SR/SPE/BI-05-C are run instead. |
++------------------------------+-----------------------------------------------+
+
+Pre-generated ranging data
+==========================
+
+With ``TSPX_test_method`` set to pre-generated CS data, the whole ranging data
+arrives in one go rather than one CS subevent at a time, so the On-demand
+notification path sends its segments back to back with no air time between
+them. ``RAS/SR/SPE/BI-05-C`` writes an invalid Abort Operation mid-transfer
+and needs the transfer to still be running when it does, so the per-segment
+delay has to leave the peer a window: it fails at 0 ms and passes at the 5 ms
+``RAS_SEGMENT_NFY_PACE_MS`` uses. Feeding the test data one subevent at a
+time rather than in one go does not change that, since the segments of a
+subevent still go out back to back. Raise the delay if PTS reports Complete
+Ranging Data where it expected Invalid Parameter.
+
+Transport selection
+===================
+
+When a client enables both notifications and indications on a characteristic,
+the transport the server must use differs per characteristic:
+
+- Ranging Data Ready and Ranging Data Overwritten are indicated (RAS 3.4.2 and
+ 3.5.2), covered by ``RAS/SR/RCO/BV-08-C`` and ``RAS/SR/RCO/BV-09-C``.
+- On-demand and Real-time Ranging Data are notified (RAS 3.2.2 and 3.2.3.1),
+ covered by ``RAS/SR/RCO/BV-05..07-C`` and ``RAS/SR/RRD/BV-03-C``.
--
2.43.0
prev parent reply other threads:[~2026-10-01 13:19 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-01 13:18 [PATCH 00/11] Ranging Profile and Ranging Service PTS fixes Cheng Jiang
2026-10-01 13:18 ` [PATCH 01/11] shared/gatt-client: Allow registering notify with explicit CCC value Cheng Jiang
2026-10-01 16:03 ` Ranging Profile and Ranging Service PTS fixes bluez.test.bot
2026-10-01 13:18 ` [PATCH 02/11] shared/gatt-db: Add gatt_db_attribute_indicate() Cheng Jiang
2026-10-01 15:48 ` Luiz Augusto von Dentz
2026-10-09 8:45 ` Cheng Jiang
2026-10-01 13:18 ` [PATCH 03/11] shared/rap: Honor CCCD transport for RAS on-demand ranging data Cheng Jiang
2026-10-01 13:18 ` [PATCH 04/11] shared/rap: Add RAS Control Point Abort Operation Cheng Jiang
2026-10-01 13:18 ` [PATCH 05/11] shared/rap: Shorten the requester Control Point response timeout Cheng Jiang
2026-10-01 13:18 ` [PATCH 06/11] shared/rap: Add real-time ranging data delivery on the responder Cheng Jiang
2026-10-01 13:18 ` [PATCH 07/11] shared/rap: Add requester ranging data subscription API Cheng Jiang
2026-10-01 13:18 ` [PATCH 08/11] profiles/ranging: Expose requester ranging data mode over D-Bus Cheng Jiang
2026-10-01 13:18 ` [PATCH 09/11] client: Add Channel Sounding ranging data mode control Cheng Jiang
2026-10-01 13:18 ` [PATCH 10/11] doc: Document " Cheng Jiang
2026-10-01 13:18 ` Cheng Jiang [this message]
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=20261001131900.707485-12-cheng.jiang@oss.qualcomm.com \
--to=cheng.jiang@oss.qualcomm.com \
--cc=jinwang.li@oss.qualcomm.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=shuai.zhang@oss.qualcomm.com \
--cc=wei.deng@oss.qualcomm.com \
--cc=xiuzhuo.shang@oss.qualcomm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.