From nobody Tue Oct 28 08:15:02 2025 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=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1759764002; cv=pass; d=zohomail.com; s=zohoarc; b=Xys/bewZLn+wuK3EffOLoSdSz3SaJGaqeyklxVbmTw8Gr58m2yYythOM17Drk67v/FMsgRt0qTz3mpj7hjq12MIQf6YrRt/yVdLBvVRgkxC02h5UCTTQLL4hiULyaCeub8iFvdQyNlbu4A8AiM4EC5sIboMgGWwAX+BP+9QzJTg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759764002; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=JygYs8NDjYjwTRy5FMeG88GW/iQOc8svmorfAH3Iohc=; b=nd9dugoWymKk/9KZ2WTWvyWp/CNJmeI5FKt1MWVua0UsTNQ3G8HJ02kX7pmDsRpdB91HC3NCaigUdKJVq5y6k6oixRpvAYJh/Wie/0ZtXJhkTfpH0XuFsqDEQNQRO8MkP9WXTc97C4Fhfm8HOyyDKlp6auVX/FCeN+tGK+m5wtc= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1759764001440918.7306755364178; Mon, 6 Oct 2025 08:20:01 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id ECF1D4435F; Mon, 6 Oct 2025 11:19:21 -0400 (EDT) Received: from [172.19.199.17] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id BC7AE442DD; Mon, 6 Oct 2025 11:18:53 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E65AC442E0; Mon, 6 Oct 2025 11:18:22 -0400 (EDT) Received: from FR5P281CU006.outbound.protection.outlook.com (mail-germanywestcentralazon11022089.outbound.protection.outlook.com [40.107.149.89]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 3EBE441BD9 for ; Mon, 6 Oct 2025 11:18:21 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEYP281MB5624.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9182.20; Mon, 6 Oct 2025 15:18:18 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9182.017; Mon, 6 Oct 2025 15:18:18 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x/sxkj6IoYpUGWGjqrAGZFyAe49PDEkChIc9khgVdm9WTKKuZYQ4G+HU/TGtFBQoVYGYDAMOl7r93fF8P0SIZz7C8o1RbmQnrfY2gzN3XcLbnixPGQB3J6sfVNnsZevNcoFrQ5WbM4Xc5Otgv5yXIz3tmWDDF+2p+wHL9XW3C0wXfJPmJEvtPxRCYw9LGLGQWlFck5yJGfZhiyem37t+/AShl3wDdg98pdp4tTgrLMbuYzZv6CoUF8wAd6IT2OZ9LIn+aD1+Zak3MhCMpA9mpORR50kS/aD48NMWQD1XP1JRi0tM4APoPT6pEochgp438bvXGTnB0uyB3+ZUwNvzQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JygYs8NDjYjwTRy5FMeG88GW/iQOc8svmorfAH3Iohc=; b=T2YKwP/u9G2QKNB6PTylaM0AUkbvNj/NL3sRIqh1SLBnMd6RBGDdZ22f7GfcU+qjhRC3ioNury2xaDNNmAQ4Za72YRELrDDEhz1+vfPTmxjhznSfxDmvQiViTHfMjQEjyzq8r4LqRuujSUtMrthEQpJbwk+MmvA94QYEq43w5i+C2gGCYTfg+OT/o/2N/8uJOrfeL8JnzTLQq/qe6ooUXrdM2puLlU8S5p1LWFZiE25pzd6iPepVTqdEEAcMAtA7NJyNE0w0D9M1skIkeHJ1ryGM3MV162ahiNRGgZsdloBUGaVhqHezAIjMmFFG3bflmeXdhxaUoQXPQyE58sju1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JygYs8NDjYjwTRy5FMeG88GW/iQOc8svmorfAH3Iohc=; b=sqHiOHQMXW84HwaYxS20n5JRTAYWZqr/FfEno/x3TElsRjhNuw/2mgAQyKA5qy/EzdMNVqFh/1GOtVKiAiiW1O64ntOjIFo1vadRiA9eCgF8n+UJF97X83fMsQISIhtPHHE2oBU+0itbPKILGJd0EibMK7upxpreJVFFLq2UsyrTgQ0Xd97Y+5neE4o6ErjwvsvKByCF1mEIPJqtvZeBchbMQuBgMZi29K2ih6/QnN8LNH+ZQqU3+HVhShXfHHc2VyXTZc/+jIk78pSxygebwI2YeyzcYkxsVLaBAXh6mdPGsHWkhkVwk/r8wUbpo4Hnjo+TyaxEvv2Dog6TRH0aMQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH 1/5] ch: pass virCHDriver to chDomainAttachDeviceLice Date: Mon, 6 Oct 2025 17:18:07 +0200 Message-ID: <20251006151811.244611-2-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> References: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::12) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEYP281MB5624:EE_ X-MS-Office365-Filtering-Correlation-Id: c7b58c97-0666-4f2a-0992-08de04eb93ed X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XsQcwaq73QOFnP0W8aHf8Sft9U/3b8LOpaGUgHQ0BcyBlp4Es/vbzdDD8q5b?= =?us-ascii?Q?zI4V3djcoKg8k7B7GK9E0zlPMS5JavJtfLPB0fC3A9SfTR0UoF85zk6xPVkx?= =?us-ascii?Q?sPsKioGmNHClgiNOY4aRO+MHm5aEpAdeWvYzvh4N6FCupRnYExBMpyMS38HR?= =?us-ascii?Q?RIQuzPZy+r+bQtxtMZGGSz+7wDEkrcWSQit33w/ocK8uCsmI1MHeW9oCU4j7?= =?us-ascii?Q?REMVW3OLingD3MBDItWUkXCfqiGJo1+k0ACn/qcRe7KyCeLC8Iad99Rseugr?= =?us-ascii?Q?NCaMQLnkds8n5933dG2M2b6737jn/0fYDbm0coythzTTNH9KzCZlSukmmbKT?= =?us-ascii?Q?DsSEE5UZLl31BBD0ZGDE7+zJoqcRepZ22oVUms/IB4c0NxFJy1hkI+17MfcW?= =?us-ascii?Q?oL3t429FtXIh7PCq3Sg3VZlbbfD7K5vXVeIN9Ue+yWjT6S/vDFGGVv6Obm3g?= =?us-ascii?Q?szDSUBaP/Hc5iS0o6sXETMFk7cvb3dbW+2/5f2tY+NXA0GiqJHvZGnHKpxn4?= =?us-ascii?Q?z+qMb8PgnDDGrWPbo+p9ZqcSJLdfzfO8IGeVR27K7Bu7VbJXizpVWIYiDizu?= =?us-ascii?Q?gxEuXNQ42yOcTJ1y/DqIf+a1LFXwyXLWxNEbnXTA9WAnOZQ+VQvV1fmMptwL?= =?us-ascii?Q?349cCOo0jlCPmQ7XThB0cZd1vjA0dclKNTuSDx3svTTGO75mp+sbOAPfk5a1?= =?us-ascii?Q?SwOBLtoUa+2vbmQA/GSZ7Pa83xUilq4QcjhSy2Py4wMm3WMeZGPtQlCPQxhu?= =?us-ascii?Q?SALiltS172Kw8InYHpuYuLcieXFxnTcIjiq0d9V+bfYWUV9zPHphApDfiWf/?= =?us-ascii?Q?33EyuMSqiU3HUE2HbpNN1FwMAe9xqSvy9I33EDBTfmdEoR09BhNRsFX4fjsv?= =?us-ascii?Q?SpPMqMOxBGtRxJ1nobj6XbHsEKHOeVpNN+1FmGxgdD5sVrg7B7khaW7AaN7I?= =?us-ascii?Q?1mxlQAuRD8Jny9G9xHLYCAycfeX1t9OdTK4hq6AKPme6MFQaSUVHmlRZ8u6s?= =?us-ascii?Q?vlDxzQlOxgxZwjB/wr3KUoQugamTO2yF2A7/KqZmcq582wyePP+WC8saq1/f?= =?us-ascii?Q?3+6XKlPUGFuIg8qe8iZSvmALyYOYcVbJ9/uG2BrNdd0TCep459FlIv8KV7e3?= =?us-ascii?Q?FoBwFOeFOA33dYrx+ywZvRJSKyAvWbvuA5Vk8sBxiTO+qdhp0EzaxDKfwi55?= =?us-ascii?Q?SVOBHGhnyXRU4CyBBuRRzE6FK/NShVw0Rvo68H2gGwalTZEqYgO4pNmsyVR0?= =?us-ascii?Q?gfelKgiBV/Fk5BNJPrM6OlOwSZNYnR1F1+vMgjklfaLNEw3PngousZV82bq8?= =?us-ascii?Q?Z2n9k9hmiC66Tq4EEyBzlZ/GDBMr9yvaDLIwaqUvRhqOt4sUKNLGrIYNroYV?= =?us-ascii?Q?0ofAHu4Mt0KBoUaaEr0xqxVV60/JvQdkTeVshYZsazZ45eEVu3XoyxVYUEP7?= =?us-ascii?Q?YyaRSNlzoJVjCPBGp3YcDbsl7D12IWpK?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NlmE6mtmQPj2+9VyuJvx5PhavJfJsa7R6oiGuwM/SqpvZIyZFWvJ2M15XxOs?= =?us-ascii?Q?8tWegoBzI3SFBeM3DmoBruTm04htAOZaejw4SMe+8uXKkLNzmdn29ANjVw4x?= =?us-ascii?Q?bcG2oSKZ6Da4g+74/wNPrOmjI7hxGOg9PdEQlbNc9EkBRG46oRLXcou9esVo?= =?us-ascii?Q?Sfpyemim42lsZdZ6mofh2fXVshr2hJmzA8FzlTQu+mPKJszg8STX26iLOeo6?= =?us-ascii?Q?SSAM43Rm+QqVahglx+ERIAhuyMBSaqfuUBy2dGtPi5wIvWHfjpTmM/Fy4wZD?= =?us-ascii?Q?R40pWsMyU6FAqCPApNagvxxUaJabvcavlGuhKjBfEq+P7OoDpzvqGxRAxmDj?= =?us-ascii?Q?qQ7x89wC/8S7AjkYsIh6yIm1lYh95rdpSMd6ICAzWU/Y0Lyp94THgdejBzbD?= =?us-ascii?Q?wUzkPuw5aS+jBOoQ4K8upx5B6QJ0ad3QCmnSJ6BcsybdbdXfEf3YWIPCZzgc?= =?us-ascii?Q?lJDAhOFHbKTAAfRL12nkNhdEHrf85JdmR01aSeXrN29NAMSoaStAcDC/tBRi?= =?us-ascii?Q?rKi6jQiRcwsL/VT7aNAzZEd1g5e1b+3GkVu0DrcFOWF8qJjMu0qUoHyXRlVs?= =?us-ascii?Q?8sILmtV4EOz/XaAYQHUfz4CIs045pXi6hdB3dy5erfa9kRD3fE5LDZy/JkMJ?= =?us-ascii?Q?Z4r6Mb3RlAC2w2h+l01fvCCqjNHVB8h0Reoj2JWZ1m8PVX1bjlPdgkZ4W4ed?= =?us-ascii?Q?B6pTegXYFats/Wm4EzQC9SknJAsQ7fEj8rVKOmULWGcCyfVxNQFjR8NHPM2F?= =?us-ascii?Q?za31CxQOvXlgKbz6XeCjnwyyRsSbieB29ctujCAHY4JptwZo83B2CvzLj6La?= =?us-ascii?Q?C6IF27/WKeBsuhGU4YTTFUwvLjJtyIqpEJrK86V0dpzS2tvITvBvuLdKEkwx?= =?us-ascii?Q?d+YqUo6/qPVIk7Hju0L1XdngeokHFMyLzpsvpVtWTs8CiUFdrKhbvl75XIlQ?= =?us-ascii?Q?xhXBXZsCkIx6iIncmMGP+U4nm2GR4zaZMDjNlQqJl6XxZBrtRa8JE7Sadn2P?= =?us-ascii?Q?kWAVIfhQHWRJTvcOOwMTtIq+wOyfebbKG1ooNdulSNrPsOgjJo0vhTEXaRR1?= =?us-ascii?Q?8faQAKp8vONa4t4oDU+4xXZNkQ9LA2V59yJ1CDW/xAklIZaGPrTH/rsNVu4O?= =?us-ascii?Q?yPuguJ9wWx0uo+2naMGXjd8URoZSNBmkufLtWzNfYIveh59LxqMjj3Xqq1fC?= =?us-ascii?Q?JINPqq6FIyUrgdJRjlhS9NNNuk+Ht0C661CbCda7nYuvVyqjKKMOEnHog+DN?= =?us-ascii?Q?FRZZTjrDj3bPHxxj5lz4LN3wv2n24T22jq2JGLBJy6hwPfj7aOkP+MeyKt0P?= =?us-ascii?Q?P4c8IUQgd4EvbC/o1mKaN9OEi48+a/8WqUQ4nsrZpPCh/oHCKRe5fKNeDLgW?= =?us-ascii?Q?nxHdfcu7p1pcY0FHCA+vV19PDxebse7KagQVzdoQFG4irsfMJeMm1QFIYXfm?= =?us-ascii?Q?xyT9CYNmVb0yLpbbhG8DOJX11AcdWbTc/4i29fiSjZbyeGtNrDe8mLfplcWB?= =?us-ascii?Q?YBzIeb7Wq6ooIkSUQrtvMaHKafBXJ010JfZPctHyAZ7nA4qTIA2Odn471HQL?= =?us-ascii?Q?KaPRnsV41ZGwCRLqWaemRP+bevoR8CgcR9SIE45Yp/0tzHBaNDyxl73n/ZUp?= =?us-ascii?Q?j0tS8RSHX0AsbLSJ7b+hOmCmkLHG6KuMc2lcxaaybqeG?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: c7b58c97-0666-4f2a-0992-08de04eb93ed X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2025 15:18:18.0532 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CQhbp6K3dIK3kemM2BpwGwl4loSZY8p8eCLLrhFqckwVc5mo20r/8B2jEl+MrKw7FptJVMn4Rq2bHaYlSjkQ9tVhn965RKcDIJn/bBo+1k5M9c9l4lYx2CijLXuKi56v X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEYP281MB5624 Message-ID-Hash: SV4PLGCO35BJ4QHWVSQBAYQ7MRDSQBRX X-Message-ID-Hash: SV4PLGCO35BJ4QHWVSQBAYQ7MRDSQBRX X-MailFrom: stefan.kober@cyberus-technology.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefan Kober X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @cyberus-technology.de) X-ZM-MESSAGEID: 1759764005508116600 Content-Type: text/plain; charset="utf-8" On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- src/ch/ch_hotplug.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ch/ch_hotplug.c b/src/ch/ch_hotplug.c index b953fe4c6c..902eab839b 100644 --- a/src/ch/ch_hotplug.c +++ b/src/ch/ch_hotplug.c @@ -18,9 +18,11 @@ =20 #include =20 -#include "ch_hotplug.h" #include "ch_alias.h" #include "ch_domain.h" +#include "ch_hotplug.h" +#include "ch_process.h" + #include "domain_event.h" #include "domain_validate.h" #include "virlog.h" --=20 2.51.0 From nobody Tue Oct 28 08:15:02 2025 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=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1759764252; cv=pass; d=zohomail.com; s=zohoarc; b=IIP7xquHYqkdFTl1fzg/JeuKF8H9XxjDo+DnLaMBZ+AdccmM6PowYW8q/rDYSS0SbL3biGngC5yw+Czgf2sStWWqxD1BKnurKqBaDZY7eF7ctCAfvnz4q8bCXNh4lzvpS5beA5hKUGyMvfx0rI4q4rfHHLgs3dwBhfjTFLPbbr0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759764252; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=VgE1j41QYU7QHuH3RX8K4FMUL+l1sj3H716u0jNTZcI=; b=WNKIyePjWqyT0053F/k6RPaQyOPx3RUKGGYqkLTjuhq1upu6slp/fzZohGnsb7wxlgqy/Pgh7wZTMUarAdHSEXQejijqz7oqLeZaLwoWNlGpQI87GYpUvjNGYIk451XaG4l8W3gOxiYF+Jwpg7APLk7285yhokYWIs/adJ/IIS8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1759764251712166.89445992018545; Mon, 6 Oct 2025 08:24:11 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B3B4544339; Mon, 6 Oct 2025 11:24:10 -0400 (EDT) Received: from [172.19.199.17] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id E935F44415; Mon, 6 Oct 2025 11:19:49 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 5FBB441BD9; Mon, 6 Oct 2025 11:18:25 -0400 (EDT) Received: from FR5P281CU006.outbound.protection.outlook.com (mail-germanywestcentralazon11022089.outbound.protection.outlook.com [40.107.149.89]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 11DD541E45 for ; Mon, 6 Oct 2025 11:18:21 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEYP281MB5624.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9182.20; Mon, 6 Oct 2025 15:18:18 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9182.017; Mon, 6 Oct 2025 15:18:18 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=keULy/HIUohMCCzqWCxF6G4T/UFb3O1Wu/+5ZXfI0EK2eiHHGS+gp67DzaYxlLJa4qgd+r/UfJ/7lLigiJc7Irk2DNZtCoAvSSByzpzJ0aTZKe9PGDKTrXcdSTmIlvLsawxWzvWi5f0/YUlpXqi2eahP4D4o32CyfuXZOohdCJhCHnMemCDZ+0nRpvhXU95sbKyXj760LzUdPhN6gniSu+/nojQ1slzRyaa1gAgtZ7kclivp7dRu3Ij5VvEwwt+UuBQ016fyuhrQImNBxyexQ6oy4BXQ+jyXB2kUIwl/rJMuynezuNH5sc3rX702B90A/lJoD2scwKOEql41q0ZQUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VgE1j41QYU7QHuH3RX8K4FMUL+l1sj3H716u0jNTZcI=; b=N7bbuPh7yLvec6Vd1IvJGB/1HmO/SZ9vgkG8zn/9ZYc79ns+jc9eU0bhtDASFSvYosWEy0vxOs8onfwenRhPmBy7ekrxCATZXzfk6pm+8ei5qY/aQ+Tb0DTHSHJcbmpG6Wqv14M8xB7/byPcdytyniZXK6KJPEgwVoLV2YMFGGlcQyF/4TontAzNYUEm8znJhGFTivWmY/z9KsAbQZ3KY0zdx15lxCir8sYJNsxAwB07PU1HN5RQrTMA7nZtG8klsKZJDCC6PjV+zqBGy9EZqO2OrlXKSLbMSV5eMmgdGld4XQKC48k0jqNdDtgLdwYIfAbxMysw2MuGGJBowo18gA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VgE1j41QYU7QHuH3RX8K4FMUL+l1sj3H716u0jNTZcI=; b=XhSg8+VT2nQ03BjZ+Z73toFeDWBEcTqNAg1QytHEF4sH1rA9tWt2po9WvKQzDEBBWfmEz1YSy1+Hdc8a0AU8dIXGfPQ/w98SUgbKUPPUISLw7H0y0BhjygCvUmf35aLw2s5pQyboZxDrzLGpWjhCH4pvF4/uHgir64kx2uVKF/Ysu55LZWuTeeyW2OzmS0wV89I1FRwjeIn4zfxE9WGnqxwzcksaDw5BfVxDhQx2FtWurnUJWN7O2aXzcI3Jph7MV5sMvDGynqT/BdauHj2khonw/smzIF+Oi0xUuYVEzKKfcqs0PChP3Wszv21AXbZY4m+Oa6bPfCwTgUkBwd9GPg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH 2/5] ch: add net device alias assignment Date: Mon, 6 Oct 2025 17:18:08 +0200 Message-ID: <20251006151811.244611-3-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> References: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::12) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEYP281MB5624:EE_ X-MS-Office365-Filtering-Correlation-Id: db221281-14ce-46d0-9f6c-08de04eb942b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?O3kltFi/3OK46ynkEKETqCQMM/GBRyWqRZ1KiuFsB2i65PuD/h0FR/E5ZlR2?= =?us-ascii?Q?Y2iHa7xTkmrxccv6bgJee5lING9Db3TwgHt2bcfCcwqjjs4yXE5ObGp/9U/s?= =?us-ascii?Q?79CH7OmCMnClzhF2MBhoh3/KZYwxYop13dpJkmjZxcCrogn2MEvJ0XUkwiKb?= =?us-ascii?Q?1Oiv0GrUmMYCIsAfTGeXrhfqAZ6BmhH4WMmJY9z6XmnLj94k+8Rb1bj5/pim?= =?us-ascii?Q?ldq7aMkJPNI2JWGfFTyzeXxfQHxfzzC3OVnBPvLDQDiDlXqNOhH+wg1K4tXP?= =?us-ascii?Q?a3Vh6Zewn5LVL2Ng9BOGNmMg6MO2QnOQkRI6pMM7pKxwwxg1e/kQXYNt/Jgx?= =?us-ascii?Q?hs7oXKqOr3A00NYLg8iPVOxLcWe3Ha37RDiAIOE7xPW27MGuU70VI4vcJHKR?= =?us-ascii?Q?W8QPwhM47+JGG84OL+Mi5YV+tmT9JrVymcN7Gfp4B/vpz5fWBL8HPKR4o0zF?= =?us-ascii?Q?NKpxQS+23Xr6+ofCnsPtKQZWLxzVVApWqnm1lHZiO2Qj1DmuwddvyBIij1Qh?= =?us-ascii?Q?T49homa7fWhlpIa53RTjqfSTpeux88A9z3iksRRM3mQD16yuzlEFtAb1pb38?= =?us-ascii?Q?XZFyC03sQe2o75cyxsqfQk4lCMFyVN8N28rpSvewWT2zUsSlSzHVSUF7Zw9o?= =?us-ascii?Q?KMDMujR7Ttp30HNWWB+MfHYxNJ0Gez2bKDDPFa5EtbRR0eL0QzJ2Zxk8s4MW?= =?us-ascii?Q?lv6wpuhvkwfoTFB32xAFT2H5H4lDcFahC4teu2ms5gIj2wRtY41MxXU3GVRG?= =?us-ascii?Q?Gk3bqyJztNhdKfprm0RHwdsN4F3Ix6DCmNLd8EAyg43cUFxBsni+OA59TkzM?= =?us-ascii?Q?rSKI3w8BWgmTUaFFCheS8TPEUJtT8A3UMs0MbpTvQ9/AegAYxTdYA2VjmgmA?= =?us-ascii?Q?nDMSR4xuNP6HpP60jooj8B2HxnhNwirDuatVUeu7WSouYXYO8KY9YQ1tN0hz?= =?us-ascii?Q?NAWV0Hd65kq8CbM97bgG9bz006oPZdI0GPOPoaoB6xzitJOwI7inTdzYdfRa?= =?us-ascii?Q?gJWgTFvdb+o+HALLaJcV0kU4R9XQxQqqsZnPadgIfSe4A4wfAaiE7r0q8JUf?= =?us-ascii?Q?WUHlECOW3PTOSBDP9ZSuY05BWIu0QNqEiHEc+tKuNKl8ffOD+g482SfoPURT?= =?us-ascii?Q?swPewlbwqC3aF8ExvBi3GRbSHjv2CeW6LmplMkC9p1bbEWYJqzUuAC09Lfsm?= =?us-ascii?Q?LN+xIDxrQZcGzA2Sk3ACBvRbIGJcpWeRTwhnrNlGQhHqQDhkyQ2VIcrmjwwi?= =?us-ascii?Q?jh474heR3U2F/STFq+HiC7u5ch2MWoyhWqd2KuxBgPDiDN5OhUPFtp9e08Qo?= =?us-ascii?Q?apM1iOT+DxDHZrk36uRFMoc4dWNscxdBBYF7JKPVEkgcj/ToVjYCAd3hoTUl?= =?us-ascii?Q?W7iHU9ZH73Fqnq0L6zakQq1eQl/XspPzLsZp2srA3B1BsLNsbuu7nxJTIp+2?= =?us-ascii?Q?lJ5W/Yc6+6dxfzSh7vJPwYumVlyXDqNC?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BTS8gEVrOamAfibHVKaox3JQoTNPpKd2F6bmIpEUPNUaIU+mhtVspWwgRG10?= =?us-ascii?Q?aNuNHqBUXe3mmgRd1qj4OLnEhUlAo32eCg7AOk/cZscvKiNRsxTy1jYgjZw6?= =?us-ascii?Q?MpAVGuKhk+XdEsgJO8mpnedMTEKWavueYRSFkios/6dhKwx1+Kujnph0jft+?= =?us-ascii?Q?wqlJ4ESLunBwtDOv06qW2jc8D+ebR6aCQj/vvVUblgF2hPK2K4/zpl7pvqOz?= =?us-ascii?Q?695Hyakom9qNJmgHAtf3hOI/8MvsGLSiBrdkbFkIUUldf7QETxO6HqqPpBHB?= =?us-ascii?Q?hpCCOn5PeC7CUOOCL6+tkPif7ruafNCONxPJF//oTgGI845B/eOCF+4QYOd/?= =?us-ascii?Q?uQTQbpCh4PwfqiCMfvx8bWNvqLsX1zBjHifp7+ZG3jLSki4yoHQc/SZa10kL?= =?us-ascii?Q?3fTacjVcC7v7V7+7G1aJGzNuu3rxRg3EZCvspDXfytrbrgI5RR3ZgWPob8aC?= =?us-ascii?Q?OxCv346wFrfwLPdeTYhoCWpF0Mq247JiGPN5fVArEX/FItuu2MbOgO25Tlt0?= =?us-ascii?Q?b1KqolEBWRBCF1lUlD7+zlLNNOC63IESFIkFP2PvK1oefzt34GtYpW2gjnOD?= =?us-ascii?Q?UiRIolV3qzzgNHtGY+UEQJJ4DU6MF9PO79AHu3Ue539+LyRlwYWyqpb5S1y7?= =?us-ascii?Q?AzddChaeCpcQNaHta4YhgS5UZ5bqVCiBaO5MeVm5frl/W/tXbPCxpSsdbXTj?= =?us-ascii?Q?CLHDzGjusYeuO1WxFcH1RkdZEZSRfO+IEaU1dXnpxRrnAMJ4ZD6PZbhKedlk?= =?us-ascii?Q?1A89BC3vgx4je2mh5UcbnP41lKghyJgvmOezZLHeTYJ2RK68xc1CjM+i8+0h?= =?us-ascii?Q?HinMIEkqCQT5lwXA1CPcl92nra5akN/WD+NjUYVgVr0l+KFcXzFthMCDYT7r?= =?us-ascii?Q?TTUmiPLllB1grz9CGUUrpa3R7L2BBUyYDSOoxBy92JJqov2S9wW6zGeIdbq9?= =?us-ascii?Q?R9/IyBxDtm71/QWBtfomgza62pJsrw3nv6fuflN5urv9FSoGx/ej4XAbk/2A?= =?us-ascii?Q?KXAVRm6XobkFexmsKNl9S5Y+caoKIwhVUL2L2fi/nkbpeXWuJsC6OXQbOBWH?= =?us-ascii?Q?Vmz991svqq3iukz4ifA1z8wJtApbpJJe37YBEIxZNnwndHJA99zlx6MqDBrn?= =?us-ascii?Q?6KT5OsSB4kbe/zeqdqjwHtOZNjG7cNGeRXyeWyQyjo4izt89Dzdjyfo3BmU8?= =?us-ascii?Q?mhKTW5LQ9ZM9Rvc9tiC1/A09SEfGAeJ+w7JfRMVsMSaersI52/Mts5eVZni6?= =?us-ascii?Q?TTC2JV1+mAuY5b9tVl+CoJisIHUCGBn+hf3BiK6VCM2L4ysYrK3PN311/wV3?= =?us-ascii?Q?lc+uLPjKOzGHRDYc/tiVqMFUXGAt3uT5ebTsj1QV008jEGtLb+9ItF36e9eM?= =?us-ascii?Q?KcNjVZJeHLkZDggG5uGeC9/B7+OcwgijQC20RZ6MjOEHjEsT95vVIPMgRwWq?= =?us-ascii?Q?iXKOaZ6iwsIZvwfoWFvtH10mT6/YXi40z8rHrk4qd0CgPifuZNeB1qv1Y0HL?= =?us-ascii?Q?Sp/zeNLfvnwL3qPgLC7x3mEkoga9df3lNUNHU23VzC0kUAIYjzAHhN76ZMjx?= =?us-ascii?Q?t899pztCP+EKML2SYQ70T5PKBSaglmoJG9y+rSNoMVkSjwYyzQVvTjQDHB2L?= =?us-ascii?Q?PPkksuJ+gWAYFlM+mUwN0v/uDTfQPT0ekXxZu7xpk7Mm?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: db221281-14ce-46d0-9f6c-08de04eb942b X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2025 15:18:18.3718 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: poIkBPFEuLY1ciibR1NiHLjBcYHy0cZXBd1e948d62fr11iDqGFMbtoiu1pRgqznRfRtGpvn6+6B7/932CNSbrOPDZaUa70ps8QYCJwI8H+4v5JE3BBfoQaRjuSgqYIt X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEYP281MB5624 Message-ID-Hash: 5GGGXCBKYV73X27OKRUCJ6ZPLSEB4RBF X-Message-ID-Hash: 5GGGXCBKYV73X27OKRUCJ6ZPLSEB4RBF X-MailFrom: stefan.kober@cyberus-technology.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefan Kober X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @cyberus-technology.de) X-ZM-MESSAGEID: 1759764253610116600 Content-Type: text/plain; charset="utf-8" On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- src/ch/ch_alias.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ src/ch/ch_alias.h | 3 +++ 2 files changed, 50 insertions(+) diff --git a/src/ch/ch_alias.c b/src/ch/ch_alias.c index bdf8452a3c..dad297b20c 100644 --- a/src/ch/ch_alias.c +++ b/src/ch/ch_alias.c @@ -18,11 +18,13 @@ =20 #include =20 +#include "virstring.h" #include "virutil.h" =20 #include "ch_alias.h" =20 #define VIR_FROM_THIS VIR_FROM_CH +#define CH_NET_ID_PREFIX "net" =20 int chAssignDeviceDiskAlias(virDomainDiskDef *disk) { @@ -47,6 +49,47 @@ int chAssignDeviceDiskAlias(virDomainDiskDef *disk) return 0; } =20 +/** + * Extract the index number of some device alias + */ +static +int chDomainDeviceAliasIndex(const virDomainDeviceInfo *info, + const char *prefix) +{ + int idx; + + if (!info->alias) + return -1; + if (!STRPREFIX(info->alias, prefix)) + return -1; + + if (virStrToLong_i(info->alias + strlen(prefix), NULL, 10, &idx) < 0) + return -1; + + return idx; +} + +void chAssignDeviceNetAlias(virDomainDef *def, virDomainNetDef *net) +{ + size_t idx =3D 0; + size_t i; + + if (net->info.alias) { + return; + } + + for (i =3D 0; i < def->nnets; i++) { + int thisidx; + + if ((thisidx =3D chDomainDeviceAliasIndex(&def->nets[i]->info, CH_= NET_ID_PREFIX)) < 0) + continue; + if (thisidx >=3D idx) + idx =3D thisidx + 1; + } + + net->info.alias =3D g_strdup_printf("%s%lu", CH_NET_ID_PREFIX, idx); +} + int chAssignDeviceAliases(virDomainDef *def) { size_t i; @@ -56,6 +99,10 @@ int chAssignDeviceAliases(virDomainDef *def) return -1; } =20 + for (i =3D 0; i < def->nnets; i++) { + chAssignDeviceNetAlias(def, def->nets[i]); + } + /* TODO: handle other devices */ =20 return 0; diff --git a/src/ch/ch_alias.h b/src/ch/ch_alias.h index 81e20c27c7..b9a12fac11 100644 --- a/src/ch/ch_alias.h +++ b/src/ch/ch_alias.h @@ -23,5 +23,8 @@ int chAssignDeviceDiskAlias(virDomainDiskDef *disk); =20 +void +chAssignDeviceNetAlias(virDomainDef *def, virDomainNetDef *net); + int chAssignDeviceAliases(virDomainDef *def); --=20 2.51.0 From nobody Tue Oct 28 08:15:02 2025 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=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1759764360; cv=pass; d=zohomail.com; s=zohoarc; b=R4vnpux9RYRRA2ki37c1a6AQWEF/KJSz6zZo1JSBoYyvfIq4zFwosMSpZHcxOg0DU6dmJgD0ss2c2QfmavL658q+t6uGS8/t1M27cLuxmqOP2hE2/Mutv7WrevYQsny0g/ymD1lzseUUBbdoN22iKpO3NzUvbf9olo2zuLm2kk0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759764360; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=kOU1ldOIwyvL4keDNWzL/jifIPJ9vbsUuipJFyqBIkg=; b=CHCFPiZuPzdvkPkHcmuXrYUV3ZpO+ntYswn29jsQXsWJyHwi9sf/RWcGobTKW/0YujeVp0FX9Zh1um2Vj93A9Pua0tr/WYR18DAMWXOLUZC8So+6oLn0Ozx8JmP0n/u0+F8pN/q4/HtHH4uL6tkTHUFm+6thqFAe5lE2U/DrXzU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1759764360482178.55936888675797; Mon, 6 Oct 2025 08:26:00 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8AD613FCAD; Mon, 6 Oct 2025 11:25:59 -0400 (EDT) Received: from [172.19.199.17] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 9A64B4443C; Mon, 6 Oct 2025 11:20:00 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 74C6B41BD9; Mon, 6 Oct 2025 11:18:26 -0400 (EDT) Received: from FR5P281CU006.outbound.protection.outlook.com (mail-germanywestcentralazon11022089.outbound.protection.outlook.com [40.107.149.89]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 59E0241CEB for ; Mon, 6 Oct 2025 11:18:22 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEYP281MB5624.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9182.20; Mon, 6 Oct 2025 15:18:18 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9182.017; Mon, 6 Oct 2025 15:18:18 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ma3/ZC1mUMiNJAUUa4DXkz1eRo57xrJ47JQBt4JlDbB7pcTnCVcZvksXjHXQKg72dlu2zlfrQY18TwhAWLvIx4Mbql86Dan0BvPCRIHrhPdMN2gzM+VXGUkXVRXNKCd/m8OYGUerUgo+Qato7sIYrK5eyr5NGn12wD3o+TgDdUD9+JATgJefS7ZkYAHRDjEL+Ts5h3wvy6fi2YRIyGCTMrV5GBe9YprwSedlHQndyM9ogduyoRix188rzuYpDCyO8VrvzaL3DQQ85XCWeSvp7M1eqtxUGAW1ouiOGhsNoLKkc14Q4ZTU4/4Dl030XA9Sm7Xx1LK2W20PGAyRwqrwxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kOU1ldOIwyvL4keDNWzL/jifIPJ9vbsUuipJFyqBIkg=; b=ym6I4kDp0mAE35HfjrKRj5sWa8up9VdkbQFqeKYyM9tUJPorcssR3ZsWBzcYmr/6IcvYpYrUt5L1vsVBC9Ia3ZGztOIZj/74gKbNtYRP4KxxXvvZtmnsgOY0j3IquL6lLORcvLodjuOyvlUkaX1alwoSQXpVSkOqWOIrLvATMW2oG4upJmoqAeQ+T7gnPJIfVY9ilvCCOHdVVRcApH1ffRr7yj1uJjMtlEMFLNk+y94u8GpbmR1nVLv/pCxnW7JIInoCJlmRExjt2reJ7vMywHA//IHN1Y+QCXwHveaxNId3HcbpX2IdUDlWvF9O0iqvxm3F/ZBhq6F9uUSZGnPr/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kOU1ldOIwyvL4keDNWzL/jifIPJ9vbsUuipJFyqBIkg=; b=TI5qzVgclFy780oqf+onOeAQZ4p6gX1Mgtkx6drY67dL9IbAooK8MZ5zCKynCvsbVxqXKEhDs4AeAZbBZhtJNBHgxZn8+1vlSNvX9FMN7sM0lwoixINZmhKnmoSEFg4N+kv1u85pvXcAihDcTiMLLSaVJHwFROueNAmANAhUdQSQ6Urcspa28WGwvA6a+NCXcJ4W9ykn5WiP0xWk3Hg1VlzNPmUy5NJUDoMz6TWK2Hs0s0K+iks7KZRXJ9jvyJ2iUp9IO9/na0KPxj/a60ibYJfc+T5DLhnY4ysPS416Vdsy0Hxps4888wZvwwvRSelvWUyaoJmMWicemTeBrW5Lng== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH 3/5] ch: implement network device hot attach Date: Mon, 6 Oct 2025 17:18:09 +0200 Message-ID: <20251006151811.244611-4-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> References: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::12) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEYP281MB5624:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e913247-3fb3-4034-58ba-08de04eb9454 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mnEcoJgsKboJYVOcFLE/dL3FHQ6DEB3BFIcgzorvSxfsGTLwgYiE5Zlu54ri?= =?us-ascii?Q?iFRSptm0ZxqnsRsrh4nn6QTEDkBHlzo9ZkRGT+UIi2nprvZAf/Xvn9g1Dpkg?= =?us-ascii?Q?sZTOa+zdt8mY5CdIayDaYwpkLn8JfmjgumiIONCwdkeqIg0jg5qy1BwVqJhd?= =?us-ascii?Q?EOROxrUiwOcqubp8u/3ySpqb29c+z7IJn42cLm5GUR3M4hXeRz+6SzmFZWN2?= =?us-ascii?Q?okwRtKefOFntjpTE7Amr4n8I6a2JMZXqx+A7wGIWtuqfM3fLKZwXQd85WP5w?= =?us-ascii?Q?RWSuE5uMVWOkSeq1f47uqper26hKBRzpHS7iA/DJk0VaGTNvnGxezjhTfeqg?= =?us-ascii?Q?oqEsIsB+B14eL/Txlu+TRo7wTxSeinqob3254VEi6s5xTOQdL5ZIrkGAXCaI?= =?us-ascii?Q?XwDgbjKC+pLnxUvILSfj05C8P0Fs8NbNF+ZaU0SyaZj4mYK0mdl2Wgk5xXJS?= =?us-ascii?Q?g7IUZ9XyuK0MHFfbY8BEKPzSsa6YMMXg4m42xJ5HgXUzbk71/3J1kIJcns5A?= =?us-ascii?Q?RGAyNip83xINLNh5QyoADgTN1BN2iXAjhEScwzUWzybbATdDl8hbh09Vnci7?= =?us-ascii?Q?YQ3QP4wp9RnX5wYtyl6+bU5KlLwj7+8HwF8x8yGzVRVXDvjRsa5lQgdmgtLK?= =?us-ascii?Q?uhopQoSiPyfKObmiaTAhLjn8NrE5W1UF8R38dSPhz8iJnDBDhFAtNEZd1yfF?= =?us-ascii?Q?ObugPgWj0qUSh4sQ6qg9CREcu7N3/n3fUHnTt6d3Q+RxRWSC8Lygga9YTvHg?= =?us-ascii?Q?qeolaVaIK4ILGbJkIb5y2ibvswWQ0FOe6GVeZM+9uX3vU6qJqIeJVhLiEehN?= =?us-ascii?Q?AI41ub23d3FYD7Y32NUROVzKUKRRLtdAvNtBbPxOtQiEp+snooSwKibRJSf4?= =?us-ascii?Q?nOLFHo0fR8mYNyCMFDvuYmquM6X/odKMbOcx/bJiBNVJVz7IM4yoflr9hXEX?= =?us-ascii?Q?6SsjignAGu5haulO+LfXXZ8qVVZrgAWrZEeMXVJBB/fJPuPdwa8aCbmIPTXE?= =?us-ascii?Q?VEn7PxBYYKbGeDdQJz+PLnelL8FRnNbEeVQg1MmhUb3ji6NIonHmqLCAYTpw?= =?us-ascii?Q?SGHO8qbAoDY6nscmricICzMWQdc2hLyYNA8fBKCzoCi9lIdJDfG5Ev5BhGuD?= =?us-ascii?Q?C8vO9Z7RmXK5KfcLI5IdEm+fgDrUQEXteRG9mXY3ubTkOkF73SRPTEfqvbxj?= =?us-ascii?Q?GSf1nF4d8sl7nI9uiTpAoqrGEIUqU+qg9ptsXt5BJ31KblxBTh9k1/HBOnD3?= =?us-ascii?Q?EtHBBUVkBuL87f4cRLwiDKmjHDkZIIwOXUb59L76X1kT6egXlLIt7LMs3CvN?= =?us-ascii?Q?3PmyCNHQsJQNF/ZaOtxsr0bHMiDot+Rj9RrAbGLOJ8AwiVSPgicGrPHtPe3s?= =?us-ascii?Q?BlYB/K/Rgh7DEW7dO6riInGf0dnbbi+g2oEWeyn6CeAyEg6FflBEd3Pb2oXo?= =?us-ascii?Q?DPL42bgcclAxyvplIRnyieIb1VQe/Ed8?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?F1auUPZumGreqCbtjS5O4aRlDCbpr7jQA9InfR1KfI+p+HMMcR/1hSSU6EQ6?= =?us-ascii?Q?EocriXVZwnSjhnQkozAGItfRY1hbZDKCMaRFsZuDsSFKFbpGRyKz8J9K2M1N?= =?us-ascii?Q?HSvBC7vTlU7X3yb5QG2RWCDLOzBWFRHkuT3ae50vN1rgs3mCnSCJ9ZiAGsDj?= =?us-ascii?Q?7sSpppj06CGs5WnR3sppmcHkhONyugKmZxIcFwHXn1m7bc01DCctfLjM6DQJ?= =?us-ascii?Q?EU2DFSRz6eoRUjnl9543f40Jy6OVav2tcWZBbH7gc0nGDcOAnsKD6fTz+8Ko?= =?us-ascii?Q?4oNgp8qlL9SPDG5+d2o1hc2yDUPUKA1QaVe/Hspw4WbiuxBurzHYQptsmKe3?= =?us-ascii?Q?XSUt5FSK2jve8hkaa1H8NIYX7X57zfrevPY7UCvhyC0h+2k2HRjqA+661YAo?= =?us-ascii?Q?rEXQr9+hRkBKoU0vyqTIwn0BMNEeg+SXpZRAyMHG/Eeq5uqTtjUpLhoX1cdy?= =?us-ascii?Q?PM72RanInBiHdu3AQfS75l4ub9VGUS9gPg9b7opu8d2ckgyzAjXkfeEmfiIb?= =?us-ascii?Q?fsegqNtfsJlOEm/Z/+iOWrgQl2BR+TqNeF+H25TV9Hb1y+AoHSemGXAa/U5m?= =?us-ascii?Q?LXvImalX+5O8eThDHExxxjn0sO0pT5nztz0+RZK+ygOotc9myUJ5Te5osgFR?= =?us-ascii?Q?0bfKSS1jDvx3LBZvjOMZI+9rXuWVxLSU3I2ucwyB5wDN+jgPcfpvu2DlHJBK?= =?us-ascii?Q?0IBboccobFM/6NjHXYjnMiD+iIuxRl7LFwdjyMue6zP8EImoJNArXGFJXhzf?= =?us-ascii?Q?8X5cYKxl88BeJ1OtOydvJzmAlWr3GZJesx/CReGardu+gBEKlO3V87/P4QyG?= =?us-ascii?Q?HOwWggnuYReyPh2gNlv4CTc1DeYyXvetMCBvk+4p4JV0gpr+ihHiW1FUETbx?= =?us-ascii?Q?EWwn97k+Q8LgqD6AXJqGv6J+kNFQkEbaKo5n1gIlMfh3tInFnkwgGFxueHK6?= =?us-ascii?Q?AqYUPiwDMywjpJCeRkDTbiTeDi3RJiaeO5M9JgznYB7xPYiVk8ITWFVwu33v?= =?us-ascii?Q?5TeOkSW0tPPUT4s4A10f1JKw42OoHrDDIEMOQug3asqmfjgb7QDBcRnrfgUL?= =?us-ascii?Q?Zbobq5im5D5EBxVr1LGu7Fvt+wLHGOsBE6IO+gr5KDZo4OL4nMqv6OsNhlbz?= =?us-ascii?Q?97TBEx4G/FlBm4ZfoXTe3/+tyqmkBL2t+6jXhEEgsJjFGU79Dds4q5TE4F4B?= =?us-ascii?Q?PY8PRqLY8k9hJxm7RzB/6KIQ3Tgdh21GVY6yDMkWuBTWJ7xtLa5xnTaxuf7I?= =?us-ascii?Q?elHM854ji8AgkooR1j7E50BGTSu3riZljHEjQnGlZ4qOqqRCmmqLYZ2TQk2b?= =?us-ascii?Q?cckUctCZHGG0lIwRXI5TmC39JuXTe/YN+3UPZBvxSbreqpJgninoKqx5GVu5?= =?us-ascii?Q?1ryFGEFrjcBcFJs6e5dHcPHDYis2l1xV3nFneP3J9uU2B/e9JirxPNj+DcRN?= =?us-ascii?Q?kXR3bdc3ScvMiSOgZ5T98CW3+cVdo7qivS9du1rfO5Ewwx9E2gbfuQm63kjF?= =?us-ascii?Q?77f9Z6cO+2zCdT/LZWdXT0FtANlBBCh5sGw2buh1aKH6OkrmOa8s/DmZ7hg4?= =?us-ascii?Q?iHXEM93z1/3r1HB7CQFzauiZxs/xpduWXxS74ci8ZQ/0VcLrAFnLSXN13/SY?= =?us-ascii?Q?Ig4j8mcFjrTG8Zd21pTZBj3XqWRVBEC9E4DlRHoeeTP5?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: 9e913247-3fb3-4034-58ba-08de04eb9454 X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2025 15:18:18.6504 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fe7DKEqJDzodQ6CLNR5A7pHOlhhtN0gZ4groQIj+C1zn+dERpJbyxX3VCm472ZXw45bfWTIQpctd1qw/a7QabFrQ/mTeOqv2olfbejC7wn6d2IfH0IWcAfYp7Ak9Gqbj X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEYP281MB5624 Message-ID-Hash: ZAY2PM2334FDH7D5DZ4QLM7ZJDLXGSZF X-Message-ID-Hash: ZAY2PM2334FDH7D5DZ4QLM7ZJDLXGSZF X-MailFrom: stefan.kober@cyberus-technology.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefan Kober X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @cyberus-technology.de) X-ZM-MESSAGEID: 1759764363974116600 Content-Type: text/plain; charset="utf-8" On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- src/ch/ch_hotplug.c | 10 +++ src/ch/ch_monitor.c | 5 +- src/ch/ch_monitor.h | 1 - src/ch/ch_process.c | 163 +++++++++++++++++++++++++------------------- src/ch/ch_process.h | 8 +++ 5 files changed, 111 insertions(+), 76 deletions(-) diff --git a/src/ch/ch_hotplug.c b/src/ch/ch_hotplug.c index 902eab839b..25058e08f3 100644 --- a/src/ch/ch_hotplug.c +++ b/src/ch/ch_hotplug.c @@ -75,6 +75,16 @@ chDomainAttachDeviceLive(virCHDriver *driver, break; =20 case VIR_DOMAIN_DEVICE_NET: + if (chProcessAddNetworkDevice(driver, mon, vm->def, dev->data.net, + NULL, NULL) < 0) { + break; + } + + virDomainNetInsert(vm->def, dev->data.net); + + dev->data.net =3D NULL; + ret =3D 0; + break; case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: case VIR_DOMAIN_DEVICE_INPUT: diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c index 65dc89cfd1..46b31acc76 100644 --- a/src/ch/ch_monitor.c +++ b/src/ch/ch_monitor.c @@ -379,7 +379,6 @@ virCHMonitorBuildRngJson(virJSONValue *content, virDoma= inDef *vmdef) /** * virCHMonitorBuildNetJson: * @net: pointer to a guest network definition - * @netindex: index of the guest network definition * @jsonstr: returned network json * * Build net json to send to CH @@ -387,15 +386,13 @@ virCHMonitorBuildRngJson(virJSONValue *content, virDo= mainDef *vmdef) */ int virCHMonitorBuildNetJson(virDomainNetDef *net, - int netindex, char **jsonstr) { char macaddr[VIR_MAC_STRING_BUFLEN]; g_autoptr(virJSONValue) net_json =3D virJSONValueNewObject(); virDomainNetType actualType =3D virDomainNetGetActualType(net); =20 - g_autofree char *id =3D g_strdup_printf("%s_%d", CH_NET_ID_PREFIX, net= index); - if (virJSONValueObjectAppendString(net_json, "id", id) < 0) + if (virJSONValueObjectAppendString(net_json, "id", net->info.alias) < = 0) return -1; =20 if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_ETHERNET && diff --git a/src/ch/ch_monitor.h b/src/ch/ch_monitor.h index e3fde06f88..a462630be0 100644 --- a/src/ch/ch_monitor.h +++ b/src/ch/ch_monitor.h @@ -138,7 +138,6 @@ int virCHMonitorGetIOThreads(virCHMonitor *mon, virDomainIOThreadInfo ***iothreads); int virCHMonitorBuildNetJson(virDomainNetDef *netdef, - int netindex, char **jsonstr); int virCHMonitorAddDisk(virCHMonitor* mon, diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c index 54b21b0baf..a1f30f09e1 100644 --- a/src/ch/ch_process.c +++ b/src/ch/ch_process.c @@ -624,30 +624,24 @@ chCloseFDs(int *fds, size_t nfds) return 0; } =20 -/** - * chProcessAddNetworkDevices: - * @driver: pointer to ch driver object - * @mon: pointer to the monitor object - * @vmdef: pointer to domain definition - * @nicindexes: returned array of FDs of guest interfaces - * @nnicindexes: returned number of network indexes - * - * Send tap fds to CH process via AddNet api. Capture the network indexes = of - * guest interfaces in nicindexes. - * - * Returns 0 on success, -1 on error. - */ -static int -chProcessAddNetworkDevices(virCHDriver *driver, - virCHMonitor *mon, - virDomainDef *vmdef, - int **nicindexes, - size_t *nnicindexes) +int +chProcessAddNetworkDevice(virCHDriver *driver, + virCHMonitor *mon, + virDomainDef *vmdef, + virDomainNetDef *net, + int **nicindexes, + size_t *nnicindexes) { - size_t i; VIR_AUTOCLOSE mon_sockfd =3D -1; g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; g_auto(virBuffer) http_headers =3D VIR_BUFFER_INITIALIZER; + g_autofree int *tapfds =3D NULL; + g_autofree char *payload =3D NULL; + g_autofree char *response =3D NULL; + size_t tapfd_len; + size_t payload_len; + int saved_errno; + int rc; =20 if (!virBitmapIsBitSet(driver->chCaps, CH_MULTIFD_IN_ADDNET)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -655,73 +649,100 @@ chProcessAddNetworkDevices(virCHDriver *driver, return -1; } =20 - if ((mon_sockfd =3D chMonitorSocketConnect(mon)) < 0) + if ((mon_sockfd =3D chMonitorSocketConnect(mon)) < 0) { + VIR_WARN("chProcessAddNetworkDevices failed"); return -1; + } =20 virBufferAddLit(&http_headers, "PUT /api/v1/vm.add-net HTTP/1.1\r\n"); virBufferAddLit(&http_headers, "Host: localhost\r\n"); virBufferAddLit(&http_headers, "Content-Type: application/json\r\n"); =20 - for (i =3D 0; i < vmdef->nnets; i++) { - g_autofree int *tapfds =3D NULL; - g_autofree char *payload =3D NULL; - g_autofree char *response =3D NULL; - size_t tapfd_len; - size_t payload_len; - int saved_errno; - int rc; - - if (vmdef->nets[i]->driver.virtio.queues =3D=3D 0) { - /* "queues" here refers to queue pairs. When 0, initialize - * queue pairs to 1. - */ - vmdef->nets[i]->driver.virtio.queues =3D 1; - } - tapfd_len =3D vmdef->nets[i]->driver.virtio.queues; =20 - if (virCHDomainValidateActualNetDef(vmdef->nets[i]) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("net definition failed validation")); - return -1; - } + if (net->driver.virtio.queues =3D=3D 0) { + /* "queues" here refers to queue pairs. When 0, initialize + * queue pairs to 1. + */ + net->driver.virtio.queues =3D 1; + } + tapfd_len =3D net->driver.virtio.queues; =20 - tapfds =3D g_new0(int, tapfd_len); - memset(tapfds, -1, (tapfd_len) * sizeof(int)); + if (virCHDomainValidateActualNetDef(net) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("net definition failed validation")); + return -1; + } =20 - /* Connect Guest interfaces */ - if (virCHConnetNetworkInterfaces(driver, vmdef, vmdef->nets[i], ta= pfds, - nicindexes, nnicindexes) < 0) - return -1; + tapfds =3D g_new0(int, tapfd_len); + memset(tapfds, -1, (tapfd_len) * sizeof(int)); =20 - if (virCHMonitorBuildNetJson(vmdef->nets[i], i, &payload) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Failed to build net json")); - return -1; - } + /* Connect Guest interfaces */ + if (virCHConnetNetworkInterfaces(driver, vmdef, net, tapfds, + nicindexes, nnicindexes) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Failed to connect network interfaces")); + return -1; + } =20 - VIR_DEBUG("payload sent with net-add request to CH =3D %s", payloa= d); + chAssignDeviceNetAlias(vmdef, net); + if (virCHMonitorBuildNetJson(net, &payload) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Failed to build net json")); + return -1; + } =20 - virBufferAsprintf(&buf, "%s", virBufferCurrentContent(&http_header= s)); - virBufferAsprintf(&buf, "Content-Length: %zu\r\n\r\n", strlen(payl= oad)); - virBufferAsprintf(&buf, "%s", payload); - payload_len =3D virBufferUse(&buf); - payload =3D virBufferContentAndReset(&buf); + virBufferAsprintf(&buf, "%s", virBufferCurrentContent(&http_headers)); + virBufferAsprintf(&buf, "Content-Length: %zu\r\n\r\n", strlen(payload)= ); + virBufferAsprintf(&buf, "%s", payload); + payload_len =3D virBufferUse(&buf); + payload =3D virBufferContentAndReset(&buf); =20 - rc =3D virSocketSendMsgWithFDs(mon_sockfd, payload, payload_len, - tapfds, tapfd_len); - saved_errno =3D errno; + rc =3D virSocketSendMsgWithFDs(mon_sockfd, payload, payload_len, + tapfds, tapfd_len); + saved_errno =3D errno; =20 - /* Close sent tap fds in Libvirt, as they have been dup()ed in CH = */ - chCloseFDs(tapfds, tapfd_len); + /* Close sent tap fds in Libvirt, as they have been dup()ed in CH */ + chCloseFDs(tapfds, tapfd_len); =20 - if (rc < 0) { - virReportSystemError(saved_errno, "%s", - _("Failed to send net-add request to CH")= ); - return -1; - } + if (rc < 0) { + virReportSystemError(saved_errno, "%s", + _("Failed to send net-add request to CH")); + return -1; + } =20 - if (chSocketProcessHttpResponse(mon_sockfd, true) < 0) - return -1; + if (chSocketProcessHttpResponse(mon_sockfd, true) < 0) + return -1; + + return 0; +} + +/** + * chProcessAddNetworkDevices: + * @driver: pointer to ch driver object + * @mon: pointer to the monitor object + * @vmdef: pointer to domain definition + * @nicindexes: returned array of FDs of guest interfaces + * @nnicindexes: returned number of network indexes + * + * Send tap fds to CH process via AddNet api. Capture the network indexes = of + * guest interfaces in nicindexes. + * + * Returns 0 on success, -1 on error. + */ +static int +chProcessAddNetworkDevices(virCHDriver *driver, + virCHMonitor *mon, + virDomainDef *vmdef, + int **nicindexes, + size_t *nnicindexes) +{ + size_t i =3D 0; + + for (i =3D 0; i < vmdef->nnets; i++) { + if (chProcessAddNetworkDevice(driver, mon, vmdef, vmdef->nets[i], + nicindexes, nnicindexes) < 0) { + return -1; + } } =20 return 0; diff --git a/src/ch/ch_process.h b/src/ch/ch_process.h index a22790bb5c..e9b1f559d9 100644 --- a/src/ch/ch_process.h +++ b/src/ch/ch_process.h @@ -41,3 +41,11 @@ int virCHProcessStartRestore(virCHDriver *driver, const char *from); =20 int virCHProcessUpdateInfo(virDomainObj *vm); + +int +chProcessAddNetworkDevice(virCHDriver *driver, + virCHMonitor *mon, + virDomainDef *vmdef, + virDomainNetDef *net, + int **nicindexes, + size_t *nnicindexes); --=20 2.51.0 From nobody Tue Oct 28 08:15:02 2025 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=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1759764109; cv=pass; d=zohomail.com; s=zohoarc; b=nlKag5xPCL7LJ8C8aaYC7oNw+aqYGm74zXm1U7NAqA+QDv9NiWlvwt7m2jTaBLRG+ECKdA8Uscr2c4lr3ZeKMt1m0dGhQuDgabI2WVVBU64US1fWNLJVRU/21/iN5gq8+/J1seBFznnkBULJsY1NzCUBzNgtg71zh2gUjxV25bI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759764109; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=lZRiAGFLHUqEBf/cdPuYlU5BA9QX+wmjig+540lNNEQ=; b=NHni9Ws/GWXLlh+TdLcHaUsc6kMzeLBtSWLrtezgqbN8syQH1N/KTlrp8H3seLYux4N4AfQckxicDktzURh1/mgn8f1mE6vVW6RCD2W6q60n6tabkxSWlFd427FHBT0a79V1icJkJ3EskArUxjWuur6BiEHWbbtrWy5WdVZWAQg= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1759764109356430.0271179622089; Mon, 6 Oct 2025 08:21:49 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 0DD5744361; Mon, 6 Oct 2025 11:21:30 -0400 (EDT) Received: from [172.19.199.17] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 443934436B; Mon, 6 Oct 2025 11:19:19 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 609CF41CA5; Mon, 6 Oct 2025 11:18:23 -0400 (EDT) Received: from FR6P281CU001.outbound.protection.outlook.com (mail-germanywestcentralazon11020106.outbound.protection.outlook.com [52.101.171.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 3AF74441BC for ; Mon, 6 Oct 2025 11:18:22 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEZP281MB2008.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:55::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9182.20; Mon, 6 Oct 2025 15:18:19 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9182.017; Mon, 6 Oct 2025 15:18:19 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hW/2VtXX3kLf2ZdGCR4YxbYfV+yI1c8M0+ruzDgdMwNU3hTf3d8pgZTrZW7L/UZD8b+cr9rq675aIOHztO9j1s5BmIVcGARF7YL+wkbkrbn2Lh7K1UeDUNW77fcAtrG8JEBd0yC9Ja5J80GBx0G1DDXZRgQD7QlNkxoTNqE794V+kIFngsbmduy7GmgLKrl+sa33XOe/D6Y7mu0aGkU4qtAeRbYqWxwMYLK8mR+SSPEtKmbhJNaVdAoaS0LKAfHB9tzyaF9H1ANb+ovPbI1dZfGAPwTmTAWjYt0x4kZCdZ19nSF4FKtZmxtcTdWNhE2MXiZZ26+gbPtRep0jtN6mdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lZRiAGFLHUqEBf/cdPuYlU5BA9QX+wmjig+540lNNEQ=; b=T2KigE95E6kzg6pYso+Gk05H1CoszaxuLWmXFxyidXxMxkQCoumTjeRPO4JS4pZRwHrj5mdWUEjeVnr5CWNzpPYb1NdYDIzPANNyyB/CGXZhVF7TGekXtublb43j1sk6GjsxnFboO2oS+6kwUJ5NMzLSE2khn/hHveY4DiNV5iR2emUsGkqEVuiPdnXO+p+EdsbSM5QV6sm6y4kFo/vyZT8TFS65C7FKBX7+BqK6WypEQoAPioWFJuI+uUuepPbg9bTWG8ZXDsYAyLvgPF+LKkkDYXnI2KrN7LN6YWP1LCbqD6vVYK3LLsyW58gtAUCVLsiWSKb/zdyKHvroYuXgWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lZRiAGFLHUqEBf/cdPuYlU5BA9QX+wmjig+540lNNEQ=; b=erspAi2PkuFVk2vn5cfH009G+iH0Z6ayW6QzvvdCwDPuENxVGu8NAvVl/SrTEcOuu40m4ij9MIsD9QubueR7uvnii2p3lfQoJEQgZ8Lh463w78JhN3fBuMI8KwaHhDytljZR7IcneXwvMPkgxAnFbdfWxBdC7pikNDOOzCk1Uk0Qw02RkhEmeHPQwL6TMeb4n5LwoVKTZYt8XD7/NxDvu0WBzEcux4t0JRWXAIScKBJN2vVE4BLI+K/FE296htvmgWqFIWY/DlNhcfgARDoWR9CrYpaNtyheKu6B3JZYL2L4rmRHAL9JjEd6kk9cus23O844kZaEI9pI4nLhzywdrA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH 4/5] ch: implement network device hot detach Date: Mon, 6 Oct 2025 17:18:10 +0200 Message-ID: <20251006151811.244611-5-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> References: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::12) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEZP281MB2008:EE_ X-MS-Office365-Filtering-Correlation-Id: f35dc274-e9e8-499e-08fd-08de04eb9485 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?qr5XPmpZve92ExIGprcEyU3Ur++SoHC/JPvVwRSK1xH/bxvrW/1nyGETW4Hl?= =?us-ascii?Q?a6lY2kivsDU/iQNzphQeXOSsllxyDK/Pl3511ZMkiJJatsIMa5+T/HYthZjT?= =?us-ascii?Q?NDSw8MoKl9RnQ1elNDvI8adeH+mkQFQerarnjj63YOvZtGAVC9zTWB36Tm7r?= =?us-ascii?Q?sqXSc5pkgo6inNPORcuakL9c2cEKigwi/ehvSpMPRia2yR5IWw0aGzNAoZu2?= =?us-ascii?Q?u8FBCmUkVvUJWPJaUhe8GF3wG+qvm3jNJprIgYJLsRqLWzqdxetajfwL7m5z?= =?us-ascii?Q?DtJPpZxvpmQynsqBl4UdrQ/5Rtz9HrDg17M0gT0zbzp8y5orF0SM30x/SRRk?= =?us-ascii?Q?yVWcP3Ykm7FbsiFKXK3O1cFyouiL0636Nm+L47v20y1d695paSFWoabNzQR3?= =?us-ascii?Q?v2x8n4JTM2VxlL5SsP86aGjM48kpQmp7iX/il7SxWCG02bMxO4ctOuXXKVy6?= =?us-ascii?Q?oGrqau7S+fqMtC+CiuWGAivSEdfmnDuW0sCIGrrea8H0N2qKQnLfATOWJMJM?= =?us-ascii?Q?Rbmi816OTzn3utOKHAWzXphpD+nBkOvvKr/8f6QNacDIMYWq4wbL1CkldkkX?= =?us-ascii?Q?jsGwT6/U9C7tKbCA7XgUaQ9YvPGrbt8xy27u9EiTBSRvCUVQostdTs5zTRvr?= =?us-ascii?Q?VbSoahGY97ZCz9K4TaCg8Ey3ydXHlGaavNtkI9LQiGnI+LLsjAD0gcQsE0ec?= =?us-ascii?Q?nyhl3RumaMVLbWSI0mZVRoEvn/B0l5Tk5SexWw1p7QQJf9QakRs/mkllk4Nq?= =?us-ascii?Q?p24cKBBPKj+I7fcV2oPi9PK7+ZVPo1cyghVSAb0Px+SLOBze7K50FqzCXLop?= =?us-ascii?Q?xhBozvcPlXU1MYWSQU4513kM2RtNBs3anq77B9j/gwURxzjuUCA9WDUq89xE?= =?us-ascii?Q?H1Ne6cpdUc71C9KUIIwUQjvdaw1KU+USSIaNxxYXzJRKt5CTwLJkpa/3TsXK?= =?us-ascii?Q?LH9n52ZrqpzJlr5OmP0J4V7G5+mEsLpxAgTtlRJOH5PtxBkL8mUNWnG1tH8x?= =?us-ascii?Q?VsOcb/jog+Kx1nk5NV5mHJR5daGYZB+UffM64rBCabV5+DOCN4nZVbVAs26e?= =?us-ascii?Q?1JgGhMDrKJLiEXz5YX4IfrSy+HJYdrn7h4szanwBB2uRkoU43b/zQcjlY/97?= =?us-ascii?Q?gIOVEWaGLXg/CcRUxPkidKju0GMqi+2OtU46HyR6gDlg7iaxP/5nn+BTnAPy?= =?us-ascii?Q?T2zjZwNCZ2mVoJA3RQPB0EDBDb4cQ059mZ+O/pN4VOBEYuHo1rZA18toh5p+?= =?us-ascii?Q?JrLBRYOhmT8cnBrAYtC5lphcsZCuuI3bCDmxKooypKEjcK3dye0CzYLlgj2m?= =?us-ascii?Q?7gIlaAvMGWCH5IK91aTnO4elHo/2X2FrR1wK0eo5pKzIwr06jHM0oBwqYKXl?= =?us-ascii?Q?EBT0807arWzDNch1mEFCr/MS9ag3B04/8DF3Ol6pL5yHVZ/AynH60sXlo2UP?= =?us-ascii?Q?La9mtXeg10K9i5W7Zdr8VZbC6emLWJdl?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EIYSFY30HJocozGFpOMgXURDj8eg4glDUCrAIMSxbstzFJKO8PJPy048BOBT?= =?us-ascii?Q?tV80MEvl9tQ0sm2DvOGUdwHevLoD63KKtf92W2MzgsW4kXJxVEqNGGvwDvu3?= =?us-ascii?Q?tR/tJ5WJQI8jhSl9Jkz0cGKuQOzaioMrGnRaox2PD5XVszxu6J03P8D1p3Yf?= =?us-ascii?Q?kMyqi/t0Pjl+io6dx76IhR2zN4OqouXf8zmcR1fDQ//R3lXMD7MN8WAzC9l3?= =?us-ascii?Q?EBGa01ojP9Nuq22QyKstz04btX/mL5VnXebSk6FxeKuJmb5M5Mm9RKTZ6k9g?= =?us-ascii?Q?hr1pvyifTrVlTSbKbzitIFKthpJEDbVLP7+zAA2QnTG94FnTIezwJ7Kn7ymr?= =?us-ascii?Q?zvGxu4xJYNdAShl4W84vEHZlNCNj3P++p10kRANaKfVYH1VaRpUUFdT5GnQc?= =?us-ascii?Q?y5ZBLnmqwpQuBlAIShJ+n0EDrBHrUOke2taHcewnK8lKFnxIkUZzMKK8JufI?= =?us-ascii?Q?7O4bl9chM3nDtLe/DQrp4OGw4o/OnSGUpv85gIWSUzHxwMDexfeGesH7lmkV?= =?us-ascii?Q?0oDinonvdxK/IYsKmWgac9AfFSD/pSNrxv3ZOJjeIhlAiX5gfS0GBEtI5XWr?= =?us-ascii?Q?U4wSXR2zr6JQGZSc3/jO3ab4KRJv8kiSYNX2g3ZCBrZdIBDc9WNh5daqCcrm?= =?us-ascii?Q?6fCTEPMnCD0KKvDYDzQ5lijwaC8rsKPP0XNf3m7Rh5QDxp5BF6CfTxqjjXBr?= =?us-ascii?Q?rWsDVAXIuCyD5OpyHpJhMOaKodXekuDH0l2uHDNYUUMs90mRP57zgMLqO+kC?= =?us-ascii?Q?pBk+9iXW2BiGu6ub9ekGHntWkOQJJ1IjmTopnG8Rapn4PLrbXYCfxtJyIPqu?= =?us-ascii?Q?B8TfhVjNXFsAg1Hp1Qg/cebuW4k5G9DdVyXg+0z0Tdcr82KR0+HdUS+6/5gm?= =?us-ascii?Q?H+Uw5cli/EFW6KSu9K4nFJZbtDSHDltDpqkjLaf2Pmfhfs1Ju60PHySH0qec?= =?us-ascii?Q?8lmUXyF+dsSbjf5hCxxYwR23sTJEFsIMejici+hDfEICkzOgsvRseex7XyjZ?= =?us-ascii?Q?8oSYnHC9DYEJJsohnyIaWGSc36+Pybxq3F7yh0oY8MfbgsH2U1x/KC+4zMO0?= =?us-ascii?Q?EvHOpc1bVIYS8wZ81AUtE+lAFxXbNA60F18bBwiSR4Yyz+fUkOLIxzkHuEmS?= =?us-ascii?Q?yWzI1Eb7uYCs+QCdDULsSvdoFGf9fp/BZXh/wlndPTWWEne49QnsLLyegSMR?= =?us-ascii?Q?7eSzuJ4ZjQjjhiAnOsOOiFZSpiM3fr8tZ9VAOFSacFGqnxpv5xu9KI5Cyz7j?= =?us-ascii?Q?HEYz5LDJ+tuIRz11SBan9W6pg58LfFMman4+yFsdkS0NZljvW2kXikVM5kZm?= =?us-ascii?Q?k8bprEoeGgWbIm+zQzzIjDnlqxoqIdNC0AiyivQkLYg2A0JhdB6Oqd455pRN?= =?us-ascii?Q?t4Q/rGTHBbWeXPyrQiYcWpkr+KtyKP52/5zOHPYpjcS/iYPHd29UaLKRBS/x?= =?us-ascii?Q?rf/h8Tu15CXA/iY1iLqFxePmwt+y3ajXrk/NJAS4GI+G+BodaJl8u6Y9s11q?= =?us-ascii?Q?XzhhOOcKqCSxHTFAOJT35m6293t0OgHF5fvDvTk7Io5HEZonOx1cY5ARAijL?= =?us-ascii?Q?IHSshf3uY1WZ7ff0/fnHm62FBEGEXw8vFmancxeVSB+XYL9xXHyISiGBehmF?= =?us-ascii?Q?ewG/yw6NLQFwN4fXpSxk+d+C7CEZj0A7ihPeXJNGBh26?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: f35dc274-e9e8-499e-08fd-08de04eb9485 X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2025 15:18:19.0035 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rW7eRe9tLI/cCC7uXXft+xtZLUqaBSXozC8GqdiAfKaLlCZh3vi6jDDWE0KdJKTo30ke8UXlCo5JG/daVaoFDX5DsbMU8025x1701Mcg4T+kHMKyLpzyzxCexhgeMxLu X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB2008 Message-ID-Hash: JL4PRURJCK5DOLB7JVEZHI3ZAHZ5PWWT X-Message-ID-Hash: JL4PRURJCK5DOLB7JVEZHI3ZAHZ5PWWT X-MailFrom: stefan.kober@cyberus-technology.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefan Kober X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @cyberus-technology.de) X-ZM-MESSAGEID: 1759764115201116600 Content-Type: text/plain; charset="utf-8" On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- src/ch/ch_hotplug.c | 69 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/src/ch/ch_hotplug.c b/src/ch/ch_hotplug.c index 25058e08f3..480acf93a6 100644 --- a/src/ch/ch_hotplug.c +++ b/src/ch/ch_hotplug.c @@ -24,6 +24,7 @@ #include "ch_process.h" =20 #include "domain_event.h" +#include "domain_interface.h" #include "domain_validate.h" #include "virlog.h" =20 @@ -220,6 +221,50 @@ chDomainFindDisk(virDomainObj *vm, } =20 =20 +static int +chFindNetID(virDomainDef *def, const char *dst) +{ + size_t i; + + for (i =3D 0; i < def->nnets; i++) { + if (STREQ(def->nets[i]->ifname, dst)) + return i; + } + + return -1; +} + +/** + * chDomainFindNet + * + * Helper function to find a network device definition of a domain. + * + * Searches through the network devices of a domain by comparing to 'match= ' and + * returns any match via the 'detach' out parameter. + */ +static int +chDomainFindNet(virDomainObj *vm, + virDomainNetDef *match, + virDomainNetDef **detach) +{ + int idx; + + if (!match->ifname) { + virReportError(VIR_ERR_DEVICE_MISSING, "%s", + _("no interface name specified")); + return -1; + } + if ((idx =3D chFindNetID(vm->def, match->ifname)) < 0) { + virReportError(VIR_ERR_DEVICE_MISSING, + _("net %1$s not found"), match->ifname); + return -1; + } + *detach =3D vm->def->nets[idx]; + + return 0; +} + + static int chDomainRemoveDevice(virDomainObj *vm, virDomainDeviceDef *device) @@ -239,9 +284,19 @@ chDomainRemoveDevice(virDomainObj *vm, } } break; + case VIR_DOMAIN_DEVICE_NET: + virDomainInterfaceStopDevice(device->data.net); + virDomainInterfaceDeleteDevice(vm->def, device->data.net, false, N= ULL); + for (i =3D 0; i < vm->def->nnets; i++) { + if (vm->def->nets[i] =3D=3D device->data.net) { + virDomainNetRemove(vm->def, i); + g_clear_pointer(&device->data.net, virDomainNetDefFree); + break; + } + } + break; case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: - case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_INPUT: case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_VIDEO: @@ -296,9 +351,14 @@ chDomainDetachDeviceLive(virCHDriver *driver, return -1; } break; + case VIR_DOMAIN_DEVICE_NET: + if (chDomainFindNet(vm, match->data.net, + &detach.data.net) < 0) { + return -1; + } + break; case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: - case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_INPUT: case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_VIDEO: @@ -360,8 +420,9 @@ chDomainDetachDeviceLive(virCHDriver *driver, alias =3D g_strdup(info->alias); =20 if (virCHMonitorRemoveDevice(priv->monitor, info->alias) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Invalid response from CH. Disk removal failed.")= ); + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Invalid response from CH. Device removal failed = for device %1$s."), + info->alias); return -1; } =20 --=20 2.51.0 From nobody Tue Oct 28 08:15:02 2025 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=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1759764021; cv=pass; d=zohomail.com; s=zohoarc; b=O0N7Wcriof9Og4KwigHUSG1QcuASbgQcmLUmBcLbKciWxxKZ0VuAiQHg9Us4mtFu3zkUIoqFABJZQ+NqbTYF7IGUmo5NOXkSoXUSk+0z+dj4K0Ft5MihXiuGaR2QIp1Y0lNWytFot5QJB884lfAj0CyWst5ME2Q8xsvnxTEnRME= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759764021; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=7PXkMfOfFJK5ZMhgOXC7rLcYZtL+24Pe5WrPTutFZn4=; b=aNJSRxFg/WpzDuuH6WBYBLGi8xQ0/8LFUVX2S+9OnGIZ0PKv9nfZT83UBQhZayOezl3Oi7cnPFn2oE8A2jLuOlGZuiGhnD4mLniokpUGM3GZbjuTSXMvYZP7Il7jRuHjSsBQxT4/jGFghuu3K38WwzbDH4pBzOBiwnrQA+c1CEg= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1759764021822483.8702457689103; Mon, 6 Oct 2025 08:20:21 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 36B744442E; Mon, 6 Oct 2025 11:20:14 -0400 (EDT) Received: from [172.19.199.17] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 2148144332; Mon, 6 Oct 2025 11:19:06 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 9344841CA5; Mon, 6 Oct 2025 11:18:23 -0400 (EDT) Received: from FR5P281CU006.outbound.protection.outlook.com (mail-germanywestcentralazon11022089.outbound.protection.outlook.com [40.107.149.89]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 9E685441FF for ; Mon, 6 Oct 2025 11:18:22 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEYP281MB5624.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9182.20; Mon, 6 Oct 2025 15:18:20 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9182.017; Mon, 6 Oct 2025 15:18:19 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AymaGVNMgSFpcPIq7+LW3brMM/yBqT7bFd0FeXVgJyLOiYyb2gGEz+b36JDUIdZ6N+USUuzkfRV+B806QZaZbPzIV7uqQpU7wVRHDWPKA2E4OrIpS4um8c/sXtwpCA7iy4R2I6U+jj05FTY3jPRtCSSQKQ1pJXLcTMLH7jZxDKn4dTl7vhES8QJAJxwn5YNwBKbeLBYwlc0DpA0fvBMBvHTU2yUPT5P5KToa4nFn7f0eo+rFufqsViUFK+xqdVRf5M+pR1w/vvwDbeLDTe/Cos26AMYK4uLW43CDZLEwMnXcSQS64KE13pwVggEM39dajBfr3mCcFH0eTo3uRIm59A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7PXkMfOfFJK5ZMhgOXC7rLcYZtL+24Pe5WrPTutFZn4=; b=qbLOmGVEY0ncMzOwIXZaFsX0UGd5NKtVoUqqoI5EUa9MzVeBM2cvnfrgwfkIxHYe/NIpgpO5JT9NTXzFRYjKSXWww/pHcGgwVBpsZx/qpVkHP8KtVpAu9tWsEXa83K1taAyLe0O4nMm8XhaUiPdSf12hQ9gZCSJt07Dc+6a2oT+uUnydxLbl68Lx1liiSil0yVLyHKtbH6CgxbH462CwpPqf/SK/QTjwfOb+oqsB2YXmsI4tp5shtMeYUZ9dZoub4sqhSXRQiN03TB59kBZtjaRqdZR7FyzZ3cTCihXZtFERJ6QiZSf2xKB99bpHaVWe6zuZlOmc0Ut86UR1m4+6NA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7PXkMfOfFJK5ZMhgOXC7rLcYZtL+24Pe5WrPTutFZn4=; b=LxnNeqh0usZAg76YuXVBWeY81NU66TI3R3cD2KHVb9vNX/rdpLoExv6z+h5Fm8kra0msr86Dv8joumEkRxTS7SIr0o4T97bfRVj/aHkRH3qkAZLFD/Ua+W55qy0lTh12erlRQmR5U8AI7NtNstUhHuUufB7DkIVyloVbU+dQKMkMw6MrpVumVoPLx2Mx2U9p/Mf7m36qGrQmf1CmX3OsvPUKeAXKnclPE7Izd6/9vR6/NeXA3eJv1MNFzHSwgmvYhZMmp3bLeC1sEk3dmeLMA5YCMMRipv5JTf4kv19yU7RooVZNUBffnLS12Vgb13ZNWAw+nrzm/7oT9kTzcUi+pg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH 5/5] NEWS: ch: announce network hotplug feature Date: Mon, 6 Oct 2025 17:18:11 +0200 Message-ID: <20251006151811.244611-6-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> References: <20251006151811.244611-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::12) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEYP281MB5624:EE_ X-MS-Office365-Filtering-Correlation-Id: e0403686-cf12-4936-b9ba-08de04eb94c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VLfnDuuY5hKiTaXDFiLWFHV4w9uDNn/NMiR+SgxxZuysP9Gpnxwjm0ZeMhh4?= =?us-ascii?Q?nhbE//VkA2nmyyKHSa0+wc0969A0YbnWbEdxPVVQlrILy2WsPOws+FkQ+URz?= =?us-ascii?Q?9Acomuj6HXMewzvSM/dCe0PNZMmUCJ/EtwrlsO9/xMIJ7KTtDoOMFewNk6sm?= =?us-ascii?Q?luIXBQG8yLTqAOCpRlOzGbEt7T3ZZrwUm+w1kZ4tFxqe4BMnAzj5fIEKVPo7?= =?us-ascii?Q?IbTmApBknrYoWvoaZ8pOn+hF1q90vkDn+SvmKw5A1R/crEqFBq5VzAuMc879?= =?us-ascii?Q?8NVkdf4+B+CpEBuJOhxMbRxxSxdZD/lBiIsHvyI0HWtc1oopWsBS5cQmU8xs?= =?us-ascii?Q?2tBUJfo1ezOlI/yR2B67zfD0TgioyDoRmx/RbVi63Qio8D0dVZh9rNU4es6+?= =?us-ascii?Q?V4DL33N6ynnHcRwC2AGqVNfwyu5s3Bcl7AvePrSC4gVBzO3l5Farp97fsffD?= =?us-ascii?Q?7AHl0i7H0jkAcwc82jd51Jer5F4gF+KlYHO2wtzw5nvlM5GWUxYuu9CrUCh1?= =?us-ascii?Q?d3krajZqF+GUYhZkLcPyWw5tNGDunDtD/wmJkhev+To/eV5wFgw6gWUKlnFZ?= =?us-ascii?Q?z57lG/gsPxhmVARsIHFWhGIXxvOOU0p7ImlCYl1EGA2OYbSU8S7fjQuOIJpQ?= =?us-ascii?Q?R0m9Jg6lp+2I40gxE/4+Uwy5HvNmOEmnVn6HRRJ4zO/v0iPQMp0xqrA5hfuA?= =?us-ascii?Q?VcUkgjMC1/e6He5jFxP14EelRdpqOhe+LSmf9TikHf59vHL6pe/pBannz5mC?= =?us-ascii?Q?rZADsy5SjpHtmwXkSwTm0CPsBAueT+o+nXQ5Jy5yqXR6WteckynhgFukJZn9?= =?us-ascii?Q?fzeUsoofoA1dXPi0Z6K//BTJW3sCC5LW+Ub7sKEmMey2DQ+0b9WpRQ1ZfrEu?= =?us-ascii?Q?AfJcjBdcxLIXcwldf5jSbiN2XbYMoZ8DuReoTllFEvhFRVAo3fVvJmQ3f6dp?= =?us-ascii?Q?EhKwmFfTJK0GlQb2I4GW883sscgPDzmc7m4Td8x7U0p9TjFNvmMnKTjAuvea?= =?us-ascii?Q?nniqM0dS/L60qqFLvm2GMtXYs5+u2bBQfHEP4NzGUrB7RPz+mXrXhiZqdvdZ?= =?us-ascii?Q?QP9OjOxTNmihh60q0hgMWYzTtEGt4CXGu+VPWMZ9SESiagzPntZ+kgR8QZ4y?= =?us-ascii?Q?klZLkTpzG/HRBXmaWd04YBkSRvb32JJQBWdVswe2QPXhRp90IZrzQuaPEiA8?= =?us-ascii?Q?6SYl0aGJQtO7P+GAiYtMqqh9OrRz9l0bsuLtJA67E1AZGRx6nlNXZMRdOLyL?= =?us-ascii?Q?GBCkCz1hNNmWXwO+k0E+ux2odOHvvYVNOfJ9acUHoz1+QJR19zy1uqWETN0d?= =?us-ascii?Q?lCfZByMA61iL1+UQiI1C0FXXeJKYA6kQ8UfnbSJ/trRU0o6rk19RmPXKmiAC?= =?us-ascii?Q?PE5lmgl1Y2n23+vRKkpdqw/gMM8dm/YLQXJs9Z23DbqDW1m04nzr4971Jfff?= =?us-ascii?Q?F3cpRIIcIyQCeRNrtYImUr+Y/KIlvo7P?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lR80G8agvOWqvgqGdNx8peZAz3fpJfHUz2gk3x7c/5LD+7gLVrJ3xPEPSAus?= =?us-ascii?Q?CpWh218V3BOS4y3CD3f+FwBrFornCltnzkaBP+CBT79DLpAyjQzxq8aMMmrO?= =?us-ascii?Q?BZRMFgoIokAepgMhn2WiCV0EU9G+W9ueY3uaSZJRQD7D3touo84xAIDkpicE?= =?us-ascii?Q?YClzNETzfL3zNvMDaEcIQQntyg7P+mw3H86GEPARurjCi5C33ox2LkBT5OC5?= =?us-ascii?Q?pCUUWxvyHVFCpLDfwzfE1CFKxx2yjCHeJjiLOdMdPz1OTQdwvM3ces0C2QFQ?= =?us-ascii?Q?gduFWQUx3TBei8jA6/cWhH0Ak6Mo1gyMwvgXjONhfbSqtzr8a9kWMa/5NPWu?= =?us-ascii?Q?IHOGYeT8NcPx9P/AJKQiUNEep3M+m0G8MCRB0Q+O1b4c0+IhnzF/OYsCl/Ga?= =?us-ascii?Q?914WvU62b4WQueuDYlxO7s5iYDg2M1/iREoDx+IkUJywRudsZQ5IUBzDz7uC?= =?us-ascii?Q?HWvbly+DfUy7OwvQ86W4hQl1yJjQNtssEHljfNcOltNK7h6CWBkviStc/BZH?= =?us-ascii?Q?xZiY7xZTXcSIZBZ3vuHWvuOqokMM85IUHDl6UBNHTqkgUkHh2zwiz6Z4rdCp?= =?us-ascii?Q?QFNZ1WjJCSZTqyH6gXBYBr5F5eKDMn9Ix2j1e+f2i1bK5fLhelNCYR2KLtbs?= =?us-ascii?Q?Ve4f1YfeRAZdoSrFsPFVYTpaFfYmJZbrXTXmwuJN+MMSl6LkNCFIP+Pxh/gY?= =?us-ascii?Q?emzA6VMH+CgR7lUkpXGb6pOmeCZiQJTzxEKvs5scIHXK62ov/zb3z9KHsxHj?= =?us-ascii?Q?jbKFezJjWfAfQvjs3v3lR+dpBUBJn0p80zN0L0T9lt/VVpAxmwCqN+lvnCB6?= =?us-ascii?Q?rIgnrZ0OEMW2ayWplbn+f8NMYMioxegfKV3LyW4rzbeJYzpxyUvbPWoXkYT9?= =?us-ascii?Q?fSNWYaq+OYfdlUQEDkooVdpFx1IiSJUMnx4kHM6f/ZSutVSgfhSt3FPlHRne?= =?us-ascii?Q?4nSpGlNorCsdj3Gib/FOyivs/jM5TjYa63dkD/f9bc7U2gd1sdzB5nSFBRKz?= =?us-ascii?Q?q3rJwYwT99YQEiLJTKubPIxwJTHGrk5hvd77mBzyYpKLxEX2WiyjqjoLSr27?= =?us-ascii?Q?HCKn0GBXwlM0pd9q5LFfCQ/X28k4dASeokqKkcJGF/4D6uHRKkaTBcn2Cwkg?= =?us-ascii?Q?BezUVFb874lYzgYnZByKZonmWtVfsSOx5oB+SKt+NwuEnVjWLVNwuaoeAkEq?= =?us-ascii?Q?K6H59n9ruAkwIG9AooHMpzngzkgtFTwTF9omdyZQYu4Y1YcjJ3lx//nudFwG?= =?us-ascii?Q?fGmKYwd4g2BEYEDK4ZBELcCppjo2YZeIKdKwEso3GDJmuZLhrdkKXNH8rdBj?= =?us-ascii?Q?MAq1eIKrrmuuf7iTq/jglJM2Y3b3sl+ahoAYSrL4Sv25a/1wxn2vgE0LN8bd?= =?us-ascii?Q?Jlu2+rFtA23UJiYjXFzhRuZ+GnRS5Cgt7TNEs7LhNVIzFIUziO35hIciVKjK?= =?us-ascii?Q?zMMPGrCXS0XQLMU9Jp5PloZqSt0WcYatT2yqIaJemIYrKjWrC0d1RGqw+L+Y?= =?us-ascii?Q?Y6MB9Pdq/oV4rxP9R5S7saZ48JJjKKoNGzS7MM/Ud3mgC2TmGwkCNpQFPn2z?= =?us-ascii?Q?d9rwBPgiCh6C/EXD0iqiBfDE7zDQh9ekqZ0sS74FPDMB7iwLlT2kcEeILD1y?= =?us-ascii?Q?Igs2FYkg/jHj5ciq5ff5rIz5JjPn10JkSIk796gNxQOj?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: e0403686-cf12-4936-b9ba-08de04eb94c1 X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2025 15:18:19.4463 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oqqqnu7x/uwUBO5/JPFu2S7obg21PTtqm3JyxCWGIfMRaczBesoKm17RHV1UD/KnCcGkkvKrvKMWPaP5jLeacjif9njGeDuP49xJhg1/CM30xNhGpVDZq3AIorFGjPbj X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEYP281MB5624 Message-ID-Hash: WD4RBDEAT4HFGJ4QNNEM74LIUTCMMPQV X-Message-ID-Hash: WD4RBDEAT4HFGJ4QNNEM74LIUTCMMPQV X-MailFrom: stefan.kober@cyberus-technology.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefan Kober X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @cyberus-technology.de) X-ZM-MESSAGEID: 1759764026616116600 Content-Type: text/plain; charset="utf-8" On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- NEWS.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index 006b2ccf6a..fa33721763 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -17,6 +17,11 @@ v11.9.0 (unreleased) =20 * **New features** =20 + * ch: Network hotplug Support + + Users can now attach and detach network interfaces of Cloud Hypervisor + domains at runtime. + * **Improvements** =20 * qemu: Improvements to USB controller model selection --=20 2.51.0