+ # map address and netmask to cidr
+ if ($d->{address}) {
+ if ($d->{netmask} =~ m/^\d+$/) { # e.g. netmask 20
+ $d->{cidr} = $d->{address} . "/" . $d->{netmask};
+ } elsif ($d->{netmask} &&
+ (my $cidr = PVE::JSONSchema::get_netmask_bits($d->{netmask}))) { # e.g. netmask 255.255.255.0
+ $d->{cidr} = $d->{address} . "/" . $cidr;
+ } elsif ($d->{address} =~ m!^(.*)/(\d+)$!) {
+ $d->{cidr} = $d->{address};
+ $d->{address} = $1;
+ $d->{netmask} = $2;
+ } else {
+ $d->{cidr} = $d->{address};
+ }
+ }
+
+ # map address6 and netmask6 to cidr6
+ if ($d->{address6}) {
+ $d->{cidr6} = $d->{address6};
+ if ($d->{netmask6}) {
+ $d->{cidr6} .= "/" . $d->{netmask6} if $d->{netmask6};
+ } elsif ($d->{address6} =~ m!^(.*)/(\d+)$!) {
+ $d->{cidr6} = $d->{address6};
+ $d->{address6} = $1;
+ $d->{netmask6} = $2;
+ }
+ }
+