From: "Frédéric Danis" <frederic.danis@collabora.com>
To: linux-bluetooth@vger.kernel.org
Subject: [PATCH BlueZ 2/2] doc/qualification: add CSIP PTS tests documentation
Date: Fri, 25 Sep 2026 14:41:55 +0200 [thread overview]
Message-ID: <20260925124155.3344025-2-frederic.danis@collabora.com> (raw)
In-Reply-To: <20260925124155.3344025-1-frederic.danis@collabora.com>
From: raghavendra <raghavendra.rao@collabora.com>
---
doc/qualification/csip-pts.rst | 483 +++++++++++++++++++++++++++++++++
1 file changed, 483 insertions(+)
create mode 100644 doc/qualification/csip-pts.rst
diff --git a/doc/qualification/csip-pts.rst b/doc/qualification/csip-pts.rst
new file mode 100644
index 000000000..c588f6ca3
--- /dev/null
+++ b/doc/qualification/csip-pts.rst
@@ -0,0 +1,483 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2026 Collabora Ltd.
+
+=================
+CSIP test results
+=================
+
+:PTS version: 8.12.0 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+========+=======+=========================================================================+
+| CSIP/CL/CGGIT/CHA/BV-01-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS device: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/CGGIT/CHA/BV-02-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS device: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to read Characteristic 'Coordinated Set Size': |
+| | | | | |
+| | | | | - [GATT client]# select-attribute <handle> |
+| | | | | - [GATT client]# read |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/CGGIT/CHA/BV-03-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS device: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to read Characteristic 'Set Member Lock': |
+| | | | | |
+| | | | | - [GATT client]# select-attribute <handle> |
+| | | | | - [GATT client]# read |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/CGGIT/CHA/BV-04-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS device: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to read Characteristic 'Set Member Rank': |
+| | | | | |
+| | | | | - select-attribute <handle> |
+| | | | | - read |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/CGGIT/SER/BV-01-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS device: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SP/BV-01-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS device: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | Click YES on "Please verify that SIRK is not encrypted. Click Yes, |
+| | | | | if it is Plain Text otherwise click No." |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SP/BV-03-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| CSIP/CL/SP/BV-03-C_LT2 | | | | - Force PTS to perform pairing: |
+| | | | | |
+| CSIP/CL/SP/BV-03-C_LT3 | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Force BlueZ to allow read-write permissions in |
+| | | | | '/path/to/bluetooth/main.conf':: |
+| | | | | |
+| | | | | ExportClaimedServices = read-write |
+| | | | | |
+| | | | | - Remove PTS devices: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr1> |
+| | | | | - bluetoothctl remove <pts_addr2> |
+| | | | | - bluetoothctl remove <pts_addr3> |
+| | | | | |
+| | | | | - Three PTS applications are running and connected 3 dongles |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr1> |
+| | | | | - btgatt-client -d <pts_addr2> |
+| | | | | - btgatt-client -d <pts_addr3> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to write Characteristic 'Set Member Lock' to handle 0x0165: |
+| | | | | |
+| | | | | - select-attribute <handle> |
+| | | | | - write <value that PTS expects> 0x00 |
+| | | | | |
+| | | | | Click YES on "Please verify IUT write to the Lock characteristic on PTS |
+| | | | | in ascending order of the Rank characteristic value. |
+| | | | | (LT1, LT2, LT3)." |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Set 'ExportClaimedServices' to default in |
+| | | | | '/path/to/bluetooth/main.conf' |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SP/BV-04-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| CSIP/CL/SP/BV-04-C_LT2 | | | | - Force PTS to perform pairing: |
+| | | | | |
+| CSIP/CL/SP/BV-04-C_LT3 | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Force BlueZ to allow read-write permissions in |
+| | | | | '/path/to/bluetooth/main.conf':: |
+| | | | | |
+| | | | | ExportClaimedServices = read-write |
+| | | | | |
+| | | | | - Remove PTS devices: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr1> |
+| | | | | - bluetoothctl remove <pts_addr2> |
+| | | | | - bluetoothctl remove <pts_addr3> |
+| | | | | |
+| | | | | - Three PTS applications are running and connected 3 dongles |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr1> |
+| | | | | - btgatt-client -d <pts_addr2> |
+| | | | | - btgatt-client -d <pts_addr3> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to write Characteristic 'Set Member Lock' to handle 0x0165: |
+| | | | | |
+| | | | | - select-attribute <handle> |
+| | | | | - write <value that PTS expects> 0x00 |
+| | | | | |
+| | | | | Click YES on "Please verify IUT write to the Lock characteristic on PTS |
+| | | | | in descending order of the Rank characteristic value. |
+| | | | | (LT1, LT2, LT3)." |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Set 'ExportClaimedServices' to default in |
+| | | | | '/path/to/bluetooth/main.conf' |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SP/BV-06-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS device: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | Click YES on "Please verify that decrypted SIRK is <SIRK_VALUE>. |
+| | | | | Click Yes, if it is Encrypted otherwise click No." |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SP/BV-07-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| CSIP/CL/SP/BV-07-C_LT2 | | | | - Force PTS to perform pairing: |
+| | | | | |
+| CSIP/CL/SP/BV-07-C_LT3 | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS devices: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr1> |
+| | | | | - bluetoothctl remove <pts_addr2> |
+| | | | | - bluetoothctl remove <pts_addr3> |
+| | | | | |
+| | | | | - Three PTS applications are running and connected 3 dongles |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr1> |
+| | | | | - btgatt-client -d <pts_addr2> |
+| | | | | - btgatt-client -d <pts_addr3> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | Click OK on "Please create different workspaces and run this test case |
+| | | | | with 3 instances of PTS." |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand disconnect the PTSs. |
+| | | | | |
+| | | | | Click YES on "Please verify the number of discovered Set Members is |
+| | | | | equal to 3." |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SPE/BI-01-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| CSIP/CL/SPE/BI-01-C_LT2 | | | | - Force PTS to perform pairing: |
+| | | | | |
+| CSIP/CL/SPE/BI-01-C_LT3 | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Force BlueZ to allow read-write permissions in |
+| | | | | '/path/to/bluetooth/main.conf':: |
+| | | | | |
+| | | | | ExportClaimedServices = read-write |
+| | | | | |
+| | | | | - Remove PTS devices: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr1> |
+| | | | | - bluetoothctl remove <pts_addr2> |
+| | | | | - bluetoothctl remove <pts_addr3> |
+| | | | | |
+| | | | | - Three PTS applications are running and connected 3 dongles |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr1> |
+| | | | | - btgatt-client -d <pts_addr2> |
+| | | | | - btgatt-client -d <pts_addr3> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to write Characteristic 'Set Member Lock' to handle 0x0165: |
+| | | | | |
+| | | | | - select-attribute <handle> |
+| | | | | - write <value that PTS expects> 0x00 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Set 'ExportClaimedServices' to default in |
+| | | | | '/path/to/bluetooth/main.conf' |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SPE/BI-02-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Force BlueZ to allow read-write permissions in |
+| | | | | '/path/to/bluetooth/main.conf':: |
+| | | | | |
+| | | | | ExportClaimedServices = read-write |
+| | | | | |
+| | | | | - Remove PTS devices: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to write Characteristic 'Set Member Lock' to handle 0x0165: |
+| | | | | |
+| | | | | - select-attribute <handle> |
+| | | | | - write <value that PTS expects> 0x00 |
+| | | | | |
+| | | | | On demand to read any data: |
+| | | | | |
+| | | | | - read |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Set 'ExportClaimedServices' to default in |
+| | | | | '/path/to/bluetooth/main.conf' |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SPE/BI-03-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Force BlueZ to allow read-write permissions in |
+| | | | | '/path/to/bluetooth/main.conf':: |
+| | | | | |
+| | | | | ExportClaimedServices = read-write |
+| | | | | |
+| | | | | - Remove PTS devices: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | On demand to write Characteristic 'Set Member Lock' to handle 0x0165: |
+| | | | | |
+| | | | | - select-attribute <handle> |
+| | | | | - write <value that PTS expects> 0x00 |
+| | | | | |
+| | | | | On demand to read any data: |
+| | | | | |
+| | | | | - read |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Set 'ExportClaimedServices' to default in |
+| | | | | '/path/to/bluetooth/main.conf' |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
+| CSIP/CL/SPE/BI-04-C | PASS | 6.14 | 5.85 | Pre-condition: |
+| | | | | |
+| | | | | - Force PTS to perform pairing: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'TRUE' in IXIT Tool window of PTS |
+| | | | | |
+| | | | | - Remove PTS devices: |
+| | | | | |
+| | | | | - bluetoothctl remove <pts_addr> |
+| | | | | |
+| | | | | - btgatt-client -d <pts_addr> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Run 'bluetoothctl'. |
+| | | | | |
+| | | | | On demand accept the pairing request. |
+| | | | | |
+| | | | | Click YES on "Please confirm that IUT stopped the |
+| | | | | Coordinated Set Discovery procedure. Click Yes, if stopped. |
+| | | | | otherwise click No." |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Reset PTS to previous configuration: |
+| | | | | |
+| | | | | - Set 'TSPX_delete_ltk' to 'FALSE' in IXIT Tool window of PTS |
+| | | | | |
++------------------------------+----------+--------+-------+-------------------------------------------------------------------------+
--
2.43.0
next prev parent reply other threads:[~2026-09-25 12:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-25 12:41 [PATCH BlueZ 1/2] doc/qualification: Add CSIP PICS file Frédéric Danis
2026-09-25 12:41 ` Frédéric Danis [this message]
2026-09-25 15:54 ` [BlueZ,1/2] " bluez.test.bot
2026-09-28 17:50 ` [PATCH BlueZ 1/2] " 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=20260925124155.3344025-2-frederic.danis@collabora.com \
--to=frederic.danis@collabora.com \
--cc=linux-bluetooth@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 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.