use strict;
use warnings;
use PVE::Network::SDN::Plugin;
-use PVE::Tools;
+use PVE::Tools qw($IPV4RE);
use PVE::INotify;
use base('PVE::Network::SDN::Plugin');
return $vxlanstr;
}
+PVE::JSONSchema::register_format('ipv4-multicast', \&parse_ipv4_multicast);
+sub parse_ipv4_multicast {
+ my ($ipv4, $noerr) = @_;
+
+ if ($ipv4 !~ m/^(?:$IPV4RE)$/) {
+ return undef if $noerr;
+ die "value does not look like a valid multicast IPv4 address\n";
+ }
+
+ if ($ipv4 =~ m/^(\d+)\.\d+.\d+.\d+/) {
+ if($1 < 224 || $1 > 239) {
+ return undef if $noerr;
+ die "value does not look like a valid multicast IPv4 address\n";
+ }
+ }
+
+ return $ipv4;
+}
+
sub type {
return 'vxlan';
}
},
'multicast-address' => {
description => "Multicast address.",
- type => 'string', #fixme: format
+ type => 'string', format => 'ipv4-multicast'
},
'unicast-address' => {
description => "Unicast peers address ip list.",