[PATCH 1/3] introduce helper to generate mac address with OUI

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Fri Sep 20 03:44:12 EDT 2013


On 09:04 Fri 20 Sep     , Sascha Hauer wrote:
> On Fri, Sep 20, 2013 at 07:47:43AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > use random mac address with fixed OUI provided
> > 
> > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> > ---
> >  include/local_mac_address.h | 40 ++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 40 insertions(+)
> >  create mode 100644 include/local_mac_address.h
> > 
> > diff --git a/include/local_mac_address.h b/include/local_mac_address.h
> > new file mode 100644
> > index 0000000..3920334
> > --- /dev/null
> > +++ b/include/local_mac_address.h
> > @@ -0,0 +1,40 @@
> > +/*
> > + * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnio at jcrosoft.com>
> > + *
> > + * Under GPLv2 only
> > + */
> > +
> > +#ifndef __LOCAL_MAC_ADDRESS_H__
> > +#define __LOCAL_MAC_ADDRESS_H__
> > +
> > +/**
> > + * local_mac_address_register - use random number with fix
> > + * OUI provided device to provide an Ethernet address
> > + * @ethid: ethernet device id
> > + * @oui: Ethernet OUI (3 bytes)
> > + *
> > + * Generate a local Ethernet address (MAC) that is not multicast using a 1-wire id.
> > + */
> > +static inline int local_mac_address_register(int ethid, char * oui)
> > +{
> > +	char addr[6];
> > +	int nb_oui = 3;
> > +	int i;
> > +
> > +	if (!oui)
> > +		return -EINVAL;
> > +
> > +	random_ether_addr(addr);
> > +
> > +	for (i = 0; i < nb_oui; i++)
> > +		addr[i] = oui[i];
> 
> Shouldn't you rather use bytes 1-3 instead of 0-2?
> 
> > +
> > +	addr[0] &= 0xfe;	/* clear multicast bit */
> > +	addr[0] |= 0x02;	/* set local assignment bit (IEEE802) */
> 
> Otherwise the 'smf' you pass in becomes 'qmf' here.
yes it's righth and the same way when you use the 1-wire version

so can we keep it as is

Best Regards,
J.
> 
> Sascha
> 
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list