},
cidr => {
description => 'IPv4 CIDR.',
- type => 'string', format => 'CIDRv4',
+ type => 'string', format => 'CIDRv4-list',
optional => 1,
},
mtu => {
},
cidr6 => {
description => 'IPv6 CIDR.',
- type => 'string', format => 'CIDRv6',
+ type => 'string', format => 'CIDRv6-list',
optional => 1,
},
};
if $param->{address};
raise_param_exc({ netmask => "netmask conflicts with cidr" })
if $param->{netmask};
+ my @cidrs = split /,/, $param->{cidr};
+ foreach my $cidr (@cidrs) {
+ push @{$param->{address}}, $cidr;
+ }
- my ($address, $netmask) = $param->{cidr} =~ m!^(.*)/(\d+)$!;
- $param->{address} = $address;
- $param->{netmask} = $netmask;
delete $param->{cidr};
+ } elsif ($param->{address} && $param->{netmask}) {
+ $param->{address} = ["$param->{address}/$param->{netmask}"];
}
if ($param->{cidr6}) {
raise_param_exc({ netmask6 => "netmask6 conflicts with cidr6" })
if $param->{netmask6};
- my ($address, $netmask) = $param->{cidr6} =~ m!^(.*)/(\d+)$!;
- $param->{address6} = $address;
- $param->{netmask6} = $netmask;
+ my @cidrs = split /,/, $param->{cidr6};
+ foreach my $cidr (@cidrs) {
+ push @{$param->{address6}}, $cidr;
+ }
delete $param->{cidr6};
+
+ } elsif ($param->{address6} && $param->{netmask6}) {
+ $param->{address} = ["$param->{address6}/$param->{netmask6}"];
}
};