From: Alistair Francis <Alistair.Francis@wdc.com>
To: "lukas@wunner.de" <lukas@wunner.de>,
"djbw@kernel.org" <djbw@kernel.org>,
"alistair23@gmail.com" <alistair23@gmail.com>
Cc: "a.hindborg@kernel.org" <a.hindborg@kernel.org>,
"ojeda@kernel.org" <ojeda@kernel.org>,
"boqun.feng@gmail.com" <boqun.feng@gmail.com>,
"linux-cxl@vger.kernel.org" <linux-cxl@vger.kernel.org>,
"tmgross@umich.edu" <tmgross@umich.edu>,
"alex.gaynor@gmail.com" <alex.gaynor@gmail.com>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Jonathan.Cameron@huawei.com" <Jonathan.Cameron@huawei.com>,
"benno.lossin@proton.me" <benno.lossin@proton.me>,
"rust-for-linux@vger.kernel.org" <rust-for-linux@vger.kernel.org>,
Wilfred Mallawa <wilfred.mallawa@wdc.com>,
"bjorn3_gh@protonmail.com" <bjorn3_gh@protonmail.com>,
"aliceryhl@google.com" <aliceryhl@google.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"gary@garyguo.net" <gary@garyguo.net>
Subject: Re: [RFC v3 00/27] lib: Rust implementation of SPDM
Date: Tue, 5 May 2026 08:56:57 +0000 [thread overview]
Message-ID: <243936b6f8bc29324de0b40bd62d014aa1ad9994.camel@wdc.com> (raw)
In-Reply-To: <69f554aa525ae_44a831001f@djbw-dev.notmuch>
On Fri, 2026-05-01 at 18:34 -0700, Dan Williams (nvidia) wrote:
> Alistair Francis wrote:
> > On Fri, Apr 17, 2026 at 2:34 PM Lukas Wunner <lukas@wunner.de>
> > wrote:
> > >
> > > On Thu, Apr 16, 2026 at 07:35:44PM -0700, Dan Williams wrote:
> > > > Later in the thread I proposed an alternative that instead of
> > > > supporting
> > > > 2 flavors of uapi through "authenticated", instead implement
> > > > CMA as
> > > > another TSM driver [1].
> > > >
> > > > [1]:
> > > > http://lore.kernel.org/69976d7d39c60_2f4a1009@dwillia2-mobl4.notmuch
> > >
> > > Please keep in mind though that CMA is just the PCIe adaption of
> > > SPDM,
> > > SPDM is not only needed for PCIe but also SCSI, ATA and possibly
> > > others
> > > and so implementing CMA as a TSM driver must not preclude use of
> > > SPDM
> > > in other subsystems.
> >
> > That should be fine as the current SPDM implementation is
> > self-contained, but thanks for raising that.
> >
> > Just to make sure I'm not going in the wrong direction, the idea
> > would
> > be to build on
> >
> > https://lore.kernel.org/all/20260303000207.1836586-9-dan.j.williams@intel.com/
> >
> > and add something like this?
> >
> > ```
> > static const struct pci_tsm_ops pci_cma_tsm_ops = {
> > .link_ops = {
> > .probe = pci_cma_tsm_probe,
> > .remove = pci_cma_tsm_remove,
> > .connect = pci_cma_tsm_connect,
> > .disconnect = pci_cma_tsm_disconnect,
> > },
> > .refresh_evidence = pci_cma_tsm_refresh,
> > };
> > ```
> >
> > The docs for `struct pci_tsm_ops` seem pretty TSM specific, so I
> > just
> > wanted to double check before going ahead.
> >
> > That means all of the netlink stuff in this series can be dropped
> > and
> > we just use the TSM netlink (which might need some adjustments
> > then,
> > I'll have to double check)
>
> Right, the above looks what I was expecting.
Great!
>
> As for netlink, Lukas is right about non CMA use cases. The netlink
> interface will either need to move to be a generic "device evidence"
> facility, not scoped to PCI/TSM, or itself become a library that
> different producers of SPDM material can use to export it to
> userspace.
Yep, I think we have two options
1. This series approach, where SPDM measurements use their own netlink
interface and each transport mechanism looks exactly the same to
userspace. Which means we don't leverage TSM.
The obvious advantage is that each transport is more or less invisible
to userspace, but we don't tightly integrate with the transport
protocol.
2. The PCI TSM approach, where each SPDM transport mechanism has it's
own transport dependent way to provide the information to userspace.
PCI uses TSM, ATA/SCSI use their own thing ect.
The advantage here is we can more tightly integrate with the existing
infrastructure.
I'm open to either approach
Alistair
next prev parent reply other threads:[~2026-05-05 8:57 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-11 3:29 [RFC v3 00/27] lib: Rust implementation of SPDM alistair23
2026-02-11 3:29 ` [RFC v3 01/27] rust: add untrusted data abstraction alistair23
2026-02-11 3:29 ` [RFC v3 02/27] X.509: Make certificate parser public alistair23
2026-02-11 3:29 ` [RFC v3 03/27] X.509: Parse Subject Alternative Name in certificates alistair23
2026-02-11 3:29 ` [RFC v3 04/27] X.509: Move certificate length retrieval into new helper alistair23
2026-02-11 3:29 ` [RFC v3 05/27] certs: Create blacklist keyring earlier alistair23
2026-02-11 3:29 ` [RFC v3 06/27] rust: add bindings for hash.h alistair23
2026-02-19 14:48 ` Gary Guo
2026-03-02 16:18 ` Jonathan Cameron
2026-02-11 3:29 ` [RFC v3 07/27] rust: error: impl From<FromBytesWithNulError> for Kernel Error alistair23
2026-02-19 14:49 ` Gary Guo
2026-03-13 2:20 ` Alistair Francis
2026-03-13 10:35 ` Alice Ryhl
2026-02-11 3:29 ` [RFC v3 08/27] lib: rspdm: Initial commit of Rust SPDM alistair23
2026-03-02 17:09 ` Jonathan Cameron
2026-03-13 3:44 ` Alistair Francis
2026-02-11 3:29 ` [RFC v3 09/27] PCI/CMA: Authenticate devices on enumeration alistair23
2026-02-16 4:25 ` Aksh Garg
2026-02-11 3:29 ` [RFC v3 10/27] PCI/CMA: Validate Subject Alternative Name in certificates alistair23
2026-02-11 3:29 ` [RFC v3 11/27] PCI/CMA: Reauthenticate devices on reset and resume alistair23
2026-02-11 3:29 ` [RFC v3 12/27] lib: rspdm: Support SPDM get_version alistair23
2026-02-11 4:00 ` Wilfred Mallawa
2026-03-03 11:36 ` Jonathan Cameron
2026-03-13 5:35 ` Alistair Francis
2026-03-13 5:53 ` Miguel Ojeda
2026-03-13 5:55 ` Miguel Ojeda
2026-03-16 17:16 ` Jonathan Cameron
2026-02-11 3:29 ` [RFC v3 13/27] lib: rspdm: Support SPDM get_capabilities alistair23
2026-02-11 4:08 ` Wilfred Mallawa
2026-03-03 12:09 ` Jonathan Cameron
2026-03-03 18:07 ` Miguel Ojeda
2026-03-20 4:32 ` Alistair Francis
2026-02-11 3:29 ` [RFC v3 14/27] lib: rspdm: Support SPDM negotiate_algorithms alistair23
2026-03-03 13:46 ` Jonathan Cameron
2026-02-11 3:29 ` [RFC v3 15/27] lib: rspdm: Support SPDM get_digests alistair23
2026-03-03 14:29 ` Jonathan Cameron
2026-02-11 3:29 ` [RFC v3 16/27] lib: rspdm: Support SPDM get_certificate alistair23
2026-03-03 14:51 ` Jonathan Cameron
2026-03-31 2:37 ` Alistair Francis
2026-03-31 13:19 ` Gary Guo
2026-02-11 3:29 ` [RFC v3 17/27] crypto: asymmetric_keys - Load certificate parsing early in boot alistair23
2026-02-11 3:29 ` [RFC v3 18/27] KEYS: Load keyring and certificates " alistair23
2026-02-11 3:29 ` [RFC v3 19/27] PCI/CMA: Support built in X.509 certificates alistair23
2026-02-11 3:29 ` [RFC v3 20/27] crypto: sha: Load early in boot alistair23
2026-03-03 14:52 ` Jonathan Cameron
2026-02-11 3:29 ` [RFC v3 21/27] crypto: ecdsa: " alistair23
2026-03-03 14:54 ` Jonathan Cameron
2026-02-11 3:29 ` [RFC v3 22/27] lib: rspdm: Support SPDM certificate validation alistair23
2026-03-03 15:00 ` Jonathan Cameron
2026-03-31 3:29 ` Alistair Francis
2026-03-31 10:11 ` Miguel Ojeda
2026-04-01 1:48 ` Alistair Francis
2026-04-01 10:37 ` Miguel Ojeda
2026-02-11 3:29 ` [RFC v3 23/27] rust: allow extracting the buffer from a CString alistair23
2026-02-19 14:50 ` Gary Guo
2026-02-11 3:29 ` [RFC v3 24/27] lib: rspdm: Support SPDM challenge alistair23
2026-03-03 16:54 ` Jonathan Cameron
2026-02-11 3:29 ` [RFC v3 25/27] PCI/CMA: Expose in sysfs whether devices are authenticated alistair23
2026-02-11 3:29 ` [RFC v3 26/27] rust: add bindings for hash_info alistair23
2026-02-11 3:29 ` [RFC v3 27/27] rspdm: Multicast received signatures via netlink alistair23
2026-02-19 10:19 ` Lukas Wunner
2026-02-12 5:56 ` [RFC v3 00/27] lib: Rust implementation of SPDM dan.j.williams
2026-02-18 2:12 ` Alistair Francis
2026-04-09 3:39 ` Alistair Francis
2026-04-13 5:42 ` Alistair Francis
2026-04-17 2:35 ` Dan Williams
2026-04-17 4:34 ` Lukas Wunner
2026-04-17 5:20 ` Alistair Francis
2026-05-02 1:34 ` Dan Williams (nvidia)
2026-05-05 8:56 ` Alistair Francis [this message]
2026-02-17 23:56 ` Jason Gunthorpe
2026-02-18 2:17 ` Alistair Francis
2026-02-18 23:40 ` dan.j.williams
2026-02-19 0:56 ` Jason Gunthorpe
2026-02-19 5:05 ` dan.j.williams
2026-02-19 12:41 ` Jason Gunthorpe
2026-02-19 14:15 ` Lukas Wunner
2026-02-19 14:31 ` Jason Gunthorpe
2026-02-19 15:07 ` Lukas Wunner
2026-02-19 17:39 ` Jason Gunthorpe
2026-02-19 20:07 ` dan.j.williams
2026-02-20 8:30 ` Lukas Wunner
2026-02-20 14:10 ` Jason Gunthorpe
2026-02-21 18:46 ` Lukas Wunner
2026-02-21 23:29 ` dan.j.williams
2026-02-23 17:15 ` Jonathan Cameron
2026-02-23 19:11 ` dan.j.williams
2026-02-24 14:33 ` Jason Gunthorpe
2026-03-05 4:17 ` dan.j.williams
2026-03-05 12:48 ` Jason Gunthorpe
2026-03-05 19:49 ` dan.j.williams
2026-03-09 11:39 ` Jonathan Cameron
2026-03-09 12:31 ` Jason Gunthorpe
2026-03-09 15:33 ` Jonathan Cameron
2026-03-09 15:59 ` Jason Gunthorpe
2026-03-09 18:00 ` Jonathan Cameron
2026-03-09 20:40 ` Jason Gunthorpe
2026-03-09 23:11 ` DanX Williams
2026-02-24 14:16 ` Jason Gunthorpe
2026-02-24 15:54 ` Lukas Wunner
2026-02-25 14:50 ` Jason Gunthorpe
2026-02-19 14:40 ` Greg KH
2026-02-20 7:46 ` Lukas Wunner
2026-02-20 9:14 ` Greg KH
2026-02-20 11:45 ` Lukas Wunner
2026-02-20 11:57 ` Greg KH
2026-02-19 9:34 ` Lukas Wunner
2026-02-19 12:43 ` Jason Gunthorpe
2026-02-19 18:48 ` dan.j.williams
2026-02-19 9:13 ` Lukas Wunner
2026-02-19 18:42 ` dan.j.williams
2026-02-19 11:24 ` Jonathan Cameron
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=243936b6f8bc29324de0b40bd62d014aa1ad9994.camel@wdc.com \
--to=alistair.francis@wdc.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=a.hindborg@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=alistair23@gmail.com \
--cc=benno.lossin@proton.me \
--cc=bhelgaas@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=djbw@kernel.org \
--cc=gary@garyguo.net \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
--cc=wilfred.mallawa@wdc.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