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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox