From: Anton Iacobaeus <anton.iacobaeus@canarybit.eu>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH manager v3 2/2] Add support for TDX attestation
Date: Tue, 28 Oct 2025 13:54:27 +0100 [thread overview]
Message-ID: <20251028125459.287308-6-anton.iacobaeus@canarybit.eu> (raw)
In-Reply-To: <20251028125459.287308-1-anton.iacobaeus@canarybit.eu>
Add configuration options for the quote-generation-socket used to
communicate with the Quote Generation Service. This enables attestation
support for TDX using vsock or unix sockets.
More information can be found at:
https://www.qemu.org/docs/master/interop/qemu-storage-daemon-qmp-ref.html#object-QSD-qom.TdxGuestProperties
This only includes support for vsock and unix sockets. The SocketAddress
object in QEMU also supports inet and fd, which are not commonly used in
TDX.
Signed-off-by: Anton Iacobaeus <anton.iacobaeus@canarybit.eu>
---
www/manager6/qemu/TdxEdit.js | 103 ++++++++++++++++++++++++++++++++++-
1 file changed, 102 insertions(+), 1 deletion(-)
diff --git a/www/manager6/qemu/TdxEdit.js b/www/manager6/qemu/TdxEdit.js
index 3f43bf7a..95e086b5 100644
--- a/www/manager6/qemu/TdxEdit.js
+++ b/www/manager6/qemu/TdxEdit.js
@@ -7,9 +7,14 @@ Ext.define('PVE.qemu.TdxInputPanel', {
viewModel: {
data: {
type: '__default__',
+ attestation: 1,
+ socketType: 'vsock',
},
formulas: {
tdxEnabled: (get) => get('type') === 'tdx',
+ attestationEnabled: (get) => Number(get('attestation')) === 1,
+ vsockEnabled: (get) => get('socketType') === 'vsock',
+ unixSocketEnabled: (get) => get('socketType') === 'unix',
},
},
@@ -18,12 +23,17 @@ Ext.define('PVE.qemu.TdxInputPanel', {
values.delete = 'intel-tdx';
return values;
}
+ if (values.tight !== undefined && !values.tight) {
+ values['unix-tight'] = 0;
+ }
+ delete values.tight;
let ret = {};
ret['intel-tdx'] = PVE.Parser.printPropertyString(values, 'type');
return ret;
},
setValues: function (values) {
+ values.tight = PVE.Parser.parseBoolean(values['unix-tight'], 1);
this.callParent(arguments);
},
@@ -63,7 +73,98 @@ Ext.define('PVE.qemu.TdxInputPanel', {
},
],
- advancedItems: [],
+ advancedItems: [
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('Enable Attestation'),
+ labelWidth: 150,
+ name: 'attestation',
+ value: 1,
+ uncheckedValue: 0,
+ bind: {
+ value: '{attestation}',
+ hidden: '{!tdxEnabled}',
+ disabled: '{!tdxEnabled}',
+ },
+ },
+ {
+ xtype: 'proxmoxKVComboBox',
+ fieldLabel: gettext('Socket Type'),
+ labelWidth: 150,
+ name: 'socket-type',
+ value: 'vsock',
+ comboItems: [
+ ['vsock', 'VSOCK'],
+ ['unix', 'Unix Socket'],
+ ],
+ bind: {
+ value: '{socketType}',
+ hidden: '{!tdxEnabled}',
+ disabled: '{!attestationEnabled || !tdxEnabled}',
+ },
+ },
+ {
+ xtype: 'proxmoxintegerfield',
+ fieldLabel: gettext('CID'),
+ labelWidth: 150,
+ name: 'vsock-cid',
+ minValue: 2,
+ value: '2',
+ allowBlank: false,
+ bind: {
+ hidden: '{!vsockEnabled || !tdxEnabled}',
+ disabled: '{!vsockEnabled || !attestationEnabled || !tdxEnabled}',
+ },
+ },
+ {
+ xtype: 'proxmoxintegerfield',
+ fieldLabel: gettext('Port'),
+ labelWidth: 150,
+ name: 'vsock-port',
+ minValue: 0,
+ value: '4050',
+ allowBlank: false,
+ bind: {
+ hidden: '{!vsockEnabled || !tdxEnabled}',
+ disabled: '{!vsockEnabled || !attestationEnabled || !tdxEnabled}',
+ },
+ },
+ {
+ xtype: 'textfield',
+ fieldLabel: gettext('Socket Path'),
+ labelWidth: 150,
+ name: 'unix-path',
+ value: '/var/run/tdx-qgs/qgs.socket',
+ allowBlank: false,
+ bind: {
+ hidden: '{!unixSocketEnabled || !tdxEnabled}',
+ disabled: '{!unixSocketEnabled || !attestationEnabled || !tdxEnabled}',
+ },
+ },
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('Abstract'),
+ labelWidth: 150,
+ name: 'unix-abstract',
+ value: 0,
+ bind: {
+ hidden: '{!unixSocketEnabled || !tdxEnabled}',
+ disabled: '{!unixSocketEnabled || !attestationEnabled || !tdxEnabled}',
+ },
+ },
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('Tight'),
+ labelWidth: 150,
+ name: 'tight',
+ value: 1,
+ uncheckedValue: 0,
+ bind: {
+ hidden: '{!unixSocketEnabled || !tdxEnabled}',
+ disabled: '{!unixSocketEnabled || !attestationEnabled || !tdxEnabled}',
+ },
+ },
+ ],
});
Ext.define('PVE.qemu.TdxEdit', {
--
2.43.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2025-10-28 12:55 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-28 12:54 [pve-devel] [PATCH edk2-firmware/manager/qemu-server v3 0/9] Add support for Intel TDX Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 1/3] Change name of SEV-related OVMF files Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 2/3] Add firmware target for TDFV Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 3/3] Add SCSI in NCCFV for TD guest Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH manager v3 1/2] Add support for Intel TDX Anton Iacobaeus
2025-10-28 12:54 ` Anton Iacobaeus [this message]
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 1/4] Adapt AMD SEV code for compatibility with other platforms Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 2/4] Add check for TDX support Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 3/4] Add support for Intel TDX Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 4/4] Add support for TDX quote-generation-socket object Anton Iacobaeus
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=20251028125459.287308-6-anton.iacobaeus@canarybit.eu \
--to=anton.iacobaeus@canarybit.eu \
--cc=pve-devel@lists.proxmox.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