[pve-devel] [PATCH common v3 1/1] JSONSchema: Adapt MAC address format to unicast
Stoiko Ivanov
s.ivanov at proxmox.com
Tue Mar 12 16:07:41 CET 2019
MAC-addresses having the LSB of the first octet set, are considered
multicast-addresses (see [0,1]).
the 'mac-addr' format got changed to only permit unicast addresses, which should
work for its current use-case (WOL for nodes).
additionally a default option was registered via register_standard_option to be
used in both PVE::LXC::Config and PVE::QemuServer.
[0] https://lists.linuxcontainers.org/pipermail/lxc-users/2010-August/000783.html
[1] https://en.wikipedia.org/wiki/MAC_address
Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
---
src/PVE/JSONSchema.pm | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm
index 1e3bf5d..10037f5 100644
--- a/src/PVE/JSONSchema.pm
+++ b/src/PVE/JSONSchema.pm
@@ -208,12 +208,20 @@ register_format('mac-addr', \&pve_verify_mac_addr);
sub pve_verify_mac_addr {
my ($mac_addr, $noerr) = @_;
- if ($mac_addr !~ m/^[0-9a-f]{2}(:[0-9a-f]{2}){5}$/i) {
+ if ($mac_addr !~ m/^[a-f0-9][02468ace](?::[a-f0-9]{2}){5}$/i) {
return undef if $noerr;
- die "value does not look like a valid MAC address\n";
+ die "value does not look like a valid unicast MAC address\n";
}
return $mac_addr;
+
}
+register_standard_option('mac-addr', {
+ type => 'string',
+ description => 'Unicast MAC address.',
+ format_description => "XX:XX:XX:XX:XX:XX",
+ optional => 1,
+ format => 'mac-addr',
+});
register_format('ipv4', \&pve_verify_ipv4);
sub pve_verify_ipv4 {
--
2.11.0
More information about the pve-devel
mailing list