[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <20060927153226.pem81wc3k0ko48k4@web.davehollis.com>
Date: Wed, 27 Sep 2006 15:32:26 -0400
From: dhollis@...ehollis.com
To: Jeff Dike <jdike@...toit.com>
Cc: akpm@...l.org, linux-kernel@...r.kernel.org,
user-mode-linux-devel@...ts.sourceforge.net
Subject: Re: [PATCH 1/5] UML - Assign random MACs to interfaces if necessary
Quoting Jeff Dike <jdike@...toit.com>:
> 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 <jdike@...toit.com>
>
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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists