[RFC PATCH v1 0/5] Add virDomainGetSevAttestationReport API
Tyler Fanelli
tfanelli at redhat.com
Mon Apr 4 14:58:48 UTC 2022
Just a quick ping so this patchset doesn't get lost in the list -- may I
receive a review on this?
On 3/23/22 3:36 PM, Tyler Fanelli wrote:
> This an RFC discussing a new API, virDomainGetSevAttestationReport (along with a
> virsh command "domgetsevreport"), with initial QEMU support via the
> "query-sev-attestation-report" QAPI mechanism. "query-sev-attestation-report" is
> supplied a base64-encoded 16 byte "mnonce" string as input, with a purpose of
> being embedded into the attestation report to provide protection.
>
> My main point of concern is the design/communication of the virTypedParameterPtr
> exchanged between the client and libvirtd and how they interact together, as I
> have seen no other API follow the method I used. Namely, the same
> virTypedParameterPtr is used for both input _AND_ output. The same
> virTypedParameterPtr containing the original mnonce string inputted to the API is
> also used to contain the attestation report upon being returned from the API.
>
> This contrasts with much of the APIs I've noticed, which use a
> virTypedParameterPtr for either input or output, but not both.
>
> This patch is not final, as I still would like some human-readable outputting
> and storage of the attestation report.
>
> Looking for thoughts on the design of this API, as well as suggested
> improvements.
>
>
> Tyler Fanelli (5):
> libvirt: Introduce virDomainGetSevAttestationReport public API
> remote: add RPC support for the virDomainGetSevAttestationReport API
> qemu_capabilities: Introduce QEMU_CAPS_SEV_GET_ATTESTATION_REPORT
> qemu: Implement the virDomainGetSevAttestationReport API
> tools: add domgetsevreport virsh command
>
> docs/manpages/virsh.rst | 18 ++++
> include/libvirt/libvirt-domain.h | 22 +++++
> src/driver-hypervisor.h | 7 ++
> src/libvirt-domain.c | 63 ++++++++++++++
> src/libvirt_public.syms | 4 +
> src/qemu/qemu_capabilities.c | 2 +
> src/qemu/qemu_capabilities.h | 1 +
> src/qemu/qemu_driver.c | 86 +++++++++++++++++++
> src/qemu/qemu_monitor.c | 11 +++
> src/qemu/qemu_monitor.h | 5 ++
> src/qemu/qemu_monitor_json.c | 40 +++++++++
> src/qemu/qemu_monitor_json.h | 5 ++
> src/remote/remote_daemon_dispatch.c | 44 ++++++++++
> src/remote/remote_driver.c | 55 ++++++++++++
> src/remote/remote_protocol.x | 21 ++++-
> src/remote_protocol-structs | 12 +++
> .../caps_6.1.0.x86_64.xml | 1 +
> .../caps_6.2.0.x86_64.xml | 1 +
> .../caps_7.0.0.x86_64.xml | 1 +
> tools/virsh-domain.c | 68 +++++++++++++++
> 20 files changed, 466 insertions(+), 1 deletion(-)
>
--
Tyler Fanelli (tfanelli)
More information about the libvir-list
mailing list