Subject: Reuse of ethernet addresses on sparcs
To: None <tech-net@NetBSD.ORG>
From: Martin Husemann <martin@duskware.de>
List: tech-net
Date: 08/22/2002 08:21:11
While investigating a bridge problem on my sparc with dual hme card, I had
the desire to have all four hmes to acquire different/unique MACs. There is
the PROM variable local-mac-address? that I thought would controll this, but
changing that to true did not make any difference.

So I added a hack to the myetheraddr fuction:

---8<---
RCS file: /cvsroot/syssrc/sys/arch/sparc/sparc/clock.c,v
retrieving revision 1.89
diff -c -u -r1.89 clock.c
--- clock.c	2002/05/02 13:01:45	1.89
+++ clock.c	2002/08/22 06:15:38
@@ -152,6 +152,7 @@
 myetheraddr(cp)
 	u_char *cp;
 {
+	static int count = 0;
 	struct idprom *idp = idprom;
 
 	cp[0] = idp->id_ether[0];
@@ -159,7 +160,7 @@
 	cp[2] = idp->id_ether[2];
 	cp[3] = idp->id_ether[3];
 	cp[4] = idp->id_ether[4];
-	cp[5] = idp->id_ether[5];
+	cp[5] = idp->id_ether[5] + count++;
 }
 
 void
--->8---

which worked fine for me.

I think having to hack source for this admin decision is not the right way.

So the question:

Should this (or similar) code be commited?
Should it be active

 - always
 - depending on an option (SPARC_USE_UNIQUE_MACS ?)
 - depending on the value of OFs "local-mac-address?" 

?

Martin