From nobody Sat May 18 08:47:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1672803051; cv=none; d=zohomail.com; s=zohoarc; b=DYTjGpyqlU8+n6xOcgNFhT16VcoXjHOenS8GN1b0jQAJdUlGZNmpZL3A6hapeTYOa9RHIbqnxWeWmnuvSBHSvLfJNyBDStH/cVImc9iz87Ta9Ekgy0Az+OxIQIgIB7Zpz1fPK7QJkBB3lZMHToXn59yKTgzHtJgWpC5sbGNNiyU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672803051; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=w1Ej6ofSaujA0OIHWVBfiYBJFJ2GJfGxHtxauffUd1Y=; b=gEP3v5WiLnYqEBwBbrnJSukmUhEWmex/AROK2VpMqKbw1qAdvClE1rnMSJ5k10VTDETaVL+iO75DblG0oNMdBLpMXVt9alPAPqou7BB92qV4LoGCy1OPj1/cRNlbxsNtuI5j4GW0/UGj81iyeO1id5shlPP1Xq2Q9Ei7ChlzmNg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1672803051581667.8816294891204; Tue, 3 Jan 2023 19:30:51 -0800 (PST) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-434-I2bPruPiP0yZkmY_ep0pMw-1; Tue, 03 Jan 2023 22:30:48 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3107F3811F35; Wed, 4 Jan 2023 03:30:46 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1194F1121319; Wed, 4 Jan 2023 03:29:58 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 136B619465B7; Wed, 4 Jan 2023 03:29:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 0947019465B5 for ; Wed, 4 Jan 2023 03:29:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id DE174492C18; Wed, 4 Jan 2023 03:29:49 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D6310492C14 for ; Wed, 4 Jan 2023 03:29:49 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id AA3E4101A521 for ; Wed, 4 Jan 2023 03:29:49 +0000 (UTC) Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-382-y-_XLlaiP0SdTymFol4BBw-1; Tue, 03 Jan 2023 22:29:47 -0500 Received: by mail-pg1-f169.google.com with SMTP id f3so21426979pgc.2 for ; Tue, 03 Jan 2023 19:29:47 -0800 (PST) Received: from always-pc.bytedance.net ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id 141-20020a621493000000b005815217e665sm14881863pfu.65.2023.01.03.19.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 19:29:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1672803050; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=w1Ej6ofSaujA0OIHWVBfiYBJFJ2GJfGxHtxauffUd1Y=; b=b2NHVG6Rpad5Jtj79PRiuiFW+qZ35bhKwzEAkx7ITB2PX4vhj98z3/pb1EwwhEZ9V5R6gC adJvOESGc1xL0HwwCnxODEaOxdmCg6Dtaw2qhYuXlYHYYAkiugdBXk7z5H5JG/Rq3n2Bq8 9OFoTHm5WBeE9VOf1So8GdQx6Ga3rfM= X-MC-Unique: I2bPruPiP0yZkmY_ep0pMw-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: y-_XLlaiP0SdTymFol4BBw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=w1Ej6ofSaujA0OIHWVBfiYBJFJ2GJfGxHtxauffUd1Y=; b=USjEK7Pq9chzwaGbrzE6dD+IOmRJTksKZmAlvVwDrb+DOS8I++kzbJ8IejUKz829UW SBfcCc43NOpO4BKN5n4qPv4uig1EuUx3qRehvg8v6CuzbYk3HW5dJ/6NrOJYtXhrmS76 oXRxg1EHQFpGSPxcIyYPkb0DipIPXzhkaooOFlbhPLyzBlbazhCN26DL+SILHBpkwvFr JsJ/ILLObiKuJ0sdMRlK9d5xkQoJQ1zN6GxSItvnMBMudXn3A0W2KYmweS1GIX33/hcQ O6DKDKB0mmeQkdeQV/m3sUPie1LL1hjz1qHUU9y0Z/svnnqeQbFCf1AFjAKyVKqh10od d7/Q== X-Gm-Message-State: AFqh2kp7nq5EG+RRBjw/xNjYemnAa2S4b3aLBkVUjNlfxylSJUmw+MM3 Y5ba0TWH2YE9F/+sbWpiA8UN2n/Q74N/VRpe X-Google-Smtp-Source: AMrXdXssvZ3RslCa5AVwsjukffNxbLtjkLIqw244o+fs6NwydEnGUNW17py+A43h+qrtsipDeZbr7Q== X-Received: by 2002:a05:6a00:2995:b0:581:65ab:8cba with SMTP id cj21-20020a056a00299500b0058165ab8cbamr727455pfb.31.1672802986631; Tue, 03 Jan 2023 19:29:46 -0800 (PST) From: zhenwei pi To: mprivozn@redhat.com Subject: [PATCH 1/7] docs: introduce crypto device Date: Wed, 4 Jan 2023 11:29:31 +0800 Message-Id: <20230104032937.3058144-2-pizhenwei@bytedance.com> In-Reply-To: <20230104032937.3058144-1-pizhenwei@bytedance.com> References: <20230104032937.3058144-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libvir-list@redhat.com, helei.sig11@bytedance.com, zhenwei pi Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1672803053814100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Introduce crypto device like:
Currently, crypto model supports virtio only, type supports qemu only (vhost-user in the plan). For the qemu type, backend supports modle builtin/lkcf, and the queues is optional. Signed-off-by: zhenwei pi --- docs/formatdomain.rst | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index d7fffc6e0b..2b46f6c966 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -8225,6 +8225,27 @@ The optional ``driver`` element allows to specify vi= rtio options, see ... =20 =20 +Crypto +~~~~~~ + +A crypto device. The ``model`` attribute defaults to ``virtio``. +:since:`Since v9.0.0` ``model`` supports ``virtio`` only. The ``type`` att= ribute +defaults to ``qemu``. :since:`Since v9.0.0` ``type`` supports ``qemu`` onl= y. +The optional attribute ``backend`` is required if the ``type`` is ``qemu``= , the +``model`` attribute can be ``builtint`` and ``lkcf``, the optional attribu= te +``queues`` specifies the number of virt queues for virtio crypto. + +:: + + ... + + + + + + ... + + Security label -------------- =20 --=20 2.34.1 From nobody Sat May 18 08:47:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1672803063; cv=none; d=zohomail.com; s=zohoarc; b=HQi5mHUtYcWK3rq31tuFNRCLgcFZAZL0rvR2WUdSim8ie51eYS6niIsVRnLYhs19LplfSKy4UU3S9/ekylo4HLDeFdB99V6oqigf6BZZHS17GIbmrwXBSfIEVOavKq5m3QFp5s7TssOEjZN7Dxro8X3O2L+Q49nzpD9jRdeTYQ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672803063; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Hd5xq3I9oReMkeDqS+OWB1yzAGBPXHy5fpU0Uj3BWhE=; b=beRkTkOpmSc3U1d8H8REzm3iZRgzFGX+zF90DT4qIHWcZLd/s+DxyAoTJ1FQVkzDF6+17JtRlfGVcQWiDw7/K3ydT18C4LVlSNthenxUrykpjL/ltfzksXiyal6TtZeGsQUiqB/3s1wjcXRRRqx3NDaD05dlhK7VJTv2h4LbPIQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1672803063562274.055876098377; Tue, 3 Jan 2023 19:31:03 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-52-axPgldSbO3WGZPORU8dyDQ-1; Tue, 03 Jan 2023 22:30:07 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id F13A118811FC; Wed, 4 Jan 2023 03:30:04 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id E0E891121315; Wed, 4 Jan 2023 03:30:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4D8DE1946A78; Wed, 4 Jan 2023 03:29:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 11D7C1946A77 for ; Wed, 4 Jan 2023 03:29:52 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 05955492C1B; Wed, 4 Jan 2023 03:29:52 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F1C12492C18 for ; Wed, 4 Jan 2023 03:29:51 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D03AE80234E for ; Wed, 4 Jan 2023 03:29:51 +0000 (UTC) Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-114-FMU-9jdPMsS1Tp3hxQ2IAw-1; Tue, 03 Jan 2023 22:29:50 -0500 Received: by mail-pf1-f182.google.com with SMTP id 124so21983288pfy.0 for ; Tue, 03 Jan 2023 19:29:49 -0800 (PST) Received: from always-pc.bytedance.net ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id 141-20020a621493000000b005815217e665sm14881863pfu.65.2023.01.03.19.29.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 19:29:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1672803062; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Hd5xq3I9oReMkeDqS+OWB1yzAGBPXHy5fpU0Uj3BWhE=; b=CaJo/9JNZ3/CVIx0uSFy5J6q44IRl7ENnVlW3w3ielrcfhp8R2b+5VZAB0331iqpKe1M83 4/pRHAsn7BbNCbrVdr5ZWTQboWg2suUHlm8lt3b4R1gtmuYiTkLJqNEhV2DIWI0gUuo1ee tk7ZbFCPfOYGzbRpEK7IuGgJWPYwqcc= X-MC-Unique: axPgldSbO3WGZPORU8dyDQ-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: FMU-9jdPMsS1Tp3hxQ2IAw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Hd5xq3I9oReMkeDqS+OWB1yzAGBPXHy5fpU0Uj3BWhE=; b=xw1S+ktAWKOgTuEt2H1XzXsOTtXeQweOCIDijKWYjjeAq340+rrLGEeXHdC52HiEZ9 0PFkjLMhvo3lo6zIQQ5ZfMfGgUJ0CNCs9v9S0905maxmfV+xNfgtpSHaTu+VremnvcID hm2cGdZ8kmQUXuFEPzeq4SyDo3ajwmeDrWjXpM+rHrrIjvQBl2oup2Yx/R3JHkp6jqsx aPIGt0JXOFv/A7sqJv/rvkCtiRdkrG/g2uwtNOZTvnGQukvJwt+fujRTuwfjebzayI6S 96o+/6wUKPPAaoRZA+1i01JV2Ha4gYzMOs1jx/06NtKNyh/8k7SBhiRDULzilQ5Tza5c J19A== X-Gm-Message-State: AFqh2ko5ctOzsMR6oYsQFjb90CeLsff964JnmZ39K0SQUcWoiqSIacXF 1KPmo/9eUPDH0njzJ8VJFaiJHkM1r6ZksuBL X-Google-Smtp-Source: AMrXdXsgKALr8z7NwyrVn9NSLCahAg/YhShv5HntaqWg6zQ/ufSo11XBJs6kBoaCmZVCot6bbwLGPA== X-Received: by 2002:a62:e90e:0:b0:577:1c59:a96c with SMTP id j14-20020a62e90e000000b005771c59a96cmr48867620pfh.2.1672802988825; Tue, 03 Jan 2023 19:29:48 -0800 (PST) From: zhenwei pi To: mprivozn@redhat.com Subject: [PATCH 2/7] conf: support crypto device Date: Wed, 4 Jan 2023 11:29:32 +0800 Message-Id: <20230104032937.3058144-3-pizhenwei@bytedance.com> In-Reply-To: <20230104032937.3058144-1-pizhenwei@bytedance.com> References: <20230104032937.3058144-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libvir-list@redhat.com, helei.sig11@bytedance.com, zhenwei pi Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1672803065682100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Support a new device type 'crypto'. Signed-off-by: zhenwei pi --- src/conf/domain_conf.c | 191 +++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 40 +++++++ src/conf/domain_postparse.c | 1 + src/conf/domain_validate.c | 18 ++++ src/conf/virconftypes.h | 2 + src/libvirt_private.syms | 1 + src/qemu/qemu_command.c | 1 + src/qemu/qemu_domain.c | 3 + src/qemu/qemu_domain_address.c | 26 +++++ src/qemu/qemu_driver.c | 5 + src/qemu/qemu_hotplug.c | 3 + src/qemu/qemu_validate.c | 22 ++++ 12 files changed, 313 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 6c088ff295..74448fe627 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -332,6 +332,7 @@ VIR_ENUM_IMPL(virDomainDevice, "iommu", "vsock", "audio", + "crypto", ); =20 VIR_ENUM_IMPL(virDomainDiskDevice, @@ -1314,6 +1315,22 @@ VIR_ENUM_IMPL(virDomainVsockModel, "virtio-non-transitional", ); =20 +VIR_ENUM_IMPL(virDomainCryptoModel, + VIR_DOMAIN_CRYPTO_MODEL_LAST, + "virtio", +); + +VIR_ENUM_IMPL(virDomainCryptoType, + VIR_DOMAIN_CRYPTO_TYPE_LAST, + "qemu", +); + +VIR_ENUM_IMPL(virDomainCryptoBackend, + VIR_DOMAIN_CRYPTO_BACKEND_LAST, + "builtin", + "lkcf", +); + VIR_ENUM_IMPL(virDomainDiskDiscard, VIR_DOMAIN_DISK_DISCARD_LAST, "default", @@ -3464,6 +3481,9 @@ void virDomainDeviceDefFree(virDomainDeviceDef *def) case VIR_DOMAIN_DEVICE_AUDIO: virDomainAudioDefFree(def->data.audio); break; + case VIR_DOMAIN_DEVICE_CRYPTO: + virDomainCryptoDefFree(def->data.crypto); + break; case VIR_DOMAIN_DEVICE_LAST: case VIR_DOMAIN_DEVICE_NONE: break; @@ -3807,6 +3827,10 @@ void virDomainDefFree(virDomainDef *def) virDomainPanicDefFree(def->panics[i]); g_free(def->panics); =20 + for (i =3D 0; i < def->ncryptos; i++) + virDomainCryptoDefFree(def->cryptos[i]); + g_free(def->cryptos); + virDomainIOMMUDefFree(def->iommu); =20 g_free(def->idmap.uidmap); @@ -4360,6 +4384,8 @@ virDomainDeviceGetInfo(const virDomainDeviceDef *devi= ce) return &device->data.iommu->info; case VIR_DOMAIN_DEVICE_VSOCK: return &device->data.vsock->info; + case VIR_DOMAIN_DEVICE_CRYPTO: + return &device->data.crypto->info; =20 /* The following devices do not contain virDomainDeviceInfo */ case VIR_DOMAIN_DEVICE_LEASE: @@ -4462,6 +4488,9 @@ virDomainDeviceSetData(virDomainDeviceDef *device, case VIR_DOMAIN_DEVICE_AUDIO: device->data.audio =3D devicedata; break; + case VIR_DOMAIN_DEVICE_CRYPTO: + device->data.crypto =3D devicedata; + break; case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_LAST: break; @@ -4673,6 +4702,13 @@ virDomainDeviceInfoIterateFlags(virDomainDef *def, return rc; } =20 + device.type =3D VIR_DOMAIN_DEVICE_CRYPTO; + for (i =3D 0; i < def->ncryptos; i++) { + device.data.crypto =3D def->cryptos[i]; + if ((rc =3D cb(def, &device, &def->cryptos[i]->info, opaque)) !=3D= 0) + return rc; + } + /* If the flag below is set, make sure @cb can handle @info being NULL= */ if (iteratorFlags & DOMAIN_DEVICE_ITERATE_MISSING_INFO) { device.type =3D VIR_DOMAIN_DEVICE_GRAPHICS; @@ -4731,6 +4767,7 @@ virDomainDeviceInfoIterateFlags(virDomainDef *def, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: break; } #endif @@ -13417,6 +13454,94 @@ virDomainVsockDefParseXML(virDomainXMLOption *xmlo= pt, return g_steal_pointer(&vsock); } =20 + +static virDomainCryptoDef * +virDomainCryptoDefParseXML(virDomainXMLOption *xmlopt, + xmlNodePtr node, + xmlXPathContextPtr ctxt, + unsigned int flags) +{ + virDomainCryptoDef *def; + VIR_XPATH_NODE_AUTORESTORE(ctxt) + int nbackends; + g_autofree xmlNodePtr *backends =3D NULL; + g_autofree char *model =3D NULL; + g_autofree char *backend =3D NULL; + g_autofree char *type =3D NULL; + + def =3D g_new0(virDomainCryptoDef, 1); + + if (!(model =3D virXMLPropString(node, "model"))) { + virReportError(VIR_ERR_XML_ERROR, "%s", _("missing crypto device m= odel")); + goto error; + } + + if ((def->model =3D virDomainCryptoModelTypeFromString(model)) < 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown crypto model= '%s'"), model); + goto error; + } + + if (!(type =3D virXMLPropString(node, "type"))) { + virReportError(VIR_ERR_XML_ERROR, "%s", _("missing crypto device t= ype")); + goto error; + } + + if ((def->type =3D virDomainCryptoTypeTypeFromString(type)) < 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown crypto type = '%s'"), model); + goto error; + } + + ctxt->node =3D node; + + if ((nbackends =3D virXPathNodeSet("./backend", ctxt, &backends)) < 0) + goto error; + + if (nbackends !=3D 1) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("only one crypto backend is supported")); + goto error; + } + + if (!(backend =3D virXMLPropString(backends[0], "model"))) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("missing crypto device backend model")); + goto error; + } + + if ((def->backend =3D virDomainCryptoBackendTypeFromString(backend)) <= 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown crypto backend model '%s'"), backend); + goto error; + } + + if (virXMLPropUInt(backends[0], "queues", 10, VIR_XML_PROP_NONE, &def-= >queues) < 0) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("parsing crypto device queues failed")); + goto error; + } + + switch ((virDomainCryptoBackend) def->backend) { + case VIR_DOMAIN_CRYPTO_BACKEND_BUILTIN: + case VIR_DOMAIN_CRYPTO_BACKEND_LKCF: + case VIR_DOMAIN_CRYPTO_BACKEND_LAST: + break; + } + + if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, &def->info, flags)= < 0) + goto error; + + if (virDomainVirtioOptionsParseXML(virXPathNode("./driver", ctxt), + &def->virtio) < 0) + goto error; + + return def; + + error: + g_clear_pointer(&def, virDomainCryptoDefFree); + return NULL; +} + + virDomainDeviceDef * virDomainDeviceDefParse(const char *xmlStr, const virDomainDef *def, @@ -13578,6 +13703,11 @@ virDomainDeviceDefParse(const char *xmlStr, flags))) return NULL; break; + case VIR_DOMAIN_DEVICE_CRYPTO: + if (!(dev->data.crypto =3D virDomainCryptoDefParseXML(xmlopt, node= , ctxt, + flags))) + return NULL; + break; case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_LAST: break; @@ -18670,6 +18800,21 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, } VIR_FREE(nodes); =20 + /* Parse the crypto devices */ + if ((n =3D virXPathNodeSet("./devices/crypto", ctxt, &nodes)) < 0) + return NULL; + if (n) + def->cryptos =3D g_new0(virDomainCryptoDef *, n); + for (i =3D 0; i < n; i++) { + virDomainCryptoDef *crypto =3D virDomainCryptoDefParseXML(xmlopt, = nodes[i], + ctxt, flags); + if (!crypto) + return NULL; + + def->cryptos[def->ncryptos++] =3D crypto; + } + VIR_FREE(nodes); + /* Parse the TPM devices */ if ((n =3D virXPathNodeSet("./devices/tpm", ctxt, &nodes)) < 0) return NULL; @@ -21210,6 +21355,7 @@ virDomainDefCheckABIStabilityFlags(virDomainDef *sr= c, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: break; } #endif @@ -24562,6 +24708,47 @@ virDomainRNGDefFree(virDomainRNGDef *def) } =20 =20 +static int +virDomainCryptoDefFormat(virBuffer *buf, + virDomainCryptoDef *def, + unsigned int flags) +{ + const char *model =3D virDomainCryptoModelTypeToString(def->model); + const char *type =3D virDomainCryptoTypeTypeToString(def->model); + const char *backend =3D virDomainCryptoBackendTypeToString(def->backen= d); + g_auto(virBuffer) driverAttrBuf =3D VIR_BUFFER_INITIALIZER; + + virBufferAsprintf(buf, "\n", model, t= ype); + virBufferAdjustIndent(buf, 2); + virBufferAsprintf(buf, "queues) + virBufferAsprintf(buf, " queues=3D'%d'", def->queues); + virBufferAddLit(buf, "/>\n"); + + virDomainVirtioOptionsFormat(&driverAttrBuf, def->virtio); + + virXMLFormatElement(buf, "driver", &driverAttrBuf, NULL); + + virDomainDeviceInfoFormat(buf, &def->info, flags); + + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "\n"); + + return 0; +} + +void +virDomainCryptoDefFree(virDomainCryptoDef *def) +{ + if (!def) + return; + + virDomainDeviceInfoClear(&def->info); + g_free(def->virtio); + g_free(def); +} + + static int virDomainMemorySourceDefFormat(virBuffer *buf, virDomainMemoryDef *def) @@ -27261,6 +27448,10 @@ virDomainDefFormatInternalSetRootName(virDomainDef= *def, return -1; } =20 + for (n =3D 0; n < def->ncryptos; n++) { + if (virDomainCryptoDefFormat(buf, def->cryptos[n], flags)) + return -1; + } if (def->iommu) virDomainIOMMUDefFormat(buf, def->iommu); =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 1404c55053..9062250d60 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -86,6 +86,7 @@ typedef enum { VIR_DOMAIN_DEVICE_IOMMU, VIR_DOMAIN_DEVICE_VSOCK, VIR_DOMAIN_DEVICE_AUDIO, + VIR_DOMAIN_DEVICE_CRYPTO, =20 VIR_DOMAIN_DEVICE_LAST } virDomainDeviceType; @@ -118,6 +119,7 @@ struct _virDomainDeviceDef { virDomainIOMMUDef *iommu; virDomainVsockDef *vsock; virDomainAudioDef *audio; + virDomainCryptoDef *crypto; } data; }; =20 @@ -2858,6 +2860,34 @@ struct _virDomainVsockDef { virDomainVirtioOptions *virtio; }; =20 +typedef enum { + VIR_DOMAIN_CRYPTO_MODEL_VIRTIO, + + VIR_DOMAIN_CRYPTO_MODEL_LAST +} virDomainCryptoModel; + +typedef enum { + VIR_DOMAIN_CRYPTO_TYPE_QEMU, + + VIR_DOMAIN_CRYPTO_TYPE_LAST +} virDomainCryptoType; + +typedef enum { + VIR_DOMAIN_CRYPTO_BACKEND_BUILTIN, + VIR_DOMAIN_CRYPTO_BACKEND_LKCF, + + VIR_DOMAIN_CRYPTO_BACKEND_LAST +} virDomainCryptoBackend; + +struct _virDomainCryptoDef { + virDomainCryptoModel model; + virDomainCryptoType type; + virDomainCryptoBackend backend; + unsigned int queues; + virDomainDeviceInfo info; + virDomainVirtioOptions *virtio; +}; + struct _virDomainVirtioOptions { virTristateSwitch iommu; virTristateSwitch ats; @@ -3023,6 +3053,9 @@ struct _virDomainDef { size_t nsysinfo; virSysinfoDef **sysinfo; =20 + size_t ncryptos; + virDomainCryptoDef **cryptos; + /* At maximum 2 TPMs on the domain if a TPM Proxy is present. */ size_t ntpms; virDomainTPMDef **tpms; @@ -3274,6 +3307,7 @@ struct _virDomainXMLPrivateDataCallbacks { virDomainXMLPrivateDataNewFunc vcpuNew; virDomainXMLPrivateDataNewFunc chrSourceNew; virDomainXMLPrivateDataNewFunc vsockNew; + virDomainXMLPrivateDataNewFunc cryptoNew; virDomainXMLPrivateDataNewFunc graphicsNew; virDomainXMLPrivateDataNewFunc networkNew; virDomainXMLPrivateDataNewFunc videoNew; @@ -3440,6 +3474,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainIOMMUDef, virD= omainIOMMUDefFree); virDomainVsockDef *virDomainVsockDefNew(virDomainXMLOption *xmlopt); void virDomainVsockDefFree(virDomainVsockDef *vsock); G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainVsockDef, virDomainVsockDefFree); +virDomainCryptoDef *virDomainCryptoDefNew(virDomainXMLOption *xmlopt); +void virDomainCryptoDefFree(virDomainCryptoDef *crypto); +G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainCryptoDef, virDomainCryptoDefFree); void virDomainNetTeamingInfoFree(virDomainNetTeamingInfo *teaming); G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainNetTeamingInfo, virDomainNetTeaming= InfoFree); void virDomainNetDefFree(virDomainNetDef *def); @@ -4089,6 +4126,9 @@ VIR_ENUM_DECL(virDomainMemorySource); VIR_ENUM_DECL(virDomainMemoryAllocation); VIR_ENUM_DECL(virDomainIOMMUModel); VIR_ENUM_DECL(virDomainVsockModel); +VIR_ENUM_DECL(virDomainCryptoModel); +VIR_ENUM_DECL(virDomainCryptoType); +VIR_ENUM_DECL(virDomainCryptoBackend); VIR_ENUM_DECL(virDomainShmemModel); VIR_ENUM_DECL(virDomainShmemRole); VIR_ENUM_DECL(virDomainLaunchSecurity); diff --git a/src/conf/domain_postparse.c b/src/conf/domain_postparse.c index 9a3e8f494c..c4184a2c28 100644 --- a/src/conf/domain_postparse.c +++ b/src/conf/domain_postparse.c @@ -730,6 +730,7 @@ virDomainDeviceDefPostParseCommon(virDomainDeviceDef *d= ev, case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: ret =3D 0; break; =20 diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 2c63a0b343..6651906d73 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2412,6 +2412,21 @@ virDomainVsockDefValidate(const virDomainVsockDef *v= sock) } =20 =20 +static int +virDomainCryptoDefValidate(const virDomainCryptoDef *crypto) +{ + switch (crypto->model) { + case VIR_DOMAIN_CRYPTO_MODEL_VIRTIO: + break; + case VIR_DOMAIN_CRYPTO_MODEL_LAST: + default: + return -1; + } + + return 0; +} + + static int virDomainInputDefValidate(const virDomainInputDef *input, const virDomainDef *def) @@ -2836,6 +2851,9 @@ virDomainDeviceDefValidateInternal(const virDomainDev= iceDef *dev, case VIR_DOMAIN_DEVICE_VSOCK: return virDomainVsockDefValidate(dev->data.vsock); =20 + case VIR_DOMAIN_DEVICE_CRYPTO: + return virDomainCryptoDefValidate(dev->data.crypto); + case VIR_DOMAIN_DEVICE_INPUT: return virDomainInputDefValidate(dev->data.input, def); =20 diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h index 154805091a..2d7ae66f4b 100644 --- a/src/conf/virconftypes.h +++ b/src/conf/virconftypes.h @@ -248,6 +248,8 @@ typedef struct _virDomainVirtioSerialOpts virDomainVirt= ioSerialOpts; =20 typedef struct _virDomainVsockDef virDomainVsockDef; =20 +typedef struct _virDomainCryptoDef virDomainCryptoDef; + typedef struct _virDomainWatchdogDef virDomainWatchdogDef; =20 typedef struct _virDomainXMLOption virDomainXMLOption; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index ae746a2d51..3e7de95446 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -301,6 +301,7 @@ virDomainControllerRemove; virDomainControllerTypeToString; virDomainCpuPlacementModeTypeFromString; virDomainCpuPlacementModeTypeToString; +virDomainCryptoDefFree; virDomainDefAddController; virDomainDefAddImplicitDevices; virDomainDefAddUSBController; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index ee2e873b95..4c001f72a5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -941,6 +941,7 @@ qemuBuildVirtioDevGetConfigDev(const virDomainDeviceDef= *device, case VIR_DOMAIN_DEVICE_MEMORY: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: default: break; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5c05032ce3..3509deb863 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5917,6 +5917,7 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDef *dev, case VIR_DOMAIN_DEVICE_RNG: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: ret =3D 0; break; =20 @@ -10039,6 +10040,7 @@ qemuDomainPrepareChardevSourceOne(virDomainDeviceDe= f *dev, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: break; } =20 @@ -11781,6 +11783,7 @@ qemuDomainDeviceBackendChardevForeachOne(virDomainD= eviceDef *dev, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: /* no chardev backend */ break; } diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index b8d1969fbe..9529bd9a8d 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -405,6 +405,12 @@ qemuDomainPrimeVirtioDeviceAddresses(virDomainDef *def, def->vsock->info.type =3D type; } } + + for (i =3D 0; i < def->ncryptos; i++) { + /* All devices accepted by the qemu driver are virtio */ + if (def->cryptos[i]->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TY= PE_NONE) + def->cryptos[i]->info.type =3D type; + } } =20 =20 @@ -544,6 +550,7 @@ qemuDomainDeviceSupportZPCI(virDomainDeviceDef *device) case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: break; =20 case VIR_DOMAIN_DEVICE_NONE: @@ -1045,6 +1052,15 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDe= viceDef *dev, } break; =20 + case VIR_DOMAIN_DEVICE_CRYPTO: + switch (dev->data.crypto->model) { + case VIR_DOMAIN_CRYPTO_MODEL_VIRTIO: + return pciFlags; + case VIR_DOMAIN_CRYPTO_MODEL_LAST: + return 0; + } + break; + /* These devices don't ever connect with PCI */ case VIR_DOMAIN_DEVICE_NVRAM: case VIR_DOMAIN_DEVICE_TPM: @@ -2428,6 +2444,16 @@ qemuDomainAssignDevicePCISlots(virDomainDef *def, } } =20 + /* the qemu driver only accepts virtio crypto devices */ + for (i =3D 0; i < def->ncryptos; i++) { + if (!virDeviceInfoPCIAddressIsWanted(&def->cryptos[i]->info)) + continue; + + if (qemuDomainPCIAddressReserveNextAddr(addrs, &def->cryptos[i]->i= nfo) < 0) + return -1; + } + + return 0; } =20 diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d509582719..ed9e32447b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6762,6 +6762,7 @@ qemuDomainAttachDeviceLive(virDomainObj *vm, case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live attach of device '%s' is not supported"), @@ -7073,6 +7074,7 @@ qemuDomainUpdateDeviceLive(virDomainObj *vm, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("live update of device '%s' is not supported"), @@ -7284,6 +7286,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("persistent attach of device '%s' is not support= ed"), @@ -7489,6 +7492,7 @@ qemuDomainDetachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("persistent detach of device '%s' is not supporte= d"), @@ -7614,6 +7618,7 @@ qemuDomainUpdateDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_VSOCK: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("persistent update of device '%s' is not supporte= d"), diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 6e300f547c..bfb6409051 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -5016,6 +5016,7 @@ qemuDomainRemoveAuditDevice(virDomainObj *vm, case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: /* libvirt doesn't yet support detaching these devices */ break; @@ -5119,6 +5120,7 @@ qemuDomainRemoveDevice(virQEMUDriver *driver, case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("don't know how to remove a %s device"), @@ -5972,6 +5974,7 @@ qemuDomainDetachDeviceLive(virDomainObj *vm, case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("live detach of device '%s' is not supported"), diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index c687df0bfc..765906c914 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4504,6 +4504,25 @@ qemuValidateDomainDeviceDefAudio(virDomainAudioDef *= audio, } =20 =20 +static int +qemuValidateDomainDeviceDefCrypto(virDomainCryptoDef *crypto, + const virDomainDef *def G_GNUC_UNUSED, + virQEMUCaps *qemuCaps G_GNUC_UNUSED) +{ + switch (crypto->type) { + case VIR_DOMAIN_CRYPTO_TYPE_QEMU: + break; + + case VIR_DOMAIN_CRYPTO_TYPE_LAST: + default: + virReportEnumRangeError(virDomainCryptoType, crypto->type); + return -1; + } + + return 0; +} + + static int qemuSoundCodecTypeToCaps(int type) { @@ -5211,6 +5230,9 @@ qemuValidateDomainDeviceDef(const virDomainDeviceDef = *dev, case VIR_DOMAIN_DEVICE_AUDIO: return qemuValidateDomainDeviceDefAudio(dev->data.audio, def, qemu= Caps); =20 + case VIR_DOMAIN_DEVICE_CRYPTO: + return qemuValidateDomainDeviceDefCrypto(dev->data.crypto, def, qe= muCaps); + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_NONE: --=20 2.34.1 From nobody Sat May 18 08:47:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1672803013; cv=none; d=zohomail.com; s=zohoarc; b=WJSOAkyoHSNHcw2CPzio+1pPx1idFe5yvhU9B1LfkjviYgtQ2GkAN2MaPjabh5nL5qSnsuhwrsw7WeWoInnZ/lu4jn1cO9qTYDzKmXVUjhSDQiAC4z6invvubYPwJ7eZf8o2OHhX1NRNAuccFI4nveOPjQHN0BCX3e5UAsz9KM4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672803013; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0Inlo5Mo6pOuRoVzFVU+BzKY2wGYbRU9+R2orv0MdHE=; b=BW4FTAV9VjB/c5C9UPeup2yTlBTdCK0y8LnLDKMBNMoS3aerVdvUm1VKx/qoTMcK/PpfkFaSl7ZjFVXxMe3MuRKvfLBHEi6WO7pm4MmkZzdlgFwAsZB7/0rvAFBZgsRF0NehI6d39/KTR9u4TZepE7+eAw4QWz6ozwDeYupgS1Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1672803013447310.0278693332715; Tue, 3 Jan 2023 19:30:13 -0800 (PST) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-144-rvCXKmiGPB-qvMrVdN_Tag-1; Tue, 03 Jan 2023 22:30:07 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 42D731C08976; Wed, 4 Jan 2023 03:30:05 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2F767492C18; Wed, 4 Jan 2023 03:30:05 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 9E97F1947056; Wed, 4 Jan 2023 03:29:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id EA9D51947055 for ; Wed, 4 Jan 2023 03:29:53 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id DBE4B2166B2B; Wed, 4 Jan 2023 03:29:53 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D4BA02166B2A for ; Wed, 4 Jan 2023 03:29:53 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B5857858F09 for ; Wed, 4 Jan 2023 03:29:53 +0000 (UTC) Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-115-CMiX-SKvPOmY-ybiVy2YCA-1; Tue, 03 Jan 2023 22:29:52 -0500 Received: by mail-pf1-f169.google.com with SMTP id z7so16276048pfq.13 for ; Tue, 03 Jan 2023 19:29:51 -0800 (PST) Received: from always-pc.bytedance.net ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id 141-20020a621493000000b005815217e665sm14881863pfu.65.2023.01.03.19.29.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 19:29:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1672803012; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=0Inlo5Mo6pOuRoVzFVU+BzKY2wGYbRU9+R2orv0MdHE=; b=dei7YO6NX+bLxnN+BggEIT+HNEbHTQrH/T3FPV2N1C6zJRgdwAMOcq4rbMKkNMXbGrj3ay lfmqpHASklCMAAEjbmnzC1Yux8ERhuwVbnrdUtLvqmQISBxhWAvo5opE7TYNj6CUQtz48o cI2sZTWO3fDHiIkYLNgbTlT/poF8XxA= X-MC-Unique: rvCXKmiGPB-qvMrVdN_Tag-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: CMiX-SKvPOmY-ybiVy2YCA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0Inlo5Mo6pOuRoVzFVU+BzKY2wGYbRU9+R2orv0MdHE=; b=3T/UifhX1I7vIOiAnM2bbjZEXooxdKYv5CiaPihtO/oC6U8C7Jt6dXpsRPmEQ5yjk6 udWkn4FlC31eXSvKdXX6E7A6ynsR9KUX9w7LKsi28DZ4lA2Eae3G1HnA+MEa7Sl3x8YI E9tNHlnT44GlVsc39cg7BUz8TW/LPESTpORWLA7DLdFYvG7sfY/cqJNqFI8jRIuFtzZ8 Slp1+vojOHrjKpDQjkOjjcVOwbPMRwudZyZReQAaatsTq6njgHvKT75Bf6PchLHUeV9I 4NeVvQsgRkUCuqCnKW76+UFML2Sfvt5NqGB2iZC8VdOi2Ya3VusqPUEeyBwQCppV4v2O 64lA== X-Gm-Message-State: AFqh2kq6GKZG+vPtoWfa7ocFOgzz1f1d7YdsZdoQSupZp8Pu2dAJMOVV OfAyCNP5q1fHYo2wZy5KYE/6SQ== X-Google-Smtp-Source: AMrXdXtNjwBhqNc9j0592ph6jlMqr/KyyiA6gDj8u465GUbRuXfhwHlZ2whTRP8fdqye75XyCele8w== X-Received: by 2002:a62:a21e:0:b0:581:95a7:d2f4 with SMTP id m30-20020a62a21e000000b0058195a7d2f4mr26425094pff.9.1672802991081; Tue, 03 Jan 2023 19:29:51 -0800 (PST) From: zhenwei pi To: mprivozn@redhat.com Subject: [PATCH 3/7] domain_capabilities: define capabilities for crypto Date: Wed, 4 Jan 2023 11:29:33 +0800 Message-Id: <20230104032937.3058144-4-pizhenwei@bytedance.com> In-Reply-To: <20230104032937.3058144-1-pizhenwei@bytedance.com> References: <20230104032937.3058144-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libvir-list@redhat.com, helei.sig11@bytedance.com, zhenwei pi Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1672803015479100003 Content-Type: text/plain; charset="utf-8"; x-default="true" Signed-off-by: zhenwei pi --- src/conf/domain_capabilities.c | 15 +++++++++++++++ src/conf/domain_capabilities.h | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 247cfa49de..aacd590601 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -598,6 +598,20 @@ virDomainCapsDeviceChannelFormat(virBuffer *buf, } =20 =20 +static void +virDomainCapsDeviceCryptoFormat(virBuffer *buf, + const virDomainCapsDeviceCrypto *crypto) +{ + FORMAT_PROLOGUE(crypto); + + ENUM_PROCESS(crypto, model, virDomainCryptoModelTypeToString); + ENUM_PROCESS(crypto, type, virDomainCryptoTypeTypeToString); + ENUM_PROCESS(crypto, backendModel, virDomainCryptoBackendTypeToString); + + FORMAT_EPILOGUE(crypto); +} + + /** * virDomainCapsFeatureGICFormat: * @buf: target buffer @@ -748,6 +762,7 @@ virDomainCapsFormat(const virDomainCaps *caps) virDomainCapsDeviceTPMFormat(&buf, &caps->tpm); virDomainCapsDeviceRedirdevFormat(&buf, &caps->redirdev); virDomainCapsDeviceChannelFormat(&buf, &caps->channel); + virDomainCapsDeviceCryptoFormat(&buf, &caps->crypto); =20 virBufferAdjustIndent(&buf, -2); virBufferAddLit(&buf, "\n"); diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 1d504a3506..1b128a3a3c 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -224,6 +224,17 @@ struct _virSGXCapability { virSGXSection *sgxSections; }; =20 +STATIC_ASSERT_ENUM(VIR_DOMAIN_CRYPTO_MODEL_LAST); +STATIC_ASSERT_ENUM(VIR_DOMAIN_CRYPTO_TYPE_LAST); +STATIC_ASSERT_ENUM(VIR_DOMAIN_CRYPTO_BACKEND_LAST); +typedef struct _virDomainCapsDeviceCrypto virDomainCapsDeviceCrypto; +struct _virDomainCapsDeviceCrypto { + virTristateBool supported; + virDomainCapsEnum model; /* virDomainCryptoModel */ + virDomainCapsEnum type; /* virDomainCryptoType */ + virDomainCapsEnum backendModel; /* virDomainCryptoBackend */ +}; + typedef enum { VIR_DOMAIN_CAPS_FEATURE_IOTHREADS =3D 0, VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO, @@ -258,6 +269,7 @@ struct _virDomainCaps { virDomainCapsDeviceTPM tpm; virDomainCapsDeviceRedirdev redirdev; virDomainCapsDeviceChannel channel; + virDomainCapsDeviceCrypto crypto; /* add new domain devices here */ =20 virDomainCapsFeatureGIC gic; --=20 2.34.1 From nobody Sat May 18 08:47:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1672803011; cv=none; d=zohomail.com; s=zohoarc; b=Ib8GKEIVtg0jvlcmkPcFH6AKvKEyxs5I8JsPFNk1z9c9Qska7wZJkcDQKTjyAjLeQsHTj5NA6kEMkm3l8BRu4Qre5V/vGhhyHM6bYW0Ia2C2Zt30Qz9ij+rHwtce2AIyi03jBv4hzPvJPud0o1GJHBlSxlnRK+yQVuFHTQXiEc8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672803011; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8cSCut1cpDTKan8dMHNsaIJbOxyBmhW+F5pZfnlPo2A=; b=McbCstTv25hbBVXKshWPz0A7LbyidiZOUPI5/TAOa2bo7XgddtT8k9u6ejvhTNTaZa/xFHXQMLWfvFpdxI/HnRdfvBE6UIoYTTF64Lal19uPuVDMlPDCaOXTJ/WHXmo/VpHLOjE8flESedzChbwMID5QcTEpdsNA37348NbQgTc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1672803011347983.2739714030414; Tue, 3 Jan 2023 19:30:11 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-108-lzWMByQ6NcKmhL8mHQrmhQ-1; Tue, 03 Jan 2023 22:30:08 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B86FE18812A6; Wed, 4 Jan 2023 03:30:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id A15461121315; Wed, 4 Jan 2023 03:30:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 1852F19465BA; Wed, 4 Jan 2023 03:29:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2BB3B194706A for ; Wed, 4 Jan 2023 03:29:57 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id E837D49BB6A; Wed, 4 Jan 2023 03:29:56 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast07.extmail.prod.ext.rdu2.redhat.com [10.11.55.23]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DFFE340104C for ; Wed, 4 Jan 2023 03:29:56 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B96493C0D84C for ; Wed, 4 Jan 2023 03:29:56 +0000 (UTC) Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-42-UG1ToIHfOTWRdUiBGqLWEw-1; Tue, 03 Jan 2023 22:29:54 -0500 Received: by mail-pf1-f176.google.com with SMTP id c9so17076794pfj.5 for ; Tue, 03 Jan 2023 19:29:54 -0800 (PST) Received: from always-pc.bytedance.net ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id 141-20020a621493000000b005815217e665sm14881863pfu.65.2023.01.03.19.29.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 19:29:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1672803010; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=8cSCut1cpDTKan8dMHNsaIJbOxyBmhW+F5pZfnlPo2A=; b=Kc0yfrs5uyb52EW2hSrxLo18L4hNhLT/Whyi+faToxAY+RInW/S7PM5UU7zBWApsKlUPTJ 4duqm1/2pJTk98+yhB1NKOh/Ur0xJHnnA/d8ctMG+yLO5XeRqGndKGL/iYaHujtez2XNZq sBZwnFUyfuRAJ2VPlXyP4OfINpB8+4E= X-MC-Unique: lzWMByQ6NcKmhL8mHQrmhQ-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: UG1ToIHfOTWRdUiBGqLWEw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8cSCut1cpDTKan8dMHNsaIJbOxyBmhW+F5pZfnlPo2A=; b=oOlC5G0LkCSGT5ZAMY8s3bUvsnV+xoP+Dpnwio94tsm0H9+pVqVzO1N5In30M/YRZw IRVpKscPe0wyax97pV5NkidYklJtQuk9EnikhBhRiWQ7KaONgdh3v2OYLEQIO75vXiCK TLM/i+6oGOdVfQNpdC3FV00DUv+ww00rWn1i3pigRhj5GmEjNyMT548vMQQxPj9pGqF8 va8l8BNJe5GpVg6WR7LdEE1fE4M0EL7yrKlQ2PQtW/9ZS0HO176y40Rr2oIsKIC+Yftj XS50T+xhKAzB97+zCxFxJNguuo58CS6ZuHTtggakeoJDYwPAjUJQF2bL4pBfhXuhEXau BL0g== X-Gm-Message-State: AFqh2kr6mfvkvNHsUhFRGP2QUUTn53kqwBauTG3/s3OulzO/g0vTtW7h uqNLkxYaXU4C/MTzJ2i6kw+DHg== X-Google-Smtp-Source: AMrXdXtshenf0qrUweevuIdSG1FLqfhkdgiC6PP/VslF7VBfhRxvYayDwzEscUsA11/nRmF9i22jmA== X-Received: by 2002:a05:6a00:f92:b0:582:a224:e740 with SMTP id ct18-20020a056a000f9200b00582a224e740mr5905078pfb.27.1672802993595; Tue, 03 Jan 2023 19:29:53 -0800 (PST) From: zhenwei pi To: mprivozn@redhat.com Subject: [PATCH 4/7] qemu_capabilities: support crypto Date: Wed, 4 Jan 2023 11:29:34 +0800 Message-Id: <20230104032937.3058144-5-pizhenwei@bytedance.com> In-Reply-To: <20230104032937.3058144-1-pizhenwei@bytedance.com> References: <20230104032937.3058144-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libvir-list@redhat.com, helei.sig11@bytedance.com, zhenwei pi Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1672803013553100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Detect virtio crypto/crypto backend capabilities from QEMU, then we have a domain(QEMU) like this: virtio qemu builtin lkcf Signed-off-by: zhenwei pi --- src/conf/schemas/domaincaps.rng | 10 ++++++ src/qemu/qemu_capabilities.c | 32 +++++++++++++++++++ src/qemu/qemu_capabilities.h | 8 +++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 11 +++++++ .../qemu_4.2.0-virt.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 11 +++++++ tests/domaincapsdata/qemu_4.2.0.s390x.xml | 11 +++++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 11 +++++++ .../qemu_5.0.0-virt.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 11 +++++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 11 +++++++ tests/domaincapsdata/qemu_5.1.0.sparc.xml | 9 ++++++ tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 11 +++++++ .../qemu_5.2.0-virt.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 11 +++++++ tests/domaincapsdata/qemu_5.2.0.s390x.xml | 11 +++++++ tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 11 +++++++ .../qemu_6.0.0-virt.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_6.0.0.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_6.0.0.s390x.xml | 11 +++++++ tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 11 +++++++ tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 11 +++++++ .../qemu_6.2.0-virt.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_6.2.0.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_6.2.0.ppc64.xml | 11 +++++++ tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 11 +++++++ .../qemu_7.0.0-virt.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_7.0.0.aarch64.xml | 11 +++++++ tests/domaincapsdata/qemu_7.0.0.ppc64.xml | 11 +++++++ tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 11 +++++++ tests/domaincapsdata/qemu_7.1.0.ppc64.xml | 11 +++++++ tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 11 +++++++ .../domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 12 +++++++ .../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 12 +++++++ tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 12 +++++++ .../caps_4.2.0.aarch64.xml | 2 ++ .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 2 ++ .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 2 ++ .../caps_4.2.0.x86_64.xml | 2 ++ .../caps_5.0.0.aarch64.xml | 2 ++ .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 2 ++ .../caps_5.0.0.riscv64.xml | 2 ++ .../caps_5.0.0.x86_64.xml | 2 ++ .../qemucapabilitiesdata/caps_5.1.0.sparc.xml | 1 + .../caps_5.1.0.x86_64.xml | 2 ++ .../caps_5.2.0.aarch64.xml | 2 ++ .../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 2 ++ .../caps_5.2.0.riscv64.xml | 2 ++ .../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 2 ++ .../caps_5.2.0.x86_64.xml | 2 ++ .../caps_6.0.0.aarch64.xml | 2 ++ .../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 2 ++ .../caps_6.0.0.x86_64.xml | 2 ++ .../caps_6.1.0.x86_64.xml | 2 ++ .../caps_6.2.0.aarch64.xml | 2 ++ .../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 2 ++ .../caps_6.2.0.x86_64.xml | 2 ++ .../caps_7.0.0.aarch64.xml | 2 ++ .../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 2 ++ .../caps_7.0.0.x86_64.xml | 2 ++ .../qemucapabilitiesdata/caps_7.1.0.ppc64.xml | 2 ++ .../caps_7.1.0.x86_64.xml | 2 ++ .../caps_7.2.0.x86_64.xml | 3 ++ 83 files changed, 679 insertions(+) diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.= rng index b6408bca88..232c976530 100644 --- a/src/conf/schemas/domaincaps.rng +++ b/src/conf/schemas/domaincaps.rng @@ -204,6 +204,9 @@ + + + =20 @@ -270,6 +273,13 @@ =20 + + + + + + + diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 3aba9299b1..9baa6a4358 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -680,6 +680,11 @@ VIR_ENUM_IMPL(virQEMUCaps, "sgx-epc", /* QEMU_CAPS_SGX_EPC */ "thread-context", /* QEMU_CAPS_THREAD_CONTEXT */ "screenshot-format-png", /* QEMU_CAPS_SCREENSHOT_FORMAT_PNG = */ + + /* 440 */ + "virtio-crypto", /* QEMU_CAPS_DEVICE_VIRTIO_CRYPTO */ + "cryptodev-backend-builtin", /* QEMU_CAPS_OBJECT_CRYPTO_BUIL= TIN */ + "cryptodev-backend-lkcf", /* QEMU_CAPS_OBJECT_CRYPTO_LKCF */ ); =20 =20 @@ -1387,6 +1392,10 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes= [] =3D { { "virtio-iommu-pci", QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI }, { "sgx-epc", QEMU_CAPS_SGX_EPC }, { "thread-context", QEMU_CAPS_THREAD_CONTEXT }, + { "virtio-crypto-pci", QEMU_CAPS_DEVICE_VIRTIO_CRYPTO }, + { "virtio-crypto-device", QEMU_CAPS_DEVICE_VIRTIO_CRYPTO }, + { "cryptodev-backend-builtin", QEMU_CAPS_OBJECT_CRYPTO_BUILTIN }, + { "cryptodev-backend-lkcf", QEMU_CAPS_OBJECT_CRYPTO_LKCF }, }; =20 =20 @@ -6521,6 +6530,27 @@ virQEMUCapsFillDomainDeviceChannelCaps(virQEMUCaps *= qemuCaps, } =20 =20 +void +virQEMUCapsFillDomainDeviceCryptoCaps(virQEMUCaps *qemuCaps, + virDomainCapsDeviceCrypto *crypto) +{ + crypto->supported =3D VIR_TRISTATE_BOOL_YES; + crypto->model.report =3D true; + crypto->type.report =3D true; + crypto->backendModel.report =3D true; + + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_CRYPTO)) + VIR_DOMAIN_CAPS_ENUM_SET(crypto->model, VIR_DOMAIN_CRYPTO_MODEL_VI= RTIO); + + VIR_DOMAIN_CAPS_ENUM_SET(crypto->type, VIR_DOMAIN_CRYPTO_TYPE_QEMU); + + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_CRYPTO_BUILTIN)) + VIR_DOMAIN_CAPS_ENUM_SET(crypto->backendModel, VIR_DOMAIN_CRYPTO_B= ACKEND_BUILTIN); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_CRYPTO_LKCF)) + VIR_DOMAIN_CAPS_ENUM_SET(crypto->backendModel, VIR_DOMAIN_CRYPTO_B= ACKEND_LKCF); +} + + /** * virQEMUCapsSupportsGICVersion: * @qemuCaps: QEMU capabilities @@ -6674,6 +6704,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps, virDomainCapsDeviceRedirdev *redirdev =3D &domCaps->redirdev; virDomainCapsDeviceChannel *channel =3D &domCaps->channel; virDomainCapsMemoryBacking *memoryBacking =3D &domCaps->memoryBacking; + virDomainCapsDeviceCrypto *crypto =3D &domCaps->crypto; =20 virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps); =20 @@ -6711,6 +6742,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps, virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps); virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps); virQEMUCapsFillDomainFeatureSGXCaps(qemuCaps, domCaps); + virQEMUCapsFillDomainDeviceCryptoCaps(qemuCaps, crypto); =20 return 0; } diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index cc8b3759ea..de29aba68e 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -660,6 +660,11 @@ typedef enum { /* virQEMUCapsFlags grouping marker for= syntax-check */ QEMU_CAPS_THREAD_CONTEXT, /* -object thread-context */ QEMU_CAPS_SCREENSHOT_FORMAT_PNG, /* screendump command supports png fo= rmat */ =20 + /* 440 */ + QEMU_CAPS_DEVICE_VIRTIO_CRYPTO, /* virtio-crypto device */ + QEMU_CAPS_OBJECT_CRYPTO_BUILTIN, /* -object cryptodev-backend-builtin = */ + QEMU_CAPS_OBJECT_CRYPTO_LKCF, /* -object cryptodev-backend-lkcf */ + QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; =20 @@ -840,6 +845,9 @@ void virQEMUCapsFillDomainDeviceRedirdevCaps(virQEMUCap= s *qemuCaps, void virQEMUCapsFillDomainDeviceChannelCaps(virQEMUCaps *qemuCaps, virDomainCapsDeviceChannel *ch= annel); =20 +void virQEMUCapsFillDomainDeviceCryptoCaps(virQEMUCaps *qemuCaps, + virDomainCapsDeviceCrypto *cryp= to); + bool virQEMUCapsGuestIsNative(virArch host, virArch guest); =20 diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_4.2.0-q35.x86_64.xml index d0bf0bdc7b..17799b15e3 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -229,6 +229,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_4.2.0-tcg.x86_64.xml index 6a3818fb4e..4427634d7c 100644 --- a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml @@ -244,6 +244,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_4.2.0-virt.aarch64.xml index 02aca3e448..981a06856d 100644 --- a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml @@ -172,6 +172,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml b/tests/domaincaps= data/qemu_4.2.0.aarch64.xml index 676e1b0739..533b08606e 100644 --- a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml @@ -170,6 +170,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_4.2.0.ppc64.xml index bcc415d7de..6ade73c86a 100644 --- a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml @@ -143,6 +143,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_4.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_4.2.0.s390x.xml index 4f176e2d37..a4f075412a 100644 --- a/tests/domaincapsdata/qemu_4.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_4.2.0.s390x.xml @@ -249,6 +249,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_4.2.0.x86_64.xml index 36a4081764..1b7e4014c5 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -229,6 +229,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_5.0.0-q35.x86_64.xml index 05884cdb86..1278e930d2 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -231,6 +231,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_5.0.0-tcg.x86_64.xml index c53b84c140..39b1b4c1f2 100644 --- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml @@ -246,6 +246,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_5.0.0-virt.aarch64.xml index e74a3d9f5f..f84aec44c9 100644 --- a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml @@ -185,6 +185,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml b/tests/domaincaps= data/qemu_5.0.0.aarch64.xml index 605575c793..e38a2a01d2 100644 --- a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml @@ -183,6 +183,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_5.0.0.ppc64.xml index a5b718618b..da40c0a876 100644 --- a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml @@ -150,6 +150,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_5.0.0.x86_64.xml index fd1f42b555..71a01cbcbc 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -231,6 +231,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_5.1.0-q35.x86_64.xml index a04c3e7130..1b3fc889d4 100644 --- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml @@ -232,6 +232,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_5.1.0-tcg.x86_64.xml index a7b2ff8d7d..8950900e72 100644 --- a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml @@ -246,6 +246,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.1.0.sparc.xml b/tests/domaincapsda= ta/qemu_5.1.0.sparc.xml index cde31462bc..6f92de2b6c 100644 --- a/tests/domaincapsdata/qemu_5.1.0.sparc.xml +++ b/tests/domaincapsdata/qemu_5.1.0.sparc.xml @@ -117,6 +117,15 @@ spicevmc + + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_5.1.0.x86_64.xml index 45b7dcf6e4..228b0a17c4 100644 --- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml @@ -232,6 +232,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_5.2.0-q35.x86_64.xml index 61cfa7d449..d1f0ec76aa 100644 --- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml @@ -232,6 +232,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_5.2.0-tcg.x86_64.xml index caced52187..edb622240e 100644 --- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml @@ -246,6 +246,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_5.2.0-virt.aarch64.xml index f19ad32693..af01bdfbe9 100644 --- a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml @@ -185,6 +185,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml b/tests/domaincaps= data/qemu_5.2.0.aarch64.xml index 605575c793..e38a2a01d2 100644 --- a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml @@ -183,6 +183,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_5.2.0.ppc64.xml index 8ae7487c1e..33f60ec813 100644 --- a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml @@ -150,6 +150,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_5.2.0.s390x.xml index 760f514d7b..4ff99ebd64 100644 --- a/tests/domaincapsdata/qemu_5.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_5.2.0.s390x.xml @@ -251,6 +251,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_5.2.0.x86_64.xml index 67f8b0fd83..18c2e6b0f7 100644 --- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml @@ -232,6 +232,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_6.0.0-q35.x86_64.xml index 08585e6cb0..2c22538349 100644 --- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml @@ -234,6 +234,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_6.0.0-tcg.x86_64.xml index 7536a42ad5..29b95a836f 100644 --- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml @@ -249,6 +249,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_6.0.0-virt.aarch64.xml index 1235dd0ab7..67889c4572 100644 --- a/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml @@ -187,6 +187,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.0.0.aarch64.xml b/tests/domaincaps= data/qemu_6.0.0.aarch64.xml index 461e34f1d6..f1d4da661f 100644 --- a/tests/domaincapsdata/qemu_6.0.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_6.0.0.aarch64.xml @@ -185,6 +185,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.0.0.s390x.xml b/tests/domaincapsda= ta/qemu_6.0.0.s390x.xml index b1968668db..d404db316b 100644 --- a/tests/domaincapsdata/qemu_6.0.0.s390x.xml +++ b/tests/domaincapsdata/qemu_6.0.0.s390x.xml @@ -252,6 +252,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_6.0.0.x86_64.xml index 632f7c21d1..f0ff745f92 100644 --- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml @@ -234,6 +234,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_6.1.0-q35.x86_64.xml index 35d1014626..bdaf28ec3e 100644 --- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml @@ -235,6 +235,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_6.1.0-tcg.x86_64.xml index 9d56f2dda7..7bfe6f802c 100644 --- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml @@ -249,6 +249,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_6.1.0.x86_64.xml index 591ca12d72..ded6604e04 100644 --- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml @@ -235,6 +235,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_6.2.0-q35.x86_64.xml index 7558e78423..e1f1539140 100644 --- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml @@ -235,6 +235,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_6.2.0-tcg.x86_64.xml index c667b944da..f15111c590 100644 --- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml @@ -251,6 +251,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_6.2.0-virt.aarch64.xml index 2c9ba98a0a..241e893df6 100644 --- a/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml @@ -194,6 +194,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.2.0.aarch64.xml b/tests/domaincaps= data/qemu_6.2.0.aarch64.xml index 9b546f59bc..1f32f6d59a 100644 --- a/tests/domaincapsdata/qemu_6.2.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_6.2.0.aarch64.xml @@ -192,6 +192,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_6.2.0.ppc64.xml index fd7c9d8d5a..69f6818a81 100644 --- a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_6.2.0.ppc64.xml @@ -149,6 +149,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_6.2.0.x86_64.xml index a20d3722fd..688783d267 100644 --- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml @@ -235,6 +235,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_7.0.0-q35.x86_64.xml index ac9d384bb3..ee6abd2f9d 100644 --- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml @@ -236,6 +236,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_7.0.0-tcg.x86_64.xml index 2419875474..6ff9df5766 100644 --- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml @@ -252,6 +252,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_7.0.0-virt.aarch64.xml index f4eb8a728b..6aa5e78612 100644 --- a/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml @@ -193,6 +193,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.0.0.aarch64.xml b/tests/domaincaps= data/qemu_7.0.0.aarch64.xml index 053bec369b..01b2765242 100644 --- a/tests/domaincapsdata/qemu_7.0.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_7.0.0.aarch64.xml @@ -191,6 +191,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_7.0.0.ppc64.xml index 9c09174d77..349223b689 100644 --- a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_7.0.0.ppc64.xml @@ -154,6 +154,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_7.0.0.x86_64.xml index 886e14ea49..45e226e434 100644 --- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml @@ -236,6 +236,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_7.1.0-q35.x86_64.xml index 6b5e8a6820..3fc7ae5551 100644 --- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml @@ -235,6 +235,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_7.1.0-tcg.x86_64.xml index e44804c21c..b8621b5efd 100644 --- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml @@ -250,6 +250,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.1.0.ppc64.xml b/tests/domaincapsda= ta/qemu_7.1.0.ppc64.xml index 15cf6a9cf8..b68fb91c98 100644 --- a/tests/domaincapsdata/qemu_7.1.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_7.1.0.ppc64.xml @@ -147,6 +147,17 @@ unix + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_7.1.0.x86_64.xml index d4069dd6f0..fe5ac06df3 100644 --- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml @@ -235,6 +235,17 @@ spicevmc + + + virtio + + + qemu + + + builtin + + diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_7.2.0-q35.x86_64.xml index e6997ccbc6..50615d437e 100644 --- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml @@ -240,6 +240,18 @@ spicevmc + + + virtio + + + qemu + + + builtin + lkcf + + diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_7.2.0-tcg.x86_64.xml index b9bf0b6a04..a5744e41fa 100644 --- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml @@ -239,6 +239,18 @@ spicevmc + + + virtio + + + qemu + + + builtin + lkcf + + diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_7.2.0.x86_64.xml index 67ecdc0b12..513042e7f2 100644 --- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml @@ -240,6 +240,18 @@ spicevmc + + + virtio + + + qemu + + + builtin + lkcf + + diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_4.2.0.aarch64.xml index 1f42ff6cf9..d77bf558d4 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -115,6 +115,8 @@ + + 4002000 0 61700242 diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_4.2.0.ppc64.xml index 047abcee8c..1e0083ffd9 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -118,6 +118,8 @@ + + 4002000 0 42900242 diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_4.2.0.s390x.xml index 0baeeccb9b..a8a2793802 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -79,6 +79,8 @@ + + 4002000 0 39100242 diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_4.2.0.x86_64.xml index 438927aad0..bc804dacea 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -156,6 +156,8 @@ + + 4002000 0 43100242 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_5.0.0.aarch64.xml index ff989e0878..7f7588b310 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml @@ -127,6 +127,8 @@ + + 5000000 0 61700241 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_5.0.0.ppc64.xml index e336e71831..d0a7f8d3da 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -133,6 +133,8 @@ + + 5000000 0 42900241 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_5.0.0.riscv64.xml index 4ce2594557..8487564c81 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml @@ -119,6 +119,8 @@ + + 5000000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.0.0.x86_64.xml index bf32de2ee4..5eeee85764 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml @@ -165,6 +165,8 @@ + + 5000000 0 43100241 diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemuca= pabilitiesdata/caps_5.1.0.sparc.xml index a791a84940..53b87f73cd 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml @@ -49,6 +49,7 @@ + 5001000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.1.0.x86_64.xml index f8c64b4cc2..029fc43693 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml @@ -169,6 +169,8 @@ + + 5001000 0 43100242 diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_5.2.0.aarch64.xml index 7c8b98b600..4405808cd4 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml @@ -134,6 +134,8 @@ + + 5002000 0 61700243 diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_5.2.0.ppc64.xml index 88807f0c3c..f7f239a611 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml @@ -138,6 +138,8 @@ + + 5002000 0 42900243 diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_5.2.0.riscv64.xml index 1555b5bcb7..d160194727 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml @@ -124,6 +124,8 @@ + + 5002000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_5.2.0.s390x.xml index 4433caa492..e2f6fd0abc 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml @@ -90,6 +90,8 @@ + + 5002000 0 39100243 diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.2.0.x86_64.xml index 4c34fcef02..56b6d91a0c 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml @@ -173,6 +173,8 @@ + + 5002000 0 43100243 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_6.0.0.aarch64.xml index 6f33a827b3..391aec421a 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml @@ -143,6 +143,8 @@ + + 6000000 0 61700242 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_6.0.0.s390x.xml index f269a8935f..0072f860db 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml @@ -99,6 +99,8 @@ + + 6000000 0 39100242 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.0.0.x86_64.xml index ae511fdb96..a1db298ca0 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml @@ -183,6 +183,8 @@ + + 6000000 0 43100242 diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.1.0.x86_64.xml index 72af7d3f01..47ef540a19 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml @@ -188,6 +188,8 @@ + + 6001000 0 43100243 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_6.2.0.aarch64.xml index 10e67e4c5a..4fbfb6c87a 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml @@ -155,6 +155,8 @@ + + 6001050 0 61700244 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_6.2.0.ppc64.xml index 698eb14698..1ebfcc762d 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml @@ -149,6 +149,8 @@ + + 6002000 0 42900244 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0.x86_64.xml index ef1c66a5d7..90c1653ffa 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml @@ -190,6 +190,8 @@ + + 6002000 0 43100244 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_7.0.0.aarch64.xml index a59a91a576..2f69e4c14b 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml @@ -163,6 +163,8 @@ + + 6002092 0 61700243 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_7.0.0.ppc64.xml index e8c3886d14..a9225f61be 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml @@ -167,6 +167,8 @@ + + 7000000 0 42900243 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.0.0.x86_64.xml index d26d0c727a..ff3d21acd6 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml @@ -196,6 +196,8 @@ + + 7000000 0 43100243 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_7.1.0.ppc64.xml index 1f43612703..5be3aee836 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0.ppc64.xml @@ -167,6 +167,8 @@ + + 7001000 0 42900244 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.1.0.x86_64.xml index 8a2ed2236a..ea05803440 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0.x86_64.xml @@ -199,6 +199,8 @@ + + 7001000 0 43100244 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.2.0.x86_64.xml index 821fcd3199..ddb3e04e80 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0.x86_64.xml @@ -201,6 +201,9 @@ + + + 7002000 0 43100245 --=20 2.34.1 From nobody Sat May 18 08:47:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1672803016; cv=none; d=zohomail.com; s=zohoarc; b=CFmMiyWx1OyAJA94DOPmkpykcltTB1xkaRvwSCSaMbA2X3RMbd3jDJd1hK+KNnjrHuRX4XTahE8KPu0Ln+qUJUz9REaJL0XJ6wyBAi2OxwK7OLBWreN3r0mPy0Kr8p99a9g3Zjkc42n8OsvRcjde5KP0WNY5+hR3YT9o5a1j0hE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672803016; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iZMNsbiJ8bX2hfEUgaCiTtShMoPQj0x1UfGQpc2DK8c=; b=PavdJjZ+9a9YFDRiNe0OXsDKnlrHcxIpBspr5sjmSYhQv6EC74EdAvjJt5t+SoVhlnpS26LnpHAWCkuQXyjkDTGv1Q1FYCe/gtTcDHkYIGnVfdeFEctOdCbDDuZzCxlmfy87URKIz5fogxfhE+9mFcrew0y7hclZkqAmzIFhOkA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1672803016965914.4155126834404; Tue, 3 Jan 2023 19:30:16 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-422-vnKcQ_qMM1-Ky1GNFyezpA-1; Tue, 03 Jan 2023 22:30:10 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0FA40802C1D; Wed, 4 Jan 2023 03:30:08 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id EF0792166B2A; Wed, 4 Jan 2023 03:30:07 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id EACB11946A45; Wed, 4 Jan 2023 03:29:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id C767E1947077 for ; Wed, 4 Jan 2023 03:29:58 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id BA6E9C158BB; Wed, 4 Jan 2023 03:29:58 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B352DC158BA for ; Wed, 4 Jan 2023 03:29:58 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 981A3802D1B for ; Wed, 4 Jan 2023 03:29:58 +0000 (UTC) Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-587-lIfolY41MJafzsvzcJnGMA-1; Tue, 03 Jan 2023 22:29:56 -0500 Received: by mail-pf1-f178.google.com with SMTP id 6so19221281pfz.4 for ; Tue, 03 Jan 2023 19:29:56 -0800 (PST) Received: from always-pc.bytedance.net ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id 141-20020a621493000000b005815217e665sm14881863pfu.65.2023.01.03.19.29.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 19:29:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1672803015; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=iZMNsbiJ8bX2hfEUgaCiTtShMoPQj0x1UfGQpc2DK8c=; b=f8qED2azLjVxtV3E3wXH1v04MQW/fQoNShFrosrAnN98g2ZDTqB9Lic4xa9C0SmRMITpgL KAenSyBSMAHJykNDJOczXnLcMb2/B5Ct88UlgR5daFQmWyHVHP1lVsnkZCcBr0U0ub4Zqs ZW8NHQiizn+F+M8QSi9DM4OcKIqcCF8= X-MC-Unique: vnKcQ_qMM1-Ky1GNFyezpA-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: lIfolY41MJafzsvzcJnGMA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iZMNsbiJ8bX2hfEUgaCiTtShMoPQj0x1UfGQpc2DK8c=; b=rceyqwxl/HnJtCyHMnCChOgCFT+r+fbZK3gKPIar+XjrSPmtQGNEacTjE/Cg0fnfJg bTYhUT9UKvr4Z1dCAt4o2PVUWDMRJwY4V2oTf+bnuiNWX/vXBx6PUi1DmqDPEri5xkyM Y6LbiUMaXgEyjq6H3v05lN9ulmffd51FjcIAX3CUAmuniSvobL16NcY8vojsUZkL9cSz FwmKRxY84gZ9w84vnqtV0CsZGtaCo1QZhGfy8BkPe1atJ1/0S4OMqnmmdjFHIMV1potY Vtpdqlbp8YmXED/uYjHB1phWip6HeC1sGeLGdMvXLBBYGabxXLPbkZ1NY5t0Tz2Ysa9k lKvQ== X-Gm-Message-State: AFqh2krMap3MbIjvOGykp5+BU+GwTlcIq9HxjEZrudcXG67sme24v24u GYGd5Q0h3PHHOoIFOyGl2X1J9g== X-Google-Smtp-Source: AMrXdXuLXJdO6OJsLL6oRMTPzCARzZnh8uJsMzydDY1XSxx0GYR+1j6gTpST81hejy6cRD0dKhuoKA== X-Received: by 2002:a05:6a00:b48:b0:581:dda:cec3 with SMTP id p8-20020a056a000b4800b005810ddacec3mr44062686pfo.16.1672802995849; Tue, 03 Jan 2023 19:29:55 -0800 (PST) From: zhenwei pi To: mprivozn@redhat.com Subject: [PATCH 5/7] qemu: alias: support crypto device Date: Wed, 4 Jan 2023 11:29:35 +0800 Message-Id: <20230104032937.3058144-6-pizhenwei@bytedance.com> In-Reply-To: <20230104032937.3058144-1-pizhenwei@bytedance.com> References: <20230104032937.3058144-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libvir-list@redhat.com, helei.sig11@bytedance.com, zhenwei pi Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1672803017542100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Support 'cryptoX' alias for a crypto device. Signed-off-by: zhenwei pi --- src/qemu/qemu_alias.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index ef8e87ab58..de62f57737 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -607,6 +607,26 @@ qemuAssignDeviceIOMMUAlias(virDomainIOMMUDef *iommu) } =20 =20 +static void +qemuAssignDeviceCryptoAlias(virDomainDef *def, + virDomainCryptoDef *crypto) +{ + size_t i; + int maxidx =3D 0; + int idx; + + if (crypto->info.alias) + return; + + for (i =3D 0; i < def->ncryptos; i++) { + if ((idx =3D qemuDomainDeviceAliasIndex(&def->cryptos[i]->info, "c= rypto")) >=3D maxidx) + maxidx =3D idx + 1; + } + + crypto->info.alias =3D g_strdup_printf("crypto%d", maxidx); +} + + int qemuAssignDeviceAliases(virDomainDef *def) { @@ -693,6 +713,9 @@ qemuAssignDeviceAliases(virDomainDef *def) } if (def->iommu) qemuAssignDeviceIOMMUAlias(def->iommu); + for (i =3D 0; i < def->ncryptos; i++) { + qemuAssignDeviceCryptoAlias(def, def->cryptos[i]); + } =20 return 0; } --=20 2.34.1 From nobody Sat May 18 08:47:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1672803018; cv=none; d=zohomail.com; s=zohoarc; b=lyRZC3UId/BrK5kgJyH+E0+CPSePe+vRikRLybyLXAegv4A6bg1SfEvvGaX6hQqi5DY0zwJhUxhP7ORjmJGqlhRdgxHlnUneHhb1MklGedZ9X6K4o8w0IbE2RQToMiH3EPDJMSDTPuabojQgY4jt1h87OW4yLQVD/NBpCq+mnbc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672803018; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IFDVlHv2LLm5VXEKCk1zCbJyDIiOGFVjlePZXvGdZFA=; b=Ti5HZ8umgqjC+Qp/HjlLZSq6Ak4BseofjUDfRCGUlToQW/bZZrVCC/jyjE/SdV3j2W7bQG+mZ9KK2RzRkoFLKwgMJSwnjdjSLpdzZaGewQFhi5tV5gR0AgWa+N7+DWYyXRrHoMwPR5n0eYZbPC9NCz5Q1j6vkD4ZDijlnCYLYFQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1672803018419749.789962322109; Tue, 3 Jan 2023 19:30:18 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-467-A6zfGunUNXWzqILja7OZvw-1; Tue, 03 Jan 2023 22:30:11 -0500 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CD2271823617; Wed, 4 Jan 2023 03:30:08 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id B5D4F492B02; Wed, 4 Jan 2023 03:30:08 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2F9361946A6F; Wed, 4 Jan 2023 03:30:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4945B1946A6D for ; Wed, 4 Jan 2023 03:30:01 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 2F40E1121318; Wed, 4 Jan 2023 03:30:01 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 275B61121315 for ; Wed, 4 Jan 2023 03:30:01 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BF69F857D0D for ; Wed, 4 Jan 2023 03:30:00 +0000 (UTC) Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-632-EgF6y-pjPEWEJnlL9mRKFg-2; Tue, 03 Jan 2023 22:29:58 -0500 Received: by mail-pg1-f172.google.com with SMTP id h192so16584926pgc.7 for ; Tue, 03 Jan 2023 19:29:58 -0800 (PST) Received: from always-pc.bytedance.net ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id 141-20020a621493000000b005815217e665sm14881863pfu.65.2023.01.03.19.29.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 19:29:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1672803017; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=IFDVlHv2LLm5VXEKCk1zCbJyDIiOGFVjlePZXvGdZFA=; b=PVZW3+kCLG4OMsrMLcPyK2OQLlk+oUf76JbXcgFHPfFIfqpScAr/g+XZ75p/vPovN6TdIy wxiyjpppzpPo6UVB2SJrIcXn/l3bOg/g+h+XhL1AuGLfnRfo+ft5eU/Qngs113cnrd0DtY 7nARkN54tP4IIScVJ7xpeHozBdczpPY= X-MC-Unique: A6zfGunUNXWzqILja7OZvw-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: EgF6y-pjPEWEJnlL9mRKFg-2 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IFDVlHv2LLm5VXEKCk1zCbJyDIiOGFVjlePZXvGdZFA=; b=vQs1lZE0i6v/oCBPLIAkxqp7I6z3K16HIN9POU79w8iLsi00dDtRnU14wpBa0N6HrV j0EqHl/JJygD0vwmo2Pnp6RGkAIjQCj+LiLWY422C43Lkr6clLwOIBVQYFSdfQZCXE4C SpqIdmgH43FHkeeHj0ry4ITY7sQx9RgoUd4uWEwJ61khoY6foFG4rWxcgSmB1Wu6AMz0 I27Nt7ax1FCmeWKPeGRtn5qimFLP9DcBbiGyTVigqamOmQIunzCO9Drz8TxEtB75A12e NVpJviG4ACPUW2q++5/oOOEWJrS2SCCqMsnv6H7E86/V9c0wfRjzomuhkigMfA1EK7IG rerQ== X-Gm-Message-State: AFqh2krOV7ShJFgdwMzLl5XNs7ZtEUjuQKD5bIBzQJ6xg/tTOOFWnXsL N5gtsgIL9rHC//SaIRh4qejAJg== X-Google-Smtp-Source: AMrXdXu1vc+rLWO09K8im5vAwZ7dPVta02YkqhwFTclQyP9wolz8LhLC2fdOe8AFeyNvxv8wOCSojg== X-Received: by 2002:a05:6a00:c89:b0:582:8722:bf61 with SMTP id a9-20020a056a000c8900b005828722bf61mr11133466pfv.10.1672802998064; Tue, 03 Jan 2023 19:29:58 -0800 (PST) From: zhenwei pi To: mprivozn@redhat.com Subject: [PATCH 6/7] qemu: command: support crypto device Date: Wed, 4 Jan 2023 11:29:36 +0800 Message-Id: <20230104032937.3058144-7-pizhenwei@bytedance.com> In-Reply-To: <20230104032937.3058144-1-pizhenwei@bytedance.com> References: <20230104032937.3058144-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libvir-list@redhat.com, helei.sig11@bytedance.com, zhenwei pi Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1672803019534100005 Content-Type: text/plain; charset="utf-8"; x-default="true" Support virtio-crypto device, also support cryptodev types: - builtin - lkcf Finally, we can launch a VM(QEMU) with one or more crypto devices by libvirt. Signed-off-by: zhenwei pi --- src/qemu/qemu_command.c | 110 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 4c001f72a5..104bab1221 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -925,6 +925,12 @@ qemuBuildVirtioDevGetConfigDev(const virDomainDeviceDe= f *device, } break; =20 + case VIR_DOMAIN_DEVICE_CRYPTO: { + *baseName =3D "virtio-crypto"; + *virtioOptions =3D device->data.crypto->virtio; + break; + } + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_WATCHDOG: @@ -941,7 +947,6 @@ qemuBuildVirtioDevGetConfigDev(const virDomainDeviceDef= *device, case VIR_DOMAIN_DEVICE_MEMORY: case VIR_DOMAIN_DEVICE_IOMMU: case VIR_DOMAIN_DEVICE_AUDIO: - case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_LAST: default: break; @@ -9837,6 +9842,106 @@ qemuBuildVsockCommandLine(virCommand *cmd, } =20 =20 +static int +qemuBuildCryptoBackendProps(virDomainCryptoDef *crypto, + virJSONValue **props) +{ + g_autofree char *objAlias =3D NULL; + + objAlias =3D g_strdup_printf("obj%s", crypto->info.alias); + + switch ((virDomainCryptoBackend) crypto->backend) { + case VIR_DOMAIN_CRYPTO_BACKEND_BUILTIN: + if (qemuMonitorCreateObjectProps(props, "cryptodev-backend-builtin= ", + objAlias, NULL) < 0) + return -1; + + break; + + case VIR_DOMAIN_CRYPTO_BACKEND_LKCF: + if (qemuMonitorCreateObjectProps(props, "cryptodev-backend-lkcf", + objAlias, NULL) < 0) + return -1; + + break; + + case VIR_DOMAIN_CRYPTO_BACKEND_LAST: + break; + } + + if (virJSONValueObjectAdd(props, + "p:queues", crypto->queues, + NULL) < 0) + return -1; + + + return 0; +} + + +static virJSONValue * +qemuBuildCryptoDevProps(const virDomainDef *def, + virDomainCryptoDef *dev, + virQEMUCaps *qemuCaps) +{ + g_autoptr(virJSONValue) props =3D NULL; + g_autofree char *crypto =3D g_strdup_printf("obj%s", dev->info.alias); + + if (!(props =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_CRYPTO, dev,= qemuCaps))) + return NULL; + + if (virJSONValueObjectAdd(&props, + "s:cryptodev", crypto, + "s:id", dev->info.alias, + NULL) < 0) + return NULL; + + if (qemuBuildDeviceAddressProps(props, def, &dev->info) < 0) + return NULL; + + return g_steal_pointer(&props); +} + + +static int +qemuBuildCryptoCommandLine(virCommand *cmd, + const virDomainDef *def, + virQEMUCaps *qemuCaps) +{ + size_t i; + + for (i =3D 0; i < def->ncryptos; i++) { + g_autoptr(virJSONValue) props =3D NULL; + virDomainCryptoDef *crypto =3D def->cryptos[i]; + g_autoptr(virJSONValue) devprops =3D NULL; + + if (!crypto->info.alias) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Crypto device is missing alias")); + return -1; + } + + if (qemuBuildCryptoBackendProps(crypto, &props) < 0) + return -1; + + if (qemuBuildObjectCommandlineFromJSON(cmd, props, qemuCaps) < 0) + return -1; + + /* add the device */ + if (qemuCommandAddExtDevice(cmd, &crypto->info, def, qemuCaps) < 0) + return -1; + + if (!(devprops =3D qemuBuildCryptoDevProps(def, crypto, qemuCaps))) + return -1; + + if (qemuBuildDeviceCommandlineFromJSON(cmd, devprops, def, qemuCap= s) < 0) + return -1; + } + + return 0; +} + + typedef enum { QEMU_COMMAND_DEPRECATION_BEHAVIOR_NONE =3D 0, QEMU_COMMAND_DEPRECATION_BEHAVIOR_OMIT, @@ -10189,6 +10294,9 @@ qemuBuildCommandLine(virDomainObj *vm, qemuBuildVsockCommandLine(cmd, def, def->vsock, qemuCaps) < 0) return NULL; =20 + if (qemuBuildCryptoCommandLine(cmd, def, qemuCaps) < 0) + return NULL; + if (cfg->logTimestamp) virCommandAddArgList(cmd, "-msg", "timestamp=3Don", NULL); =20 --=20 2.34.1 From nobody Sat May 18 08:47:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com ARC-Seal: i=1; a=rsa-sha256; t=1672803016; cv=none; d=zohomail.com; s=zohoarc; b=Npqr+40Mkqlpup+69/idkgqkGLrwowB+1zAgKkuiTvvdwzSTyPaSKYbvn6khj7J3LzVjbjoHvVqUCIQIdo3BI1XR14q7IJfTwpph1oMS8SBaDk1SmQ0VxA0ooE+2DTP9MSCE4nj9bttNCLqu4CY+V++NsFJISymFvDfN4/KvZ/M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672803016; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PYn0NLwmR1I6YJvJ9nuH73KABNHL8He4H9tL0vWNC7c=; b=BXDQXukH9ieGAhsvzdSKdCEYaq00CxMZpYbo7TMzxd7URerdX1yaJkJaJa/jYZOHdTzaRNT1zwrwXu1Io9OMUwRsoNbiR7Qx/RLUvZvbeoYTMjQCGyUx4TPUFoECfU0Mrl2j6MNJIia6vIV8jVOUQhUaj5fY61EvbCLCaiGXjU8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1672803016953731.2473940233596; Tue, 3 Jan 2023 19:30:16 -0800 (PST) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-428-gyjk8OGKMx6GGgZrC0i1_w-1; Tue, 03 Jan 2023 22:30:11 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6D2A31C08981; Wed, 4 Jan 2023 03:30:09 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 53D5B1121331; Wed, 4 Jan 2023 03:30:09 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6E7C51946A72; Wed, 4 Jan 2023 03:30:04 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 810F519465B1 for ; Wed, 4 Jan 2023 03:30:03 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 5EE0B2166B2B; Wed, 4 Jan 2023 03:30:03 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 56AE02166B2A for ; Wed, 4 Jan 2023 03:30:03 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3D87A18811F4 for ; Wed, 4 Jan 2023 03:30:03 +0000 (UTC) Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-60-YyjI3p0FMDWLkfIUCfPAgQ-1; Tue, 03 Jan 2023 22:30:01 -0500 Received: by mail-pg1-f177.google.com with SMTP id 141so3091763pgc.0 for ; Tue, 03 Jan 2023 19:30:01 -0800 (PST) Received: from always-pc.bytedance.net ([61.213.176.6]) by smtp.gmail.com with ESMTPSA id 141-20020a621493000000b005815217e665sm14881863pfu.65.2023.01.03.19.29.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 19:29:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1672803016; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=PYn0NLwmR1I6YJvJ9nuH73KABNHL8He4H9tL0vWNC7c=; b=Dwm4c8yX81CvTEjADFRzJKnm3GIOW4nqEUlsRGcw+ClydQf1VhdMyRK0yqSO7spwzCHh7E W51MgXEoXfw++YVxM4QpyjgOXM+rkN54TqsjmzNEZi3mMurFQy5wH384XBYDrHVNK9iymU XOyxRVRg4MaDl8ecE+g2uGI5XM9NQdQ= X-MC-Unique: gyjk8OGKMx6GGgZrC0i1_w-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: YyjI3p0FMDWLkfIUCfPAgQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PYn0NLwmR1I6YJvJ9nuH73KABNHL8He4H9tL0vWNC7c=; b=cC4gvHDSAQ9NFdw39XWZtMDKh9C5Dnd5VWRulIf/53HRTYrWVZL5Dcl9EbICkhcheF c9vJc6we0GstrpSUPDat2yCQt/mDdfZDW1PmtrLJaymcf8cLEPXhYW5MgBKsyFE9im7/ /zQd99s9+YEvwYxdV0R875voGdtk1AySVsYJGX+xvCcDlgrWPGTifsF9kJZ2nmqmdQU6 itSxVHEcWjJk3vIsUAmYBixpc7LlrgAvS1RrXLU8xF8PHepr5U6f/SskSeImQM2DucMJ x2/CAl/m9QBNg53aP4RAKVbk/uhSr3cxprGTCf7l7CaClo922hBoQGumG6YN+bZhyk+v 0R7w== X-Gm-Message-State: AFqh2kp6K0twe3BWtSSbv2Yb2mcJe6P5WxLW9WUSZEsUPDHqM1S4PUOV hEHjMnfnfrthkVQIUksu4v5e9Q== X-Google-Smtp-Source: AMrXdXtHaLwu0qsS2w7QPNKLUJ1W4JzJelc6MyHst2w/lVYqlllyB91lfQRH1Pc2XDy6XfOaInMP5w== X-Received: by 2002:a05:6a00:198c:b0:582:d44f:3948 with SMTP id d12-20020a056a00198c00b00582d44f3948mr3440485pfl.18.1672803000316; Tue, 03 Jan 2023 19:30:00 -0800 (PST) From: zhenwei pi To: mprivozn@redhat.com Subject: [PATCH 7/7] NEWS: Document 'crypto' device Date: Wed, 4 Jan 2023 11:29:37 +0800 Message-Id: <20230104032937.3058144-8-pizhenwei@bytedance.com> In-Reply-To: <20230104032937.3058144-1-pizhenwei@bytedance.com> References: <20230104032937.3058144-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libvir-list@redhat.com, helei.sig11@bytedance.com, zhenwei pi Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1672803017542100002 Content-Type: text/plain; charset="utf-8"; x-default="true" Signed-off-by: zhenwei pi --- NEWS.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index 39f508a6ce..7d1943472e 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -17,6 +17,9 @@ v9.0.0 (unreleased) =20 * **New features** =20 + * Support crypto device(virtio crypto only), also add support for QEMU w= ith + backend 'builtin' and 'lkcf'. + * **Improvements** =20 * qemu: Prefer PNG for domain screenshots --=20 2.34.1