From: Dan Williams <djbw@kernel.org>
To: linux-coco@lists.linux.dev
Cc: linux-pci@vger.kernel.org, driver-core@lists.linux.dev,
ankita@nvidia.com, Alistair Francis <alistair.francis@wdc.com>,
Lukas Wunner <lukas@wunner.de>, Jakub Kicinski <kuba@kernel.org>,
Donald Hunter <donald.hunter@gmail.com>
Subject: [PATCH 01/15] netlink: specs: Introduce multi-message blobs for SPDM
Date: Sun, 5 Jul 2026 15:08:05 -0700 [thread overview]
Message-ID: <20260705220819.2472765-2-djbw@kernel.org> (raw)
In-Reply-To: <20260705220819.2472765-1-djbw@kernel.org>
The SPDM, Security Protocol and Data Model, underpins PCI device security
and other use cases. It defines objects that allow for verification of
device identity and configuration. These objects can be large in size 16MB.
Netlink is otherwise suitable to define the operations, with optional
parameters, and notifications for working with these objects. For example,
operations like "regenerate evidence with nonce", "mark evidence
validated", and "broadcast evidence / security state change events".
A netlink 'blob' is introduced as a way to teach YNL that one instance of a
attribute may span multiple messages. It enables netlink to convey all the
data needed for verification and manipulation of SPDM transported evidence.
The schema change to allows YNL to infer that an attribute may span
multiple messages and interrogate its length to preallocate an
appropriately sized receive buffer.
The design direction to extend the netlink schema for a "multi-message
object receive" case was the result of this discussion [1].
Cc: Alistair Francis <alistair.francis@wdc.com>
Cc: Lukas Wunner <lukas@wunner.de>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Donald Hunter <donald.hunter@gmail.com>
Link: http://lore.kernel.org/20260318170014.6650d2bf@kernel.org [1]
Signed-off-by: Dan Williams <djbw@kernel.org>
---
Documentation/netlink/genetlink-legacy.yaml | 6 ++++++
Documentation/netlink/genetlink.yaml | 7 +++++++
Documentation/netlink/netlink-raw.yaml | 7 +++++++
3 files changed, 20 insertions(+)
diff --git a/Documentation/netlink/genetlink-legacy.yaml b/Documentation/netlink/genetlink-legacy.yaml
index f9c44747729a..fff9d7b76dbc 100644
--- a/Documentation/netlink/genetlink-legacy.yaml
+++ b/Documentation/netlink/genetlink-legacy.yaml
@@ -239,6 +239,12 @@ properties:
enum: [ little-endian, big-endian ]
multi-attr:
type: boolean
+ bloblen:
+ description: |
+ Marks this attribute as a variable-length blob that may be split across
+ multiple messages. The value names a separate scalar attribute that carries
+ the total blob length, and which is sent ahead of the blob data so a consumer
+ can preallocate the full payload.
nested-attributes:
description: Name of the space (sub-space) used inside the attribute.
type: string
diff --git a/Documentation/netlink/genetlink.yaml b/Documentation/netlink/genetlink.yaml
index d3f3f3399ddf..4caee7d55303 100644
--- a/Documentation/netlink/genetlink.yaml
+++ b/Documentation/netlink/genetlink.yaml
@@ -153,6 +153,13 @@ properties:
enum: [ little-endian, big-endian ]
multi-attr:
type: boolean
+ bloblen:
+ description: |
+ Marks this attribute as a variable-length blob that may be split across
+ multiple messages. The value names a separate scalar attribute that carries
+ the total blob length, and which is sent ahead of the blob data so a consumer
+ can preallocate the full payload.
+ type: string
nested-attributes:
description: Name of the space (sub-space) used inside the attribute.
type: string
diff --git a/Documentation/netlink/netlink-raw.yaml b/Documentation/netlink/netlink-raw.yaml
index 4c436b59a34b..dd85f0c56631 100644
--- a/Documentation/netlink/netlink-raw.yaml
+++ b/Documentation/netlink/netlink-raw.yaml
@@ -263,6 +263,13 @@ properties:
enum: [ little-endian, big-endian ]
multi-attr:
type: boolean
+ bloblen:
+ description: |
+ Marks this attribute as a variable-length blob that may be split across
+ multiple messages. The value names a separate scalar attribute that carries
+ the total blob length, and which is sent ahead of the blob data so a consumer
+ can preallocate the full payload.
+ type: string
nested-attributes:
description: Name of the space (sub-space) used inside the attribute.
type: string
--
2.54.0
next prev parent reply other threads:[~2026-07-05 22:08 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-05 22:08 [PATCH 00/15] Device Evidence and Trust for PCI Security Protocol (TDISP) Dan Williams
2026-07-05 22:08 ` Dan Williams [this message]
2026-07-05 22:08 ` [PATCH 02/15] tools: ynl: Teach pyynl to handle blobs Dan Williams
2026-07-05 22:08 ` [PATCH 03/15] tools: ynl: Teach ynl_gen_c to validate and dump 'blob' attributes Dan Williams
2026-07-05 22:08 ` [PATCH 04/15] device core: Introduce "device evidence" over netlink Dan Williams
2026-07-05 22:08 ` [PATCH 05/15] device core: Add "device evidence" 'validate' command Dan Williams
2026-07-05 22:08 ` [PATCH 06/15] PCI/TSM: Add device evidence support Dan Williams
2026-07-05 22:08 ` [PATCH 07/15] modules: Document the global async_probe parameter Dan Williams
2026-07-05 22:08 ` [PATCH 08/15] device core: Initial device trust infrastructure Dan Williams
2026-07-06 13:45 ` Jason Gunthorpe
2026-07-05 22:08 ` [PATCH 09/15] PCI, device core: Move "untrusted" concept to DEVICE_TRUST_ADVERSARY Dan Williams
2026-07-06 13:49 ` Jason Gunthorpe
2026-07-05 22:08 ` [PATCH 10/15] PCI/TSM: Add device interface security LOCKED support Dan Williams
2026-07-05 22:08 ` [PATCH 11/15] PCI/TSM: Add device interface security RUN support Dan Williams
2026-07-05 22:08 ` [PATCH 12/15] PCI/TSM: Add device interface security DMA enable/disable Dan Williams
2026-07-05 22:08 ` [PATCH 13/15] PCI, device core: Add private memory access for DEVICE_TRUST_TCB Dan Williams
2026-07-06 12:42 ` Aneesh Kumar K.V
2026-07-05 22:08 ` [PATCH 14/15] PCI/TSM: Create MMIO descriptors via TDISP Report Dan Williams
2026-07-05 22:08 ` [PATCH 15/15] PCI/TSM: Add relative MMIO offset support? Dan Williams
2026-07-06 12:51 ` [PATCH 00/15] Device Evidence and Trust for PCI Security Protocol (TDISP) Jason Gunthorpe
2026-07-06 20:55 ` Dan Williams (nvidia)
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=20260705220819.2472765-2-djbw@kernel.org \
--to=djbw@kernel.org \
--cc=alistair.francis@wdc.com \
--cc=ankita@nvidia.com \
--cc=donald.hunter@gmail.com \
--cc=driver-core@lists.linux.dev \
--cc=kuba@kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
/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