From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 80B5B94EBB for ; Fri, 23 Feb 2024 15:37:23 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5BCE01A73E for ; Fri, 23 Feb 2024 15:36:53 +0100 (CET) Received: from lana.proxmox.com (unknown [94.136.29.99]) by firstgate.proxmox.com (Proxmox) with ESMTP for ; Fri, 23 Feb 2024 15:36:52 +0100 (CET) Received: by lana.proxmox.com (Postfix, from userid 10043) id 1714E2C1925; Fri, 23 Feb 2024 15:36:52 +0100 (CET) From: Stefan Hanreich To: pve-devel@lists.proxmox.com Date: Fri, 23 Feb 2024 15:36:46 +0100 Message-Id: <20240223143651.418065-2-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240223143651.418065-1-s.hanreich@proxmox.com> References: <20240223143651.418065-1-s.hanreich@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 1 AWL -2.047 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RCVD_IN_SBL_CSS 3.335 Received via a relay in Spamhaus SBL-CSS RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [inotify.pm] Subject: [pve-devel] [PATCH v2 common 1/6] interfaces: allow arbitrary bridge names in network config X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Feb 2024 14:37:23 -0000 Similar to other interface types, we can detect a bridge by the presense of it's bridge_ports attribute rather than solely relying on the "vmbr" ifname prefix heuristic. For OVS bridges we need to examine the OVS type instead. The check needs to be moved up since other prefixes could theoretically be included in a bridge name and then would otherwise get picked up wrongly. Originally-by: Jillian Morgan Signed-off-by: Stefan Hanreich --- src/PVE/INotify.pm | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm index bc33a8f..8a34128 100644 --- a/src/PVE/INotify.pm +++ b/src/PVE/INotify.pm @@ -1033,7 +1033,17 @@ sub __read_etc_network_interfaces { foreach my $iface (keys %$ifaces) { my $d = $ifaces->{$iface}; $d->{type} = 'unknown'; - if ($iface =~ m/^bond\d+$/) { + if (defined $d->{'bridge_ports'}) { + $d->{type} = 'bridge'; + if (!defined ($d->{bridge_stp})) { + $d->{bridge_stp} = 'off'; + } + if (!defined($d->{bridge_fd}) && $d->{bridge_stp} eq 'off') { + $d->{bridge_fd} = 0; + } + } elsif ($d->{ovs_type} && $d->{ovs_type} eq 'OVSBridge') { + $d->{type} = $d->{ovs_type}; + } elsif ($iface =~ m/^bond\d+$/) { if (!$d->{ovs_type}) { $d->{type} = 'bond'; } elsif ($d->{ovs_type} eq 'OVSBond') { @@ -1053,18 +1063,6 @@ sub __read_etc_network_interfaces { my $tag = &$extract_ovs_option($d, 'tag'); $d->{ovs_tag} = $tag if defined($tag); } - } elsif ($iface =~ m/^vmbr\d+$/) { - if (!$d->{ovs_type}) { - $d->{type} = 'bridge'; - if (!defined ($d->{bridge_stp})) { - $d->{bridge_stp} = 'off'; - } - if (!defined($d->{bridge_fd}) && $d->{bridge_stp} eq 'off') { - $d->{bridge_fd} = 0; - } - } elsif ($d->{ovs_type} eq 'OVSBridge') { - $d->{type} = $d->{ovs_type}; - } } elsif ($iface =~ m/^(\S+):\d+$/) { $d->{type} = 'alias'; if (defined ($ifaces->{$1})) { -- 2.39.2