public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH common/stable-8] backport: fix #7193: allow vlan-interfaces as physical bridge ports
@ 2025-12-30 16:23 Stoiko Ivanov
  2025-12-31  7:16 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Stoiko Ivanov @ 2025-12-30 16:23 UTC (permalink / raw)
  To: pve-devel

the bug addressed in:
https://lore.proxmox.com/pve-devel/20251230160730.641868-1-s.ivanov@proxmox.com/T/#u
is also affecting current PVE 8.4 installations.

This patch backports the changes for 9 to PVE 8 (backport consists of
moving the code to PVE/Network.pm as PVE/IPRoute2.pm was introduced in
PVE 9 and adapting to the lack of `use v5.36;` in PVE8).

short summary of the cause of the issue:
057f62f ("fix #7118: fix bridge port detection when plugging netdev with vlan")
did not address that ports in the form of eno1.1234 (vlan 1234 on
eno1) were allowed as bridge-ports.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
minimally tested on a PVE 8 VM with a debian container, refusing to start
without the patch, starting with it.
src/PVE/Network.pm | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/PVE/Network.pm b/src/PVE/Network.pm
index bdc1627..9583549 100644
--- a/src/PVE/Network.pm
+++ b/src/PVE/Network.pm
@@ -943,7 +943,7 @@ sub is_linux_bridge {
     my ($iface_name) = @_;
 
     check_iface_name($iface_name);
-    die "interface $iface_name does not exist\n" if ! -l "/sys/class/net/$iface_name";
+    die "interface $iface_name does not exist\n" if !-l "/sys/class/net/$iface_name";
 
     return -d "/sys/class/net/$iface_name/bridge";
 }
@@ -970,7 +970,9 @@ sub get_physical_bridge_ports {
     $ip_links = ip_link_details() if !defined($ip_links);
 
     return grep {
-        (ip_link_is_physical($ip_links->{$_}) || ip_link_is_bond($ip_links->{$_}))
+        (ip_link_is_physical($ip_links->{$_})
+                || ip_link_is_bond($ip_links->{$_})
+                || ip_link_is_vlan($ip_links->{$_}))
             && defined($ip_links->{$_}->{master})
             && $ip_links->{$_}->{master} eq $bridge
     } keys $ip_links->%*;
@@ -983,7 +985,7 @@ sub ip_link_details {
         ['ip', '-details', '-json', 'link', 'show'],
         outfunc => sub {
             $link_json .= shift;
-        }
+        },
     );
 
     my $links = JSON::decode_json($link_json);
@@ -1010,6 +1012,15 @@ sub ip_link_is_bond {
         && $ip_link->{linkinfo}->{info_kind} eq 'bond';
 }
 
+sub ip_link_is_vlan {
+    my ($ip_link) = @_;
+    return
+        $ip_link->{link_type} eq 'ether'
+        && defined($ip_link->{linkinfo})
+        && defined($ip_link->{linkinfo}->{info_kind})
+        && $ip_link->{linkinfo}->{info_kind} eq "vlan";
+}
+
 sub altname_mapping {
     my ($ip_links) = @_;
 
-- 
2.47.3



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH common/stable-8] backport: fix #7193: allow vlan-interfaces as physical bridge ports
  2025-12-30 16:23 [pve-devel] [PATCH common/stable-8] backport: fix #7193: allow vlan-interfaces as physical bridge ports Stoiko Ivanov
@ 2025-12-31  7:16 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2025-12-31  7:16 UTC (permalink / raw)
  To: pve-devel, Stoiko Ivanov

On Tue, 30 Dec 2025 17:23:45 +0100, Stoiko Ivanov wrote:
> the bug addressed in:
> https://lore.proxmox.com/pve-devel/20251230160730.641868-1-s.ivanov@proxmox.com/T/#u
> is also affecting current PVE 8.4 installations.
> 
> This patch backports the changes for 9 to PVE 8 (backport consists of
> moving the code to PVE/Network.pm as PVE/IPRoute2.pm was introduced in
> PVE 9 and adapting to the lack of `use v5.36;` in PVE8).
> 
> [...]

Applied, thanks!

btw., and not directed at you, but some unit tests would be real nice and
relatively trivial to do for these things.

[1/1] backport: fix #7193: allow vlan-interfaces as physical bridge ports
      commit: caa3d96a7928b5a0c5a38817a09319fc4edf3a37


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-12-31  7:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-30 16:23 [pve-devel] [PATCH common/stable-8] backport: fix #7193: allow vlan-interfaces as physical bridge ports Stoiko Ivanov
2025-12-31  7:16 ` [pve-devel] applied: " Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal