Quoting Jeff Dike <[EMAIL PROTECTED]>:

> Assign a random MAC to an ethernet interface if one was not provided on
> the command line.  This became pressing when distros started
> bringing interfaces up before assigning IPs to them.  The previous
> pattern of assigning an IP then bringing it up allowed the MAC to be
> generated from the first IP assigned.  However, once the thing is
> up, it's probably a bad idea to change the MAC, so the MAC stayed
> initialized to fe:fd:0:0:0:0.
>
> Now, if there is no MAC from the command line, one is generated.  We
> use the microseconds from gettimeofday (20 bits), plus the low 12
> bits of the pid to seed the random number generator.  random() is
> called twice, with 16 bits of each result used.  I didn't want to
> have to try to fill in 32 bits optimally given an arbitrary
> RAND_MAX, so I just assume that it is greater than 65536 and use 16
> bits of each random() return.
>
> There is also a bit of reformatting and whitespace cleanup here.
>
> Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>
>

Couldn't you use random_ether_addr() from linux/etherdevice.h?

static inline void random_ether_addr(u8 *addr)
{
         get_random_bytes (addr, ETH_ALEN);
         addr [0] &= 0xfe;       /* clear multicast bit */
         addr [0] |= 0x02;       /* set local assignment bit (IEEE802) */
}


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to