From nobody Thu Sep 19 00:52:17 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 1719580748185972.5377536990743; Fri, 28 Jun 2024 06:19:08 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 06406126A; Fri, 28 Jun 2024 09:19:07 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 0DD6E14C0; Fri, 28 Jun 2024 09:13:24 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id BC70C14A7; Fri, 28 Jun 2024 09:13:18 -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 399BA1492 for ; Fri, 28 Jun 2024 09:12:55 -0400 (EDT) Received: from mx-prod-mc-05.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-374-1igDsBIePViKtfoULl6Z9A-1; Fri, 28 Jun 2024 09:12:50 -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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 845E3195608A for ; Fri, 28 Jun 2024 13:12:49 +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 CF8781956054 for ; Fri, 28 Jun 2024 13:12:48 +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=1719580374; 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=rVsuW/i9WF0RBMTI51nHKg+UowVtsAZhT6MEyAu3WQk=; b=NswU0n0oS1mxsBS+PIsrAcrlHzuGKf+suUnbgovOUAGWRzgraqkdVhmNN6J0sPsPJLEJH9 MEVjWU4Pdm9jguOx5fvH+JGJAOhOZGF/7TI6FvacTdWl+f6y40fkaDAMbq2P0fD6qolZiy qXLu9rGNMy4v0bV9n4ZjLHdajnIC/T0= X-MC-Unique: 1igDsBIePViKtfoULl6Z9A-1 From: Michal Privoznik To: devel@lists.libvirt.org Subject: [PATCH 8/8] qemu_domain: Set 'passt' net backend if 'default' is unsupported Date: Fri, 28 Jun 2024 15:12:37 +0200 Message-ID: <9e420eaf35a271bdb6e15142288867dc84b9e610.1719580253.git.mprivozn@redhat.com> 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: UJA4SN2RDB5RMOMRL2MCPRHH6TYFRZND X-Message-ID-Hash: UJA4SN2RDB5RMOMRL2MCPRHH6TYFRZND 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: 1719580748482100001 Content-Type: text/plain; charset="utf-8"; x-default="true" It may happen that QEMU is compiled without SLIRP but with support for passt. In such case it is acceptable to alter user provided configuration and switch backend to passt as it offers all the features as SLIRP. Resolves: https://issues.redhat.com/browse/RHEL-45518 Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/qemu/qemu_domain.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 1a90311ca5..2134b11038 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5975,12 +5975,25 @@ qemuDomainDeviceNetDefPostParse(virDomainNetDef *ne= t, virQEMUCaps *qemuCaps) { if (net->type =3D=3D VIR_DOMAIN_NET_TYPE_VDPA && - !virDomainNetGetModelString(net)) + !virDomainNetGetModelString(net)) { net->model =3D VIR_DOMAIN_NET_MODEL_VIRTIO; - else if (net->type !=3D VIR_DOMAIN_NET_TYPE_HOSTDEV && + } else if (net->type !=3D VIR_DOMAIN_NET_TYPE_HOSTDEV && !virDomainNetGetModelString(net) && - virDomainNetResolveActualType(net) !=3D VIR_DOMAIN_NET_TYPE_HOSTDE= V) + virDomainNetResolveActualType(net) !=3D VIR_DOMAIN_NET_TYPE_HOSTDE= V) { net->model =3D qemuDomainDefaultNetModel(def, qemuCaps); + } + + if (net->type =3D=3D VIR_DOMAIN_NET_TYPE_USER && + net->backend.type =3D=3D VIR_DOMAIN_NET_BACKEND_DEFAULT) { + virDomainCapsDeviceNet netCaps =3D { }; + + virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, &netCaps); + + if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(netCaps.backendType, VIR_DOMAIN_N= ET_BACKEND_DEFAULT) && + VIR_DOMAIN_CAPS_ENUM_IS_SET(netCaps.backendType, VIR_DOMAIN_NE= T_BACKEND_PASST)) { + net->backend.type =3D VIR_DOMAIN_NET_BACKEND_PASST; + } + } =20 return 0; } --=20 2.44.2