Ethernet History – MAC Addresses in SunOS

1/ How about an Ethernet history lesson? And a story about why I’m responsible for one of the most hated features of SunOS!

2/ The DEC, Intel Xerox Ethernet spec was published in 1980 after many years of Ethernet development at Xerox PARC led by @BobMetcalfe , Dave Boggs, and Ron Crane. This is a story about how the standard did not quite survive contact with reality, and how I was left to blame.

3/ In the DIX Ethernet standard, and in the earliest IEEE 802.3, there’s no such thing as “MAC” addresses. There are “station” addresses – exactly ONE per computer.

4/ In addition to Ethernet, Xerox had published XNS – a full stack of network protocols that also relied on the notion of a “station” address.

5/ At Sun Microsystems. we were building CPUs with onboard Ethernet, so of course there was a central EEPROM with the “station” address burned in.

6/ And here’s where my reviled feature comes in: in order to be faithful to the standard and also to allow future XNS compatibility, I wrote the code to propagate the station address to all Ethernet interfaces, even if they came with their own separate address.

7/ That wasn’t much of a problem for the first year or so, but then Ethernet took off on PCs and other non-network-native systems. Those systems did NOT have any unique address in the system, so the add-on Ethernet cards had to bring the address. Thus was born the “MAC” address.

8/ Once routers and bridges and bonding etc. were invented the SunOS feature was very difficult to deal with. Because the behavior was different from everyone else, even though it was faithful to the standard.

9/ And of course it took forever to get it fixed due to backwards compatibility concerns and the usual software lethargy. I actually don’t know when it got fixed, any software spelunkers want to find out?

10/ Please forgive me, I was just following standards!
See also…

Leave a Reply