From nobody Sun May 19 04:05:40 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1675259400; cv=none; d=zohomail.com; s=zohoarc; b=k96ZHV1kPhpDddP4wkdWRqn3tb9LbpbsK0zyKmnw1/tuGxD6jU5w4NNKi85TdZ+nvZTohs0xJGiWNStuWaOdrfPAEEUpIvCYjeo0i1Gyuw+a9FsnshfNh8okPkfaret86jFbirvLPahR3bO9Od9RnaHEatcCAt2jQYTYrimzfEg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675259400; h=Content-Type:Content-Transfer-Encoding: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=oewH/eaAyyFr62TWvTKcEwHaneb58lwfADysooVTO4A=; b=U6vFflQ4mSn+Lf9Gt6KupCFxDXeUuLELqD2BZoWr869vd0KARCBi4KVN+Cz5Ye0ATYZCwVXLHO5w72m/icC6CjgI+rjTDoEw2Onx+GdVXATStZtl1XZ3HRQsEznfLjV84GTghmAKSrLZWLn8AazVpHhfsSOyq8mBhuzR1G27iAs= 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=pass 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 1675259400446247.79639146249053; Wed, 1 Feb 2023 05:50:00 -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-150-DwT2yLTvNOeQWpsfXFatcw-1; Wed, 01 Feb 2023 08:49:53 -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 DA1DC88B7CE; Wed, 1 Feb 2023 13:49:48 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id C281F2166B39; Wed, 1 Feb 2023 13:49:48 +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 1DB8619465B2; Wed, 1 Feb 2023 13:49:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6E60019465A2 for ; Wed, 1 Feb 2023 13:49:36 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3AD05422F2; Wed, 1 Feb 2023 13:49:36 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.39]) by smtp.corp.redhat.com (Postfix) with ESMTP id D58A253A0 for ; Wed, 1 Feb 2023 13:49:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675259399; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=oewH/eaAyyFr62TWvTKcEwHaneb58lwfADysooVTO4A=; b=cK/NDLlRbd9bGraGjMnOw5ixUb8LiOpMub7Ee+Ln/uW+OwSN29ms+29Dsl935hX64DvTzy sRHcp6P6B2W//L2phFkhBr9aHSs1xF5xXGquuiTajiZC4/3CGTpzqnKNWOLfpcOd25XNvC bQx3T3+BgjHBozP1SVSIEvCRZrVK6nA= X-MC-Unique: DwT2yLTvNOeQWpsfXFatcw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 1/5] domain_conf: Move virDomainNetVhostuserMode enum declaration Date: Wed, 1 Feb 2023 14:49:30 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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: , 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: 1675259402440100001 Content-Type: text/plain; charset="utf-8"; x-default="true" While it's true that the virDomainNetVhostuserMode enum is used solely in virDomainNetDefParseXML(), its placement just above the function is rather unfortunate. Let's put it at the beginning of the file with the rest of the enum declarations/implementations. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1cf2bf84bc..dc5c0b0ba5 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1500,6 +1500,23 @@ VIR_ENUM_IMPL(virDomainLaunchSecurity, "s390-pv", ); =20 +typedef enum { + VIR_DOMAIN_NET_VHOSTUSER_MODE_NONE, + VIR_DOMAIN_NET_VHOSTUSER_MODE_CLIENT, + VIR_DOMAIN_NET_VHOSTUSER_MODE_SERVER, + + VIR_DOMAIN_NET_VHOSTUSER_MODE_LAST +} virDomainNetVhostuserMode; + +VIR_ENUM_DECL(virDomainNetVhostuserMode); +VIR_ENUM_IMPL(virDomainNetVhostuserMode, + VIR_DOMAIN_NET_VHOSTUSER_MODE_LAST, + "", + "client", + "server", +); + + static virClass *virDomainObjClass; static virClass *virDomainXMLOptionClass; static void virDomainObjDispose(void *obj); @@ -9222,23 +9239,6 @@ virDomainNetDefParseXMLRequireSource(virDomainNetDef= *def, } =20 =20 -typedef enum { - VIR_DOMAIN_NET_VHOSTUSER_MODE_NONE, - VIR_DOMAIN_NET_VHOSTUSER_MODE_CLIENT, - VIR_DOMAIN_NET_VHOSTUSER_MODE_SERVER, - - VIR_DOMAIN_NET_VHOSTUSER_MODE_LAST -} virDomainNetVhostuserMode; - -VIR_ENUM_DECL(virDomainNetVhostuserMode); -VIR_ENUM_IMPL(virDomainNetVhostuserMode, - VIR_DOMAIN_NET_VHOSTUSER_MODE_LAST, - "", - "client", - "server", -); - - static virDomainNetDef * virDomainNetDefParseXML(virDomainXMLOption *xmlopt, xmlNodePtr node, --=20 2.39.1 From nobody Sun May 19 04:05:40 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1675259450; cv=none; d=zohomail.com; s=zohoarc; b=lhQ1sjNK/ZsB104/iWBWdnSIRy1wSgbc2+DGaSvKScJZ9yXBcMhDZiY2nwtrgIlDlEfi0KEEwSTZu6hmhuF8EEYQReg3jzaOMoFzx0eaAboZ0BrfbRwmwdlryuIYenC80KL4wH81NXA7CdfjKhOwkgM0CYXPOC01I88u4hTC6tI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675259450; h=Content-Type:Content-Transfer-Encoding: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=UeB1I01QBtmrj+I4zp3K3QB/vEAXLie9v+w/4FDCFb4=; b=mDPcnjakSBizEsHTxZo+2CzOl5GFJRvqykfxTIKmZx/MHds0aHbwaAIXW5GAMFmARUmzg0cgHw0MDnWNs+ZOhch31vGE8XC38DJptdYx774LolcIk+neiKsD8ir879NwYtNeAjSGyh3/XWlxhBQGvUOSwaAdGDkguQsKGCXjzTI= 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=pass 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 1675259450608932.629237588257; Wed, 1 Feb 2023 05:50:50 -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-675-x7U-1T3ON4GSUogjjWqKUg-1; Wed, 01 Feb 2023 08:49:55 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3896F823D65; Wed, 1 Feb 2023 13:49:48 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id EBBE9140EBF6; Wed, 1 Feb 2023 13:49:47 +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 93CAA1946A70; Wed, 1 Feb 2023 13:49:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 7778719465B1 for ; Wed, 1 Feb 2023 13:49:36 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id C9987422FE; Wed, 1 Feb 2023 13:49:36 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.39]) by smtp.corp.redhat.com (Postfix) with ESMTP id 711ED53A0 for ; Wed, 1 Feb 2023 13:49:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675259449; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=UeB1I01QBtmrj+I4zp3K3QB/vEAXLie9v+w/4FDCFb4=; b=bPFxZm5MkPAOz3B/by5GNdDL9VufVDLLRR5Hmf+oDTh5gzXVBk694bzhhwOhtLbAVwyct4 KPt21fJ9F9LNhBqJrmnlqhmJGfm6ACjYh6d2BAnQnNa7SRsy8i4ZFAwGjs0fKubvmg+CIn RoCU2tAb6BE/rWGleNDFAV5WtWgGucQ= X-MC-Unique: x7U-1T3ON4GSUogjjWqKUg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 2/5] domain_conf: Rewrite virDomainChrSourceModeTypeFromString() using VIR_ENUM_IMPL() Date: Wed, 1 Feb 2023 14:49:31 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 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: 1675259454863100001 Content-Type: text/plain; charset="utf-8"; x-default="true" In domain_conf.c there's virDomainChrSourceModeTypeFromString() which is open coded. Let's rewrite it using VIR_ENUM_DECL() + VIR_ENUM_IMPL() combo. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index dc5c0b0ba5..4920f04bd0 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1516,6 +1516,21 @@ VIR_ENUM_IMPL(virDomainNetVhostuserMode, "server", ); =20 +typedef enum { + VIR_DOMAIN_CHR_SOURCE_MODE_CONNECT, + VIR_DOMAIN_CHR_SOURCE_MODE_BIND, + + VIR_DOMAIN_CHR_SOURCE_MODE_LAST +} virDomainChrSourceMode; + + +VIR_ENUM_DECL(virDomainChrSourceMode); +VIR_ENUM_IMPL(virDomainChrSourceMode, + VIR_DOMAIN_CHR_SOURCE_MODE_LAST, + "connect", + "bind", +); + =20 static virClass *virDomainObjClass; static virClass *virDomainXMLOptionClass; @@ -9846,26 +9861,6 @@ virDomainChrDefParseTargetXML(virDomainChrDef *def, return 0; } =20 -typedef enum { - VIR_DOMAIN_CHR_SOURCE_MODE_CONNECT, - VIR_DOMAIN_CHR_SOURCE_MODE_BIND, -} virDomainChrSourceModeType; - - -static int -virDomainChrSourceModeTypeFromString(const char *str) -{ - if (!str) - return -1; - - if (STREQ(str, "connect")) - return VIR_DOMAIN_CHR_SOURCE_MODE_CONNECT; - if (STREQ(str, "bind")) - return VIR_DOMAIN_CHR_SOURCE_MODE_BIND; - - return -1; -} - =20 static int virDomainChrSourceDefParseTCP(virDomainChrSourceDef *def, @@ -9873,7 +9868,7 @@ virDomainChrSourceDefParseTCP(virDomainChrSourceDef *= def, xmlXPathContextPtr ctxt, unsigned int flags) { - virDomainChrSourceModeType mode; + virDomainChrSourceMode mode; =20 if (virXMLPropEnumDefault(source, "mode", virDomainChrSourceModeTypeFr= omString, VIR_XML_PROP_NONE, &mode, @@ -9911,7 +9906,7 @@ static int virDomainChrSourceDefParseUDP(virDomainChrSourceDef *def, xmlNodePtr source) { - virDomainChrSourceModeType mode; + virDomainChrSourceMode mode; =20 if (virXMLPropEnumDefault(source, "mode", virDomainChrSourceModeTypeFr= omString, VIR_XML_PROP_NONE, &mode, @@ -9937,7 +9932,7 @@ virDomainChrSourceDefParseUnix(virDomainChrSourceDef = *def, xmlNodePtr source, xmlXPathContextPtr ctxt) { - virDomainChrSourceModeType mode; + virDomainChrSourceMode mode; =20 if (virXMLPropEnumDefault(source, "mode", virDomainChrSourceModeTypeFr= omString, VIR_XML_PROP_NONE, &mode, --=20 2.39.1 From nobody Sun May 19 04:05:40 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1675259399; cv=none; d=zohomail.com; s=zohoarc; b=g+jU/Rdu24FE4qT23uHj/Q6V2MN91JufmUH/XUry2Sc3MLx5hJTJ0BF36cv0uhqFZitxFH+IsJ99ajkHMuvImgO7hHeIn2YlEqFYw7qhX3DXsAKmtd65V5IhD8yzHppj1EyVC0xqgTdI6+USxntHq/XK1zOyODvffLLANHIn1xk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675259399; h=Content-Type:Content-Transfer-Encoding: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=VH/RAImybgLJLkpX01yoFYrQdi1E61qFt5d32CqM4DQ=; b=i0LTq0OdMInpBeBRMtegwjROkOo0eejiMKxwNAs0M5N6OsBx08GrZ7e4egCHPu5sYj3RXJaNA0TlO0/xkXIGW43G0ypvDPjTyBQEPylqrYT7IfZfEeoy/0V/vGBWM4iGIv6kotdtUkoO8is9QxJHPtqwfz835cDPsut12GFplVA= 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=pass 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 1675259399610740.2926427083565; Wed, 1 Feb 2023 05:49:59 -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-74-uzcrds-FN1CbObSzEQquxg-1; Wed, 01 Feb 2023 08:49:55 -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 3815185570F; Wed, 1 Feb 2023 13:49:48 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1F014112132E; Wed, 1 Feb 2023 13:49:47 +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 2646E1946A43; Wed, 1 Feb 2023 13:49:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6E68B19465A3 for ; Wed, 1 Feb 2023 13:49:37 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 648F443FB3; Wed, 1 Feb 2023 13:49:37 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.39]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0C5DA53A0 for ; Wed, 1 Feb 2023 13:49:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675259398; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=VH/RAImybgLJLkpX01yoFYrQdi1E61qFt5d32CqM4DQ=; b=iU805Mu1jDX7JZWBllX1zMdxLU5EA1mhs9CoJTtwrFWAkInwGbXVpHeMS7ek/r9+jm3dbW Qv0AsWjEdSpkHzvNUVvax4D8IvjigBti+cHIYLb11cavYaMAHKPqbeqkXYnFKWXGR5raqG vT2xIKy4HKjRPOvJez80M6PNzEWJpd0= X-MC-Unique: uzcrds-FN1CbObSzEQquxg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 3/5] virnetdevmacvlan: Drop G_GNUC_WARN_UNUSED_RESULT annotation for virNetDevMacVLanDeleteWithVPortProfile() Date: Wed, 1 Feb 2023 14:49:32 +0100 Message-Id: <8f996f7fd0f2c09da5e1e87dc5f99a0725ab1204.1675259355.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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: , 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: 1675259400323100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Every single caller of the virNetDevMacVLanDeleteWithVPortProfile() function is calling it wrapped inside of ignore_value() macro. This is because the function is annotated as G_GNUC_WARN_UNUSED_RESULT. This makes no sense. Drop the annotation and the macro envelope. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_hotplug.c | 22 ++++++++++------------ src/qemu/qemu_process.c | 11 +++++------ src/util/virnetdevmacvlan.h | 2 +- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 538fa502c4..c490e2b97a 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1378,12 +1378,11 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, virErrorRestore(&originalError); =20 if (virDomainNetGetActualType(net) =3D=3D VIR_DOMAIN_NET_TYPE_= DIRECT) { - ignore_value(virNetDevMacVLanDeleteWithVPortProfile( - net->ifname, &net->mac, - virDomainNetGetActualDirectDev(net), - virDomainNetGetActualDirectMode(net), - virDomainNetGetActualVirtPortProfile(net), - cfg->stateDir)); + virNetDevMacVLanDeleteWithVPortProfile(net->ifname, &net->= mac, + virDomainNetGetActu= alDirectDev(net), + virDomainNetGetActu= alDirectMode(net), + virDomainNetGetActu= alVirtPortProfile(net), + cfg->stateDir); } =20 qemuDomainNetDeviceVportRemove(net); @@ -4653,12 +4652,11 @@ qemuDomainRemoveNetDevice(virQEMUDriver *driver, } =20 if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_DIRECT) { - ignore_value(virNetDevMacVLanDeleteWithVPortProfile( - net->ifname, &net->mac, - virDomainNetGetActualDirectDev(net), - virDomainNetGetActualDirectMode(net), - virDomainNetGetActualVirtPortProfile(net), - cfg->stateDir)); + virNetDevMacVLanDeleteWithVPortProfile(net->ifname, &net->mac, + virDomainNetGetActualDirect= Dev(net), + virDomainNetGetActualDirect= Mode(net), + virDomainNetGetActualVirtPo= rtProfile(net), + cfg->stateDir); } =20 if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_VHOSTUSER) { diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 4afd12e3fa..9a31a11acc 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -8443,12 +8443,11 @@ void qemuProcessStop(virQEMUDriver *driver, vport =3D virDomainNetGetActualVirtPortProfile(net); switch (virDomainNetGetActualType(net)) { case VIR_DOMAIN_NET_TYPE_DIRECT: - ignore_value(virNetDevMacVLanDeleteWithVPortProfile( - net->ifname, &net->mac, - virDomainNetGetActualDirectDev(net), - virDomainNetGetActualDirectMode(net), - virDomainNetGetActualVirtPortProfile(net), - cfg->stateDir)); + virNetDevMacVLanDeleteWithVPortProfile(net->ifname, &net->mac, + virDomainNetGetActualDi= rectDev(net), + virDomainNetGetActualDi= rectMode(net), + virDomainNetGetActualVi= rtPortProfile(net), + cfg->stateDir); break; case VIR_DOMAIN_NET_TYPE_ETHERNET: if (net->managed_tap !=3D VIR_TRISTATE_BOOL_NO && net->ifname)= { diff --git a/src/util/virnetdevmacvlan.h b/src/util/virnetdevmacvlan.h index 29bb8123f4..a5c34d6417 100644 --- a/src/util/virnetdevmacvlan.h +++ b/src/util/virnetdevmacvlan.h @@ -92,7 +92,7 @@ int virNetDevMacVLanDeleteWithVPortProfile(const char *if= name, const virNetDevVPortProfile *vi= rtPortProfile, char *stateDir) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) - ATTRIBUTE_NONNULL(6) G_GNUC_WARN_UNUSED_RESULT; + ATTRIBUTE_NONNULL(6); =20 int virNetDevMacVLanRestartWithVPortProfile(const char *cr_ifname, const virMacAddr *macaddress, --=20 2.39.1 From nobody Sun May 19 04:05:40 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1675259465; cv=none; d=zohomail.com; s=zohoarc; b=i7h4NIoEHXKV1ocOpKnvSgZXfyLLpTSmEO17xAmG5OnLCY/tyG0DcIKGTCIG11tfyr/04jzJWodoKl51yNixJuL08lngQZfjNCD48Y0imCugvyfRehRpBV+oSw+POEEYBNziD7K7Eqd0q7wH9oq+HAdma0O8hHbGKhXRzhlSI7o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675259465; h=Content-Type:Content-Transfer-Encoding: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=86CPh47mnHp+fx2dugH6v3azuRlsHRDUxWetrob7zkg=; b=cFK0Mfnsv2mnj/bUKaXbDwnXIU5gDHTFeVxlNsDR1qOZfv/1F0l+PDZxUGE7colx5LUM1WuyEOObfPe5Sb30Z4EZvbSB2723L74tHjdWPkHIGDl2aRRpXP1EV25s1Vj7L4iXYz2C+PlzQZOlQamtD/5n6F7EFCUAG8HSjmtbpV4= 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=pass 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 1675259465141121.64861561717953; Wed, 1 Feb 2023 05:51:05 -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-185-F3JaswYrOVGpCg9gZXanqw-1; Wed, 01 Feb 2023 08:49:55 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 36E263C1025A; Wed, 1 Feb 2023 13:49:48 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8183D53A0; Wed, 1 Feb 2023 13:49:47 +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 5C47F1946A61; Wed, 1 Feb 2023 13:49:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 7093F19465A4 for ; Wed, 1 Feb 2023 13:49:38 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id F39AD43FBA; Wed, 1 Feb 2023 13:49:37 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.39]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9AA0753A0 for ; Wed, 1 Feb 2023 13:49:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675259464; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=86CPh47mnHp+fx2dugH6v3azuRlsHRDUxWetrob7zkg=; b=B//1vXljUT/2sCKQnOB0kSIQiB8q/Qi+P0vmtFQVccS3HDqXI+GXATdqGAEuFqXeZu0Ttc nmXTNizoNIVK6ZYW4kkVsjofidCueHnUIURw0hKM9Z4lRIE+4TGLzuciBiEBDwncp3oczR DWQq7XSUO+QuQJN5ItaNe4swIutuwpg= X-MC-Unique: F3JaswYrOVGpCg9gZXanqw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 4/5] conf: Format and parse private data for virDomainNetDef Date: Wed, 1 Feb 2023 14:49:33 +0100 Message-Id: <44e79df9376b5ff5a24e8c4b741701d32105ad4f.1675259355.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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: 1675259471549100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainNetDef struct has privateData (which is currently used by QEMU driver to store FDs opened during cmd line building phase and pass them onto cmd line). Soon, we will need to store additional information that needs to survive daemon restart. Let's introduce machinery for parsing and formatting privateData. Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 51 ++++++++++++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 7 ++++++ 2 files changed, 58 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4920f04bd0..6e33a4472f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9254,6 +9254,29 @@ virDomainNetDefParseXMLRequireSource(virDomainNetDef= *def, } =20 =20 +static int +virDomainNetDefParsePrivateData(xmlXPathContextPtr ctxt, + virDomainNetDef *net, + virDomainXMLOption *xmlopt) +{ + xmlNodePtr private_node =3D virXPathNode("./privateData", ctxt); + VIR_XPATH_NODE_AUTORESTORE(ctxt) + + if (!xmlopt || + !xmlopt->privateData.networkParse || + !private_node) + return 0; + + ctxt->node =3D private_node; + + if (xmlopt->privateData.networkParse(ctxt, net) < 0) + return -1; + + return 0; +} + + + static virDomainNetDef * virDomainNetDefParseXML(virDomainXMLOption *xmlopt, xmlNodePtr node, @@ -9672,6 +9695,10 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt, if (virNetworkPortOptionsParseXML(ctxt, &def->isolatedPort) < 0) return NULL; =20 + if (flags & VIR_DOMAIN_DEF_PARSE_STATUS && + virDomainNetDefParsePrivateData(ctxt, def, xmlopt) < 0) + return NULL; + return g_steal_pointer(&def); } =20 @@ -23668,6 +23695,27 @@ virDomainNetPortForwardsFormat(virBuffer *buf, } =20 =20 +static int +virDomainNetDefFormatPrivateData(virBuffer *buf, + virDomainNetDef *net, + unsigned int flags, + virDomainXMLOption *xmlopt) +{ + g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); + + if (!(flags & VIR_DOMAIN_DEF_FORMAT_STATUS) || + !xmlopt || + !xmlopt->privateData.networkFormat) + return 0; + + if (xmlopt->privateData.networkFormat(net, &childBuf) < 0) + return -1; + + virXMLFormatElement(buf, "privateData", NULL, &childBuf); + return 0; +} + + int virDomainNetDefFormat(virBuffer *buf, virDomainNetDef *def, @@ -23965,6 +24013,9 @@ virDomainNetDefFormat(virBuffer *buf, virDomainDeviceInfoFormat(buf, &def->info, flags | VIR_DOMAIN_DEF_FORM= AT_ALLOW_BOOT | VIR_DOMAIN_DEF_FORM= AT_ALLOW_ROM); =20 + if (virDomainNetDefFormatPrivateData(buf, def, flags, xmlopt) < 0) + return -1; + virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "\n"); return 0; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 631cef03fd..1a80399c9c 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3357,6 +3357,11 @@ typedef int (*virDomainXMLPrivateDataTPMParseFunc)(x= mlXPathContextPtr ctxt, typedef int (*virDomainXMLPrivateDataTPMFormatFunc)(const virDomainTPMDef = *tpm, virBuffer *buf); =20 +typedef int (*virDomainXMLPrivateDataNetParseFunc)(xmlXPathContextPtr ctxt, + virDomainNetDef *net); +typedef int (*virDomainXMLPrivateDataNetFormatFunc)(const virDomainNetDef = *net, + virBuffer *buf); + struct _virDomainXMLPrivateDataCallbacks { virDomainXMLPrivateDataAllocFunc alloc; virDomainXMLPrivateDataFreeFunc free; @@ -3371,6 +3376,8 @@ struct _virDomainXMLPrivateDataCallbacks { virDomainXMLPrivateDataNewFunc cryptoNew; virDomainXMLPrivateDataNewFunc graphicsNew; virDomainXMLPrivateDataNewFunc networkNew; + virDomainXMLPrivateDataNetParseFunc networkParse; + virDomainXMLPrivateDataNetFormatFunc networkFormat; virDomainXMLPrivateDataNewFunc videoNew; virDomainXMLPrivateDataNewFunc fsNew; virDomainXMLPrivateDataTPMParseFunc tpmParse; --=20 2.39.1 From nobody Sun May 19 04:05:40 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1675259399; cv=none; d=zohomail.com; s=zohoarc; b=HyIUADUjTcXAsusj5wZifvjD2t5Yhpr+TOJvNC6lBahxQoXG/cj3JRotjYaenKisztSGxtY4P8xeKRrb5CtSLYqWVQb+WO/Z4IsoyeoVIqxOC7jVOxpoi4si4AAciB47HV0ocSmpQJPwNvwx6twNmz2s1Z3+5dXOXk4co4AcSCw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675259399; h=Content-Type:Content-Transfer-Encoding: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=jl4yXLhZrPHRPE0mgrVOZGm9vTxc2GeMjyi9FYlAqFU=; b=SY97mLrt62XOqZxqV4GgcSDvST7MeFzT8saqAKVuVetfYb0MaJ/e7z3Ekfn8GNrKl+XC96eiKZKT1Hye0PZbt2/n9oecyc9BKCAESaAa0iTLxET3+XlM0MG0nW/wZhk25CQ2yfbDl+Jx9s+9v62Dadsx0paf1QF7pxryy5KjI8I= 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=pass 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 1675259399370199.41384023102148; Wed, 1 Feb 2023 05:49:59 -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-226-pC3BdIMTOJaGss6KgWqs4g-1; Wed, 01 Feb 2023 08:49:54 -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 7AC5488B7AC; Wed, 1 Feb 2023 13:49:48 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6858B492B05; Wed, 1 Feb 2023 13:49:48 +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 C71F31947343; Wed, 1 Feb 2023 13:49:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 89992194658F for ; Wed, 1 Feb 2023 13:49:44 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 9079443FB8; Wed, 1 Feb 2023 13:49:38 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.39]) by smtp.corp.redhat.com (Postfix) with ESMTP id 36B3353A0 for ; Wed, 1 Feb 2023 13:49:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675259396; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=jl4yXLhZrPHRPE0mgrVOZGm9vTxc2GeMjyi9FYlAqFU=; b=Tr9NZ3a+5Pc0Ck420fBG+0CpI1Ahe04k9iiVyn3lwobe/iNPFnssCoPUs56aBQynXIz/jH LWcdylbdFw3o20IstpY+44n5YQc+Y+QzTJ4iNopdbtWqksZ2NVh/XkcUt5PTuKelsNGZqd MGmClWXCXsEjQ9QvrVFl0CGonfewF4s= X-MC-Unique: pC3BdIMTOJaGss6KgWqs4g-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 5/5] qemu: Don't remove macvtaps on failed start Date: Wed, 1 Feb 2023 14:49:34 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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: , 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: 1675259400345100002 Content-Type: text/plain; charset="utf-8"; x-default="true" If a domain is configured to create a macvtap/macvlan but the target link already exists, startup fails (as expected) with: error: error creating macvtap interface test@eth0 (52:54:00:d9:0b:db): Fi= le exists Okay, we could make that error message better, but that's not the point. Since this error originated while generating cmd line (the caller is qemuProcessStart(), transitively), the cleanup after failed start is performed (qemuProcessStop()). Here, virNetDevMacVLanDeleteWithVPortProfile() is called which removes the macvtap interface we did not create (as it made us fail in the first place). Therefore, we need to track which macvtap/macvlan interface was created successfully and remove only those. You'll notice that only qemuProcessStop() has the new check. For the (failed) hotplug case (qemuDomainAttachNetDevice()) this function is already in place (the @iface_connected variable), or not needed (qemuDomainRemoveNetDevice() - we're removing an interface that was already attached to QEMU). Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=3D2166235 Signed-off-by: Michal Privoznik Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 27 +++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 5 +++++ src/qemu/qemu_interface.c | 3 +++ src/qemu/qemu_process.c | 12 +++++++----- 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 1757a6aaad..e9bc0f375d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1235,6 +1235,31 @@ qemuDomainTPMPrivateFormat(const virDomainTPMDef *tp= m, } =20 =20 +static int +qemuDomainNetworkPrivateParse(xmlXPathContextPtr ctxt, + virDomainNetDef *net) +{ + qemuDomainNetworkPrivate *priv =3D QEMU_DOMAIN_NETWORK_PRIVATE(net); + + priv->created =3D virXPathBoolean("string(./created[@value=3D'yes'])",= ctxt); + + return 0; +} + + +static int +qemuDomainNetworkPrivateFormat(const virDomainNetDef *net, + virBuffer *buf) +{ + qemuDomainNetworkPrivate *priv =3D QEMU_DOMAIN_NETWORK_PRIVATE(net); + + if (priv->created) + virBufferAddLit(buf, "\n"); + + return 0; +} + + /* qemuDomainSecretInfoSetup: * @priv: pointer to domain private object * @alias: alias of the secret @@ -3328,6 +3353,8 @@ virDomainXMLPrivateDataCallbacks virQEMUDriverPrivate= DataCallbacks =3D { .vsockNew =3D qemuDomainVsockPrivateNew, .graphicsNew =3D qemuDomainGraphicsPrivateNew, .networkNew =3D qemuDomainNetworkPrivateNew, + .networkParse =3D qemuDomainNetworkPrivateParse, + .networkFormat =3D qemuDomainNetworkPrivateFormat, .videoNew =3D qemuDomainVideoPrivateNew, .tpmNew =3D qemuDomainTPMPrivateNew, .tpmParse =3D qemuDomainTPMPrivateParse, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index eca5404cdc..1053d1d4cb 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -412,6 +412,11 @@ typedef struct _qemuDomainNetworkPrivate qemuDomainNet= workPrivate; struct _qemuDomainNetworkPrivate { virObject parent; =20 + /* True if the device was created by us. Otherwise we should + * avoid removing it. Currently only used for + * VIR_DOMAIN_NET_TYPE_DIRECT. */ + bool created; + qemuSlirp *slirp; =20 /* file descriptor transfer helpers */ diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c index ed2c209167..076640cbde 100644 --- a/src/qemu/qemu_interface.c +++ b/src/qemu/qemu_interface.c @@ -268,6 +268,7 @@ qemuInterfaceDirectConnect(virDomainDef *def, char *res_ifname =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); unsigned int macvlan_create_flags =3D VIR_NETDEV_MACVLAN_CREATE_WITH_T= AP; + qemuDomainNetworkPrivate *netpriv =3D QEMU_DOMAIN_NETWORK_PRIVATE(net); =20 if (qemuInterfaceIsVnetCompatModel(net)) macvlan_create_flags |=3D VIR_NETDEV_MACVLAN_VNET_HDR; @@ -285,6 +286,8 @@ qemuInterfaceDirectConnect(virDomainDef *def, macvlan_create_flags) < 0) goto cleanup; =20 + netpriv->created =3D true; + virDomainAuditNetDevice(def, net, res_ifname, true); VIR_FREE(net->ifname); net->ifname =3D res_ifname; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 9a31a11acc..ff219e0030 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -8443,11 +8443,13 @@ void qemuProcessStop(virQEMUDriver *driver, vport =3D virDomainNetGetActualVirtPortProfile(net); switch (virDomainNetGetActualType(net)) { case VIR_DOMAIN_NET_TYPE_DIRECT: - virNetDevMacVLanDeleteWithVPortProfile(net->ifname, &net->mac, - virDomainNetGetActualDi= rectDev(net), - virDomainNetGetActualDi= rectMode(net), - virDomainNetGetActualVi= rtPortProfile(net), - cfg->stateDir); + if (QEMU_DOMAIN_NETWORK_PRIVATE(net)->created) { + virNetDevMacVLanDeleteWithVPortProfile(net->ifname, &net->= mac, + virDomainNetGetActu= alDirectDev(net), + virDomainNetGetActu= alDirectMode(net), + virDomainNetGetActu= alVirtPortProfile(net), + cfg->stateDir); + } break; case VIR_DOMAIN_NET_TYPE_ETHERNET: if (net->managed_tap !=3D VIR_TRISTATE_BOOL_NO && net->ifname)= { --=20 2.39.1