lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 8 May 2020 12:14:51 +0300
From:   Igor Russkikh <irusskikh@...vell.com>
To:     Jakub Kicinski <kuba@...nel.org>
CC:     <netdev@...r.kernel.org>, "David S . Miller" <davem@...emloft.net>,
        "Mark Starovoytov" <mstarovoitov@...vell.com>
Subject: Re: [PATCH net-next 7/7] net: atlantic: unify get_mac_permanent

Hi Jakub,


>> This patch moves MAC generation into a separate function, which is
> called
>> from both places to reduce the amount of copy/paste.
> 
> Right, but why do you have your own mac generation rather than using
> eth_hw_addr_random(). You need to set NET_ADDR_RANDOM for example,
> just use standard helpers, please.

We want this still be an Aquantia vendor id MAC, not a fully random mac.
Thats why the logic below randomizes only low three octets.


>>  }
>> +
>> +static inline bool aq_hw_is_zero_ether_addr(const u8 *addr)
> 
> No static inlines in C files, please. Let compiler decide inlineing &
> generate a warning when function becomes unused.

Ok, will fix.

>> +	get_random_bytes(&rnd, sizeof(unsigned int));
>> +	l = 0xE300 0000U | (0xFFFFU & rnd) | (0x00 << 16);
>> +	h = 0x8001300EU;
>> +
>> +	mac[5] = (u8)(0xFFU & l);
>> +	l >>= 8;
>> +	mac[4] = (u8)(0xFFU & l);
>> +	l >>= 8;
>> +	mac[3] = (u8)(0xFFU & l);
>> +	l >>= 8;
>> +	mac[2] = (u8)(0xFFU & l);
>> +	mac[1] = (u8)(0xFFU & h);
>> +	h >>= 8;
>> +	mac[0] = (u8)(0xFFU & h);
> 
> This can be greatly simplified using helpers from etherdevice.h, if
> it's really needed.

This is the exact place where we put Aquantia vendor id, even if mac is random.

eth_hw_addr_random is more suitable for software devices like bridges, which
are not related to any vendor.

Regards,
  Igor

Powered by blists - more mailing lists