add format for multicast-address

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
This commit is contained in:
Alexandre Derumier 2019-09-13 12:33:45 +02:00 committed by Thomas Lamprecht
parent fcfca9ef25
commit c692cbfad0

View File

@ -3,7 +3,7 @@ package PVE::Network::SDN::VxlanPlugin;
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');
@ -17,6 +17,25 @@ sub pve_verify_sdn_vxlanrange {
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';
}
@ -29,7 +48,7 @@ sub properties {
},
'multicast-address' => {
description => "Multicast address.",
type => 'string', #fixme: format
type => 'string', format => 'ipv4-multicast'
},
'unicast-address' => {
description => "Unicast peers address ip list.",