mirror of
https://git.proxmox.com/git/pve-common
synced 2025-08-03 10:54:54 +00:00
fix #2831: never set bridge_fd to 0 with STP on
it's an invalid combination that causes the network reload/setup to fail. unfortunately, this is not caught by ifupdown2 itself, but only rejected by the kernel with ERANGE over netlink. Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
parent
0966f99ccc
commit
e960f7948f
@ -1061,13 +1061,12 @@ sub __read_etc_network_interfaces {
|
||||
} elsif ($iface =~ m/^vmbr\d+$/) {
|
||||
if (!$d->{ovs_type}) {
|
||||
$d->{type} = 'bridge';
|
||||
|
||||
if (!defined ($d->{bridge_fd})) {
|
||||
$d->{bridge_fd} = 0;
|
||||
}
|
||||
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};
|
||||
}
|
||||
@ -1259,11 +1258,16 @@ sub __interface_to_string {
|
||||
$done->{bridge_ports} = 1;
|
||||
|
||||
my $v = defined($d->{bridge_stp}) ? $d->{bridge_stp} : 'off';
|
||||
my $no_stp = $v eq 'off';
|
||||
|
||||
$raw .= "\tbridge-stp $v\n";
|
||||
$done->{bridge_stp} = 1;
|
||||
|
||||
$v = defined($d->{bridge_fd}) ? $d->{bridge_fd} : 0;
|
||||
$raw .= "\tbridge-fd $v\n";
|
||||
# 0 is only allowed when STP is disabled
|
||||
if ($v || $no_stp) {
|
||||
$raw .= "\tbridge-fd $v\n";
|
||||
}
|
||||
$done->{bridge_fd} = 1;
|
||||
|
||||
if( defined($d->{bridge_vlan_aware})) {
|
||||
|
Loading…
Reference in New Issue
Block a user