From nobody Thu Sep 19 01:10:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 17195807290021021.4376732952811; Fri, 28 Jun 2024 06:18:49 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id D20571473; Fri, 28 Jun 2024 09:18:47 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 4491013D0; Fri, 28 Jun 2024 09:13:22 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id EEBB713F6; Fri, 28 Jun 2024 09:13:14 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A177F1397 for ; Fri, 28 Jun 2024 09:12:52 -0400 (EDT) Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-302-nCkpju0cNR2-kD02XpXA6g-1; Fri, 28 Jun 2024 09:12:49 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 77F32195608F for ; Fri, 28 Jun 2024 13:12:48 +0000 (UTC) Received: from maggie.brq.redhat.com (unknown [10.43.3.102]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C2C6719560A3 for ; Fri, 28 Jun 2024 13:12:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1719580372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DKqBX5HLjH7/jIb46Lq04dAJxtUT5gHT+FOqmdEAP+4=; b=MuHerAOX9SYIvWgvo0bGQQWH24h44wj9AgD8LCgWH8iYTgztHULj0oNj8ZRIAnvX4iVmHy kXoL+3kiguyz7JhkVXlo4xPh/v/5fyqZLxaFqntY7LLgrW9llGCNEBxJE+Z2XAiEPgTWYq BeeybmF/xyca1PouuKpXgDVmCUufzX0= X-MC-Unique: nCkpju0cNR2-kD02XpXA6g-1 From: Michal Privoznik To: devel@lists.libvirt.org Subject: [PATCH 7/8] qemu_validate: Use domaincaps to validate supported net backend type Date: Fri, 28 Jun 2024 15:12:36 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 7CHLOQNVLK6QPMBDOBET4LN3KOGOXZKS X-Message-ID-Hash: 7CHLOQNVLK6QPMBDOBET4LN3KOGOXZKS X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1719580730549100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Now that the logic for detecting supported net backend types has been moved to domain capabilities generation, we can just use it when validating net backend type. Just like we do for device models and so on. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/qemu/qemu_validate.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 23d642c1ce..8840306bfd 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1705,28 +1705,18 @@ qemuValidateDomainDeviceDefNetwork(const virDomainN= etDef *net, size_t i; =20 if (net->type =3D=3D VIR_DOMAIN_NET_TYPE_USER) { - switch (net->backend.type) { - case VIR_DOMAIN_NET_BACKEND_DEFAULT: - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_USER)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("the '%1$s' network backend is not suppor= ted with this QEMU binary"), - virDomainNetBackendTypeToString(net->backen= d.type)); - return -1; - } - break; + virDomainCapsDeviceNet netCaps =3D { }; =20 - case VIR_DOMAIN_NET_BACKEND_PASST: - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("the '%1$s' network backend is not suppor= ted with this QEMU binary"), - virDomainNetBackendTypeToString(net->backen= d.type)); - return -1; - } - break; + virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, &netCaps); =20 - case VIR_DOMAIN_NET_BACKEND_LAST: - break; + if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(netCaps.backendType, + net->backend.type)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("the '%1$s' network backend is not supported = with this QEMU binary"), + virDomainNetBackendTypeToString(net->backend.ty= pe)); + return -1; } + if (net->guestIP.nroutes) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid attempt to set network interface gue= st-side IP route, not supported by QEMU")); --=20 2.44.2