X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2FPVE%2FINotify.pm;h=0b9ea4adc3e078a47369cd97bc6c271a45f16870;hb=9ac6416ec828cc32c653950ed7813fbb623df974;hp=dcdbaa49121d7a77fd86350db736f88346d57674;hpb=95d0e6337788cd7f1bbae18aea261eaf5436e84a;p=pve-common.git diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm index dcdbaa4..0b9ea4a 100644 --- a/src/PVE/INotify.pm +++ b/src/PVE/INotify.pm @@ -896,7 +896,7 @@ sub __read_etc_network_interfaces { } else { $d->{$id} = 'off'; } - } elsif ($id eq 'bridge_fd') { + } elsif ($id eq 'bridge_fd' || $id eq 'bridge_vids') { $d->{$id} = $value; } elsif ($id eq 'bridge_vlan_aware') { $d->{$id} = 1; @@ -1053,7 +1053,7 @@ sub __read_etc_network_interfaces { } sub __interface_to_string { - my ($iface, $d, $family, $first_block) = @_; + my ($iface, $d, $family, $first_block, $ifupdown2) = @_; (my $suffix = $family) =~ s/^inet//; @@ -1096,6 +1096,7 @@ sub __interface_to_string { $raw .= "\tbridge-vids $v\n"; } $done->{bridge_vlan_aware} = 1; + $done->{bridge_vids} = 1; } elsif ($d->{type} eq 'bond') { @@ -1162,7 +1163,13 @@ sub __interface_to_string { $done->{ovs_type} = 1; if ($d->{ovs_bridge}) { - $raw = "allow-$d->{ovs_bridge} $iface\n$raw"; + + if ($ifupdown2) { + $raw = "auto $iface\n$raw"; + } else { + $raw = "allow-$d->{ovs_bridge} $iface\n$raw"; + } + $raw .= "\tovs_bridge $d->{ovs_bridge}\n"; $done->{ovs_bridge} = 1; } @@ -1195,11 +1202,12 @@ sub __interface_to_string { sub write_etc_network_interfaces { my ($filename, $fh, $config) = @_; - my $raw = __write_etc_network_interfaces($config); + my $ifupdown2 = -e '/usr/share/ifupdown2'; + my $raw = __write_etc_network_interfaces($config, $ifupdown2); PVE::Tools::safe_print($filename, $fh, $raw); } sub __write_etc_network_interfaces { - my ($config) = @_; + my ($config, $ifupdown2) = @_; my $ifaces = $config->{ifaces}; my @options = @{$config->{options}}; @@ -1359,7 +1367,7 @@ NETWORKDOC $printed->{$iface} = 1; $raw .= "auto $iface\n" if $d->{autostart}; my $i = 0; # some options should be printed only once - $raw .= __interface_to_string($iface, $d, $_, !$i++) foreach @{$d->{families}}; + $raw .= __interface_to_string($iface, $d, $_, !$i++, $ifupdown2) foreach @{$d->{families}}; } $raw .= $_->[1] . "\n" foreach @options;