Xiaoyao Li <xiaoyao.li@xxxxxxxxx> writes: > On 2/29/2024 4:40 PM, Markus Armbruster wrote: >> Xiaoyao Li <xiaoyao.li@xxxxxxxxx> writes: >> >>> From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> >>> >>> 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": "vsock", "cid":"1","port":"1234"}}' \ >>> -machine confidential-guest-support=tdx0 >>> >>> Note, above example uses vsock type socket because the QGS we used >>> implements the vsock socket. It can be other types, like UNIX socket, >>> 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@xxxxxxxxx> >>> Codeveloped-by: Chenyi Qiang <chenyi.qiang@xxxxxxxxx> >>> Signed-off-by: Chenyi Qiang <chenyi.qiang@xxxxxxxxx> >>> Codeveloped-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> >>> Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> >> >> [...] >> >>> diff --git a/qapi/qom.json b/qapi/qom.json >>> index cac875349a3a..7b26b0a0d3aa 100644 >>> --- a/qapi/qom.json >>> +++ b/qapi/qom.json >>> @@ -917,13 +917,19 @@ >>> # (base64 encoded SHA384 digest). (A default value 0 of SHA384 is >>> # used when absent). >>> # >>> +# @quote-generation-socket: socket address for Quote Generation >>> +# Service (QGS). QGS is a daemon running on the host. User in >>> +# TD guest cannot get TD quoting for attestation if QGS is not >>> +# provided. So admin should always provide it. >> >> This makes me wonder why it's optional. Can you describe a use case for >> *not* specifying @quote-generation-socket? > > Maybe at last when all the TDX support lands on all the components, attestation will become a must for a TD guest to be usable. > > However, at least for today, booting and running a TD guest don't require attestation. So not provide it, doesn't affect anything excepting cannot get a Quote. Maybe # @quote-generation-socket: Socket address for Quote Generation # Service (QGS). QGS is a daemon running on the host. Without # it, the guest will not be able to get a TD quote for # attestation. [...]