[pve-devel] [PATCH pve-network 2/2] add format for multicast-address
Alexandre Derumier
aderumier at odiso.com
Fri Sep 13 12:33:45 CEST 2019
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
PVE/Network/SDN/VxlanPlugin.pm | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/PVE/Network/SDN/VxlanPlugin.pm b/PVE/Network/SDN/VxlanPlugin.pm
index c5ecea6..1860490 100644
--- a/PVE/Network/SDN/VxlanPlugin.pm
+++ b/PVE/Network/SDN/VxlanPlugin.pm
@@ -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.",
--
2.20.1
More information about the pve-devel
mailing list