qemu-cr16/qapi
Isaku Yamahata 40da501d89 i386/tdx: handle TDG.VP.VMCALL<GetQuote>
Add property "quote-generation-socket" to tdx-guest, which is a property
of type SocketAddress to specify Quote Generation Service(QGS).

On request of GetQuote, it connects to the QGS socket, read request
data from shared guest memory, send the request data to the QGS,
and store the response into shared guest memory, at last notify
TD guest by interrupt.

command line example:
  qemu-system-x86_64 \
    -object '{"qom-type":"tdx-guest","id":"tdx0","quote-generation-socket":{"type":"unix", "path":"/var/run/tdx-qgs/qgs.socket"}}' \
    -machine confidential-guest-support=tdx0

Note, above example uses the unix socket. It can be other types, like vsock,
which depends on the implementation of QGS.

To avoid no response from QGS server, setup a timer for the transaction.
If timeout, make it an error and interrupt guest. Define the threshold of
time to 30s at present, maybe change to other value if not appropriate.

Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Co-developed-by: Chenyi Qiang <chenyi.qiang@intel.com>
Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
Co-developed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Tested-by: Xiaoyao Li <xiaoyao.li@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-06-20 13:25:59 +02:00
..
acpi.json qapi: Tidy up run-together sentences in doc comments 2025-06-03 08:34:56 +02:00
audio.json qapi: Correct spelling of QEMU in doc comments 2025-06-03 08:34:56 +02:00
authz.json
block-core.json qapi: Improve documentation around job state @concluded 2025-06-03 08:34:57 +02:00
block-export.json qapi: Correct spelling of QEMU in doc comments 2025-06-03 08:34:56 +02:00
block.json qapi: Fix capitalization in doc comments 2025-06-03 08:34:57 +02:00
char.json qapi: Correct spelling of QEMU in doc comments 2025-06-03 08:34:56 +02:00
common.json hw/qdev-properties-system: Introduce EndianMode QAPI enum 2025-02-16 14:33:39 +01:00
compat.json
control.json qapi: use imperative style in documentation 2025-05-28 18:59:12 +02:00
crypto.json qapi: Tidy up whitespace in doc comments 2025-06-03 08:34:56 +02:00
cryptodev.json qapi: Fix capitalization in doc comments 2025-06-03 08:34:57 +02:00
cxl.json qapi: Fix capitalization in doc comments 2025-06-03 08:34:57 +02:00
dump.json qapi: Use proper markup instead of CAPS for emphasis in doc comments 2025-06-03 08:34:57 +02:00
ebpf.json
error.json
introspect.json qapi: Correct spelling of QEMU in doc comments 2025-06-03 08:34:56 +02:00
job.json qapi: Improve documentation around job state @concluded 2025-06-03 08:34:57 +02:00
machine-common.json
machine-s390x.json qapi: make s390x specific CPU commands unconditionally available 2025-05-28 18:56:08 +02:00
machine.json qapi: Fix capitalization in doc comments 2025-06-03 08:34:57 +02:00
meson.build qapi: make all generated files common 2025-05-28 18:56:08 +02:00
migration.json qapi: Use proper markup instead of CAPS for emphasis in doc comments 2025-06-03 08:34:57 +02:00
misc-arm.json qapi: expose query-gic-capability command unconditionally 2025-05-28 18:54:18 +02:00
misc-i386.json qapi: Fix capitalization in doc comments 2025-06-03 08:34:57 +02:00
misc.json qapi: Use proper markup instead of CAPS for emphasis in doc comments 2025-06-03 08:34:57 +02:00
net.json qapi: Avoid breaking lines within (since X.Y) 2025-06-03 08:34:56 +02:00
opts-visitor.c
pci.json
pragma.json
qapi-clone-visitor.c qapi: Move include/qapi/qmp/ to include/qobject/ 2025-02-10 15:33:16 +01:00
qapi-dealloc-visitor.c qapi: Move include/qapi/qmp/ to include/qobject/ 2025-02-10 15:33:16 +01:00
qapi-forward-visitor.c qapi: change 'unsigned special_features' to 'uint64_t features' 2025-02-10 15:45:04 +01:00
qapi-schema.json qapi: make s390x specific CPU commands unconditionally available 2025-05-28 18:56:08 +02:00
qapi-type-helpers.c
qapi-util.c qapi: change 'unsigned special_features' to 'uint64_t features' 2025-02-10 15:45:04 +01:00
qapi-visit-core.c qapi: change 'unsigned special_features' to 'uint64_t features' 2025-02-10 15:45:04 +01:00
qdev.json docs: Fix some typos (found by codespell and typos) 2025-04-13 13:45:04 +03:00
qmp-dispatch.c qapi: change 'unsigned special_features' to 'uint64_t features' 2025-02-10 15:45:04 +01:00
qmp-event.c qapi: Move include/qapi/qmp/ to include/qobject/ 2025-02-10 15:33:16 +01:00
qmp-registry.c qapi: change 'unsigned special_features' to 'uint64_t features' 2025-02-10 15:45:04 +01:00
qobject-input-visitor.c qapi: change 'unsigned special_features' to 'uint64_t features' 2025-02-10 15:45:04 +01:00
qobject-output-visitor.c qapi: change 'unsigned special_features' to 'uint64_t features' 2025-02-10 15:45:04 +01:00
qom.json i386/tdx: handle TDG.VP.VMCALL<GetQuote> 2025-06-20 13:25:59 +02:00
replay.json
rocker.json qapi/rocker: Tidy up query-rocker-of-dpa-flows example 2025-04-08 09:04:20 +02:00
run-state.json qapi: Fix capitalization in doc comments 2025-06-03 08:34:57 +02:00
sockets.json util/qemu-sockets: Introduce inet socket options controlling TCP keep-alive 2025-05-22 11:24:41 +01:00
stats.json
string-input-visitor.c qapi: Move include/qapi/qmp/ to include/qobject/ 2025-02-10 15:33:16 +01:00
string-output-visitor.c
tpm.json
trace-events
trace.h
trace.json
transaction.json qapi: Fix capitalization in doc comments 2025-06-03 08:34:57 +02:00
uefi.json qapi: Correct spelling of QEMU in doc comments 2025-06-03 08:34:56 +02:00
ui.json qapi: Correct spelling of QEMU in doc comments 2025-06-03 08:34:56 +02:00
vfio.json
virtio.json qapi: use imperative style in documentation 2025-05-28 18:59:12 +02:00
yank.json