[pve-devel] [PATCH common v3 1/1] JSONSchema: Adapt MAC address format to unicast

Thomas Lamprecht t.lamprecht at proxmox.com
Thu Mar 14 09:50:06 CET 2019


On 3/12/19 4:07 PM, Stoiko Ivanov wrote:
> 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 {
> 

applied, with a comment and verbose_description followup, thanks!




More information about the pve-devel mailing list