# map address and netmask to cidr
if ($d->{address}) {
- if ($d->{netmask} && $d->{netmask} =~ m/^\d+$/) { # e.g. netmask 20
- $d->{address} = $d->{address} . "/" . $d->{netmask};
- } elsif ($d->{netmask} &&
- (my $cidr = PVE::JSONSchema::get_netmask_bits($d->{netmask}))) { # e.g. netmask 255.255.255.0
- $d->{address} = $d->{address} . "/" . $cidr;
+ if ($d->{netmask}) {
+ if ($d->{netmask} =~ m/^\d+$/) { # e.g. netmask 20
+ $d->{address} = $d->{address} . "/" . $d->{netmask};
+ } elsif (my $mask = PVE::JSONSchema::get_netmask_bits($d->{netmask})) {
+ $d->{address} = $d->{address} . "/" . $mask;
+ }
}
- #for api compatibility
- $d->{cidr} = $d->{address}
+ # for api compatibility
+ $d->{cidr} = $d->{address};
}
# map address6 and netmask6 to cidr6
if ($d->{address6}) {
$d->{address6} .= "/" . $d->{netmask6} if $d->{address6} !~ m!^(.*)/(\d+)$! && $d->{netmask6};
- #for api compatibility
- $d->{cidr6} = $d->{address6}
+ # for api compatibility
+ $d->{cidr6} = $d->{address6};
}
$d->{method} = 'manual' if !$d->{method};
$done->{ovs_type} = 1;
if (my $bridge = $d->{ovs_bridge}) {
- $raw = "allow-$bridge $iface\n$raw";
+ if ($ifupdown2) {
+ $raw = "auto $iface\n$raw";
+ } else {
+ $raw = "allow-$bridge $iface\n$raw";
+ }
+
$raw .= "\tovs_bridge $bridge\n";
$done->{ovs_bridge} = 1;
}
$printed->{$iface} = 1;
if ($d->{autostart}) {
- if ($d->{type} eq 'OVSBridge') {
+ if ($d->{type} eq 'OVSBridge' && !$ifupdown2) {
# cannot use 'auto' for OVS, would add race with systemd ifup@.service
$raw .= "allow-ovs $iface\n";
} else {