From nobody Mon Sep 8 21:39:51 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=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1747147485; cv=none; d=zohomail.com; s=zohoarc; b=fvmKK9n5/zo4YCNMcdJo+4+NeDz0IYQdkqdUGtZ7jq9SgAM1pUHKvjBa1FXEnUy0meH+qfpRsD9xfXqzrX+f3iqiW63zC8MUYioTGAo+lIo1JyPhDjfdYKOUvIbeCV3DQ+6OcN6qLW69rZ24pC+6m2vyhY1Z67AcLtIcHQ2uEC4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747147485; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=4gdW1wOxi+FPcGD/VU9m+j+11wCVse1EpHB6Tzqz8PY=; b=cawH1IBHiIPz+zUO99LOQOI7DdzqDNHnFmkS7PYlJTLUti/b296JQIQDgThTLnNn+bahnmbK4ZkfC0QD7C5gM1d//bGi021zhImqxuD6qtFUq73wAqGjjjbZdG1bYBshrhOuZ6ErpGS2LnF81S4Lot9U6KWdXmeC2LEpCDVJbCE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1747147485648842.9186316908763; Tue, 13 May 2025 07:44:45 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id CC7C0E6A; Tue, 13 May 2025 10:44:44 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id C54E9E78; Tue, 13 May 2025 10:44:04 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 47870CBA; Tue, 13 May 2025 10:44:01 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id DE4E8CB1 for ; Tue, 13 May 2025 10:44:00 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-63-xdKQisRrO5SEnL6uCOYkjw-1; Tue, 13 May 2025 10:43:59 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 66ED81801A0A for ; Tue, 13 May 2025 14:43:58 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.3.236]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id A72D218003FC for ; Tue, 13 May 2025 14:43:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747147440; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Nbh6yuuTLD31xd7J1XI6s/fYYGYVn5QmLdcg6whYjCs=; b=NMlIUHVfU3CiwcL+xDbcOGdBDzDbxhd5ev8x/IBABMThlgIfen/6VfLyWm6RmvXmkawAlY C/qlWU2Aa0nOQXryXWP0+N5ee/6Qq8TPTz2ZYOhrsTlGFb0bRJCSX/o0b3P16vuvso5Okt VtbQbf38wdHGe6cKNKm2Jwt3vrdD+H0= X-MC-Unique: xdKQisRrO5SEnL6uCOYkjw-1 X-Mimecast-MFC-AGG-ID: xdKQisRrO5SEnL6uCOYkjw_1747147438 To: devel@lists.libvirt.org Subject: [PATCH v2 1/4] virnetlink: Provide stub for virNetlinkBridgeVlanFilterSet() Date: Tue, 13 May 2025 16:43:50 +0200 Message-ID: <1078f1a52e15112ce463c018ca7342e46c2d90f7.1747147293.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: tXZ2Abg2FwDTtaKdO0zkfO3LPao7niFWnJ0IYCjLqUs_1747147438 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: J3OQMYIOXMU5BLE4AC264IHJJQHPOHYU X-Message-ID-Hash: J3OQMYIOXMU5BLE4AC264IHJJQHPOHYU X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1747147489310019000 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Michal Privoznik In virnetlink.c there are two sections: the first one when building WITH_LIBNL support, the other that provides stubs for functions declared in the corresponding header file when building without netlink support. But the stub implementation for virNetlinkBridgeVlanFilterSet() was missing. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/util/virnetlink.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c index 206646d9d7..e3fcabca15 100644 --- a/src/util/virnetlink.c +++ b/src/util/virnetlink.c @@ -1344,6 +1344,18 @@ virNetlinkNewLink(const char *ifname G_GNUC_UNUSED, } =20 =20 +int +virNetlinkBridgeVlanFilterSet(const char *ifname G_GNUC_UNUSED, + int cmd G_GNUC_UNUSED, + const unsigned short unusedflags G_GNUC_UNUS= ED, + const short vid G_GNUC_UNUSED, + int *error) +{ + *error =3D 0; + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _(unsupported)); + return -1; +} + int virNetlinkGetNeighbor(void **nlData G_GNUC_UNUSED, uint32_t src_pid G_GNUC_UNUSED, --=20 2.49.0 From nobody Mon Sep 8 21:39:51 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=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1747147504; cv=none; d=zohomail.com; s=zohoarc; b=n2o1cNSIDTxWDcLSfNLVtHFfDikEbv/J44wxPFkOfx+8GVqDW5bgMp9+ib8rLTAp23WRc/e+uyl3k+GH/LCWcODVflRmK/uBdiZ4gxKNxzsuhZxhDIn2JoGfZfwaIzU11BXv5OdA5ymT7wpWd3MLJUH7Ld6590QTIF6xjQ2kiRM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747147504; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=kpBMtvbbssk8GRppqMqtPBBUjflFx5oyxAtMC5xFwOk=; b=K9I4Q6KcvPYxbwghyp33VJlfM2zuEZ4qKLK/m0tQSt8c5o5C5Y9YZkVV6o4iLb9GF/HSGuQCx7ib5mWZy0FuhozXDFoXQ2I7DabXxksVlixb+kJ4s3pghE2POgAizSJ/foigkmoR6v4srknU7lp/DBq3hUuuowrwHwG1vhkzJ8I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1747147504617620.7420259729728; Tue, 13 May 2025 07:45:04 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 0C29DDC6; Tue, 13 May 2025 10:45:04 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id D652811DD; Tue, 13 May 2025 10:44:08 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 93AE1CBB; Tue, 13 May 2025 10:44:03 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 1C59BCB1 for ; Tue, 13 May 2025 10:44:03 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-416-V92LOypkOhqOOUWw1I5KaA-1; Tue, 13 May 2025 10:44:00 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 8690E18001D1 for ; Tue, 13 May 2025 14:43:59 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.3.236]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D1B5118003FC for ; Tue, 13 May 2025 14:43:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747147442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dlr2jhXvyCe6vy0WLCldUGA1QooKGuPpec98R806Y5Y=; b=ixYR4ErGplazawSVFxQd6FM8d3kyh+hrnV9eetYM00FEZiYCfOLx/ob1WQuwhkXwoFtG92 16Le+Qy/BJOyFick0u4OQClHztfZTHGVV5cNg5bZOiJgB0BJRPIAgtELhQpVmaS9i+qCVt K53O+aacAGf7AHTUlH+UDzffVHLDfY8= X-MC-Unique: V92LOypkOhqOOUWw1I5KaA-1 X-Mimecast-MFC-AGG-ID: V92LOypkOhqOOUWw1I5KaA_1747147439 To: devel@lists.libvirt.org Subject: [PATCH v2 2/4] virnetdevbridge.c: Fix comments in virNetDevBridgeSetupVlans() Date: Tue, 13 May 2025 16:43:51 +0200 Message-ID: <90aa174ca5e9771877d3eb790c843d8ebffd85f2.1747147293.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: cROgOzI5zY9G3nl0R71HAsNZZyUwewgB7cy4L5td_sA_1747147439 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 5WHDUWYBTS2YLWNXNMBHUJ22WBNOWPK5 X-Message-ID-Hash: 5WHDUWYBTS2YLWNXNMBHUJ22WBNOWPK5 X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1747147505370019000 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Michal Privoznik We still use C89 style of comments. Fix C99 style of comments used in virNetDevBridgeSetupVlans(). Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/util/virnetdevbridge.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c index c79d0c79b7..3b54e2cb1e 100644 --- a/src/util/virnetdevbridge.c +++ b/src/util/virnetdevbridge.c @@ -322,7 +322,7 @@ virNetDevBridgeSetupVlans(const char *ifname, const vir= NetDevVlan *virtVlan) if (!virtVlan || !virtVlan->nTags) return 0; =20 - // The interface will have been automatically added to vlan 1, so remo= ve it + /* The interface will have been automatically added to vlan 1, so remo= ve it. */ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_DELLINK, 0, 1, &error) <= 0) { if (error !=3D 0) { virReportSystemError(-error, @@ -332,7 +332,7 @@ virNetDevBridgeSetupVlans(const char *ifname, const vir= NetDevVlan *virtVlan) return -1; } =20 - // If trunk mode, add the native VLAN then add the others, if any + /* If trunk mode, add the native VLAN then add the others, if any. */ if (virtVlan->trunk) { size_t i; =20 @@ -357,7 +357,7 @@ virNetDevBridgeSetupVlans(const char *ifname, const vir= NetDevVlan *virtVlan) } } } else { - // In native mode, add the single VLAN as pvid untagged + /* In native mode, add the single VLAN as pvid untagged. */ flags =3D BRIDGE_VLAN_INFO_PVID | BRIDGE_VLAN_INFO_UNTAGGED; if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags, virtVlan->tag[0], &error) < 0) { --=20 2.49.0 From nobody Mon Sep 8 21:39:51 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=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1747147521; cv=none; d=zohomail.com; s=zohoarc; b=IC/hlzfz09zBXM3dxlnISGPFQRvvM6/4MV1pFYedjAoCeMV+2N0b2bFkt4tbGshBNPi8vO87PXg2NnCf4zy+z51SCzNUoR5F8eZdtPIz8mpd3CFOA4tMN+Us6ihI/Kff/gul/4C+tRrR4CkFm2Wh6CE8QRr8Jlz2EEgMaNbsT4Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747147521; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=1vLw0AIh10C4F2iBU+zs8uw806QbuvupnA9Y4Cx8oPs=; b=ajeazHDRMRFFXUnOoJrPDSQ5WqY8v9fKfrOuCrWWSniIc86We1rlaaVCDAdDWHv6eeDJNnYPwPWqg9ZO++Rdnj6USa0wxp3EUpKF6NotxjUa+G2tjwwz3HqUDw/5vjJzbdOTdJxXzEQJu0PpnxIfbCTx9yR/HdBmrg5sRut6Y7Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1747147521262323.3094977172726; Tue, 13 May 2025 07:45:21 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 08DAAD3A; Tue, 13 May 2025 10:45:20 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 8D4C21123; Tue, 13 May 2025 10:44:11 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id E4DD1CB1; Tue, 13 May 2025 10:44:03 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 67718CB3 for ; Tue, 13 May 2025 10:44:03 -0400 (EDT) Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-421-17990lASPzyuC6Yw3_eweg-1; Tue, 13 May 2025 10:44:01 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B166E1955DCE for ; Tue, 13 May 2025 14:44:00 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.3.236]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id F1A3D180087C for ; Tue, 13 May 2025 14:43:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747147443; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fOH6QIhvO9Rypsya6N7nNoJjoJ2m+CBV/TS3Foj0r+M=; b=GYHJ9ybo2ydcFeMcOUhppf2udVhStKH6R/L0XY9AH/oBqguYnVeKdN7AfB2a3peX0qRt5F Yio9g/BV1jHjqAFcrWACp8ymY+u12GT9bML7MdqNTGZtuheBow+P5jiL1UXSjwHsWYs/zI 7IdhO3yEtdcoWlnbF9YRtr2nAHtesRw= X-MC-Unique: 17990lASPzyuC6Yw3_eweg-1 X-Mimecast-MFC-AGG-ID: 17990lASPzyuC6Yw3_eweg_1747147440 To: devel@lists.libvirt.org Subject: [PATCH v2 3/4] virnetdevbridge: Include virnetlink.h more often Date: Tue, 13 May 2025 16:43:52 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: oe9Ba2lqOHDli1i2XapQ2WlptYeXFooj2vdEwsin6X4_1747147440 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: PEN5P7PGZSSIHHT4L6TDVCYOYHQ4CD6H X-Message-ID-Hash: PEN5P7PGZSSIHHT4L6TDVCYOYHQ4CD6H X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1747147523340019000 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Michal Privoznik The whole point of virnetlink.h is that it hides away the build time dependency on netlink. It wraps netlink functions in our functions which then have a stub implementation in case netlink support was disabled. Though, netlink is still Linux specific, so keep it in the '#ifdef __linux__` block to cause a compilation error should anybody try to use any of the wrapped functions on non-Linux. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/util/virnetdevbridge.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c index 3b54e2cb1e..806ccc5fa7 100644 --- a/src/util/virnetdevbridge.c +++ b/src/util/virnetdevbridge.c @@ -30,9 +30,7 @@ #endif =20 #ifdef __linux__ -# if defined(WITH_LIBNL) -# include "virnetlink.h" -# endif +# include "virnetlink.h" # include # include /* HZ */ # include --=20 2.49.0 From nobody Mon Sep 8 21:39:51 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=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1747147546; cv=none; d=zohomail.com; s=zohoarc; b=i5BkqSFXq4KXJ9IaE1ydTxR1LC2ZtWtfxgwg7WHrHbAX9wNzeAAxAdDxckK1JABGLbIkyLeq8JiMq6Pkrk01xO1aOvzakQVaB2ULzBx1Dwqe8bCfx3qZitQU5Ti3AGZ25P5e+6CeFwm3IsNwbodk0xU2xH4bPE8cp/zPHQ9vg/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747147546; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=6veIou7qXTx9Kd6R3g2er2TRx6192XEefcHC+FKBtmU=; b=b2+Y9X3Tn73dEjUWzx7tzZjWCWAicxSBXw+zdMrRazD/JPtwV/uMVL9F4Y8FRFE33IkWqfDooZzij6i7GNx7pZqdi7IGbhuysNCu+jXpokx+BgPTDQx93pL+4YMF3j2GTbSINVq4tmQ17xuJ21UnSDDEOu4k7sEiviA6T/tpnwc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1747147546496116.53276067478214; Tue, 13 May 2025 07:45:46 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 8A02CD0F; Tue, 13 May 2025 10:45:45 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 398321216; Tue, 13 May 2025 10:44:14 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id C6347E88; Tue, 13 May 2025 10:44:04 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 01F13CB1 for ; Tue, 13 May 2025 10:44:03 -0400 (EDT) Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-684-ebXD0o9iN7WZxY5JHAEjKw-1; Tue, 13 May 2025 10:44:02 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D0B631955DD0 for ; Tue, 13 May 2025 14:44:01 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.3.236]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 26C5218003FC for ; Tue, 13 May 2025 14:44:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747147443; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bySDQyVYvrbg6RSu+JEttTxEkdEikOwV2rO9pXV+Y6U=; b=gFvGhSzEuTHqUDp/D8hek2GtVClmZWiNl3lE66/L0KQrEbbiYaG2F3kyVH6aPjBBrnbzxH H4eiSrG2sMszzKMuxG/U+GFWSgSGcC5GcebJ2w6WEysv1AJerg0jMoGQbXZSjR0V9ryKVy 7PcDFwzzd8Y/LEwwBO9Am+AVwoZfN7I= X-MC-Unique: ebXD0o9iN7WZxY5JHAEjKw-1 X-Mimecast-MFC-AGG-ID: ebXD0o9iN7WZxY5JHAEjKw_1747147441 To: devel@lists.libvirt.org Subject: [PATCH v2 4/4] virnetlink: Split virNetlinkBridgeVlanFilterSet() Date: Tue, 13 May 2025 16:43:53 +0200 Message-ID: <7c98e12b383127a03e2e1b49fbbe965998825983.1747147293.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: kz7lV7MO-cwuuhXrojDHD380qgKZXZFyGFb82-aH_bk_1747147441 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: KSSU2ELMUU5HINVLJBCNAXYLTFO4IESX X-Message-ID-Hash: KSSU2ELMUU5HINVLJBCNAXYLTFO4IESX X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1747147548191116600 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Michal Privoznik Currently, virNetlinkBridgeVlanFilterSet() takes @cmd as the second argument where either RTM_SETLINK or RTM_DELLINK is expected. Both of these constants come from linux/rtnetlink.h and thus are undefined when building without netlink. This design also clashes with the whole point of virnetlink: to offload netlink dependency onto a single file. Therefore, drop the argument, turn virNetlinkBridgeVlanFilterSet() into just setter, effectively, and introduce virNetlinkBridgeVlanFilterDel() for the case when RTM_DELLINK would be passed as @cmd. Resolves: https://gitlab.com/libvirt/libvirt/-/issues/770 Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/util/virnetdevbridge.c | 8 ++--- src/util/virnetlink.c | 73 +++++++++++++++++++++++++++++++++----- src/util/virnetlink.h | 5 ++- 3 files changed, 73 insertions(+), 13 deletions(-) diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c index 806ccc5fa7..20c7a25585 100644 --- a/src/util/virnetdevbridge.c +++ b/src/util/virnetdevbridge.c @@ -321,7 +321,7 @@ virNetDevBridgeSetupVlans(const char *ifname, const vir= NetDevVlan *virtVlan) return 0; =20 /* The interface will have been automatically added to vlan 1, so remo= ve it. */ - if (virNetlinkBridgeVlanFilterSet(ifname, RTM_DELLINK, 0, 1, &error) <= 0) { + if (virNetlinkBridgeVlanFilterDel(ifname, 1, &error) < 0) { if (error !=3D 0) { virReportSystemError(-error, _("error removing vlan filter from interf= ace %1$s"), @@ -341,7 +341,7 @@ virNetDevBridgeSetupVlans(const char *ifname, const vir= NetDevVlan *virtVlan) flags |=3D BRIDGE_VLAN_INFO_UNTAGGED; } =20 - if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags, + if (virNetlinkBridgeVlanFilterSet(ifname, flags, virtVlan->nativeTag, &error)= < 0) { goto error; } @@ -349,7 +349,7 @@ virNetDevBridgeSetupVlans(const char *ifname, const vir= NetDevVlan *virtVlan) =20 for (i =3D 0; i < virtVlan->nTags; i++) { if (virtVlan->tag[i] !=3D virtVlan->nativeTag) - if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, 0, + if (virNetlinkBridgeVlanFilterSet(ifname, 0, virtVlan->tag[i], &error= ) < 0) { goto error; } @@ -357,7 +357,7 @@ virNetDevBridgeSetupVlans(const char *ifname, const vir= NetDevVlan *virtVlan) } else { /* In native mode, add the single VLAN as pvid untagged. */ flags =3D BRIDGE_VLAN_INFO_PVID | BRIDGE_VLAN_INFO_UNTAGGED; - if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags, + if (virNetlinkBridgeVlanFilterSet(ifname, flags, virtVlan->tag[0], &error) < 0) { goto error; } diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c index e3fcabca15..8f6dd86d0f 100644 --- a/src/util/virnetlink.c +++ b/src/util/virnetlink.c @@ -702,7 +702,7 @@ virNetlinkDelLink(const char *ifname, virNetlinkTalkFal= lback fallback) } =20 /** - * virNetlinkBridgeVlanFilterSet: + * virNetlinkBridgeVlanFilterHelper: * * @ifname: name of the link * @cmd: netlink command, either RTM_SETLINK or RTM_DELLINK @@ -717,12 +717,12 @@ virNetlinkDelLink(const char *ifname, virNetlinkTalkF= allback fallback) * non-zero, then a netlink failure occurred, but no error message * is generated leaving it up to the caller to handle the condition. */ -int -virNetlinkBridgeVlanFilterSet(const char *ifname, - int cmd, - const unsigned short flags, - const short vid, - int *error) +static int +virNetlinkBridgeVlanFilterHelper(const char *ifname, + int cmd, + const unsigned short flags, + const short vid, + int *error) { struct ifinfomsg ifm =3D { .ifi_family =3D PF_BRIDGE }; struct bridge_vlan_info vinfo =3D { .flags =3D flags, .vid =3D vid }; @@ -767,6 +767,55 @@ virNetlinkBridgeVlanFilterSet(const char *ifname, return 0; } =20 + +/** + * virNetlinkBridgeVlanFilterSet: + * + * @ifname: name of the link + * @flags: flags to use when adding the vlan filter + * @vid: vlan id to add + * @error: netlink error code + * + * Add a vlan filter from an interface associated with a bridge. + * + * Returns 0 on success, -1 on error. Additionally, if the @error is + * non-zero, then a netlink failure occurred, but no error message + * is generated leaving it up to the caller to handle the condition. + */ +int +virNetlinkBridgeVlanFilterSet(const char *ifname, + const unsigned short flags, + const short vid, + int *error) +{ + return virNetlinkBridgeVlanFilterHelper(ifname, RTM_SETLINK, + flags, vid, error); +} + + +/** + * virNetlinkBridgeVlanFilterDel: + * + * @ifname: name of the link + * @vid: vlan id to remove + * @error: netlink error code + * + * Remove a vlan filter from an interface associated with a bridge. + * + * Returns 0 on success, -1 on error. Additionally, if the @error is + * non-zero, then a netlink failure occurred, but no error message + * is generated leaving it up to the caller to handle the condition. + */ +int +virNetlinkBridgeVlanFilterDel(const char *ifname, + const short vid, + int *error) +{ + return virNetlinkBridgeVlanFilterHelper(ifname, + RTM_DELLINK, 0, vid, error); +} + + /** * virNetlinkGetNeighbor: * @@ -1346,7 +1395,6 @@ virNetlinkNewLink(const char *ifname G_GNUC_UNUSED, =20 int virNetlinkBridgeVlanFilterSet(const char *ifname G_GNUC_UNUSED, - int cmd G_GNUC_UNUSED, const unsigned short unusedflags G_GNUC_UNUS= ED, const short vid G_GNUC_UNUSED, int *error) @@ -1356,6 +1404,15 @@ virNetlinkBridgeVlanFilterSet(const char *ifname G_G= NUC_UNUSED, return -1; } =20 +int +virNetlinkBridgeVlanFilterDel(const char *ifname G_GNUC_UNUSED, + const short vid G_GNUC_UNUSED, + int *error G_GNUC_UNUSED) +{ + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _(unsupported)); + return -1; +} + int virNetlinkGetNeighbor(void **nlData G_GNUC_UNUSED, uint32_t src_pid G_GNUC_UNUSED, diff --git a/src/util/virnetlink.h b/src/util/virnetlink.h index 327fb426a1..74d4f5b613 100644 --- a/src/util/virnetlink.h +++ b/src/util/virnetlink.h @@ -78,11 +78,14 @@ typedef int (*virNetlinkTalkFallback)(const char *ifnam= e); int virNetlinkDelLink(const char *ifname, virNetlinkTalkFallback fallback); =20 int virNetlinkBridgeVlanFilterSet(const char *ifname, - int cmd, const unsigned short flags, const short vid, int *error); =20 +int virNetlinkBridgeVlanFilterDel(const char *ifname, + const short vid, + int *error); + int virNetlinkGetErrorCode(struct nlmsghdr *resp, unsigned int recvbuflen); =20 int virNetlinkDumpLink(const char *ifname, int ifindex, --=20 2.49.0