I am developing a program that creates random MAC addresses. I understand that in order to avoid collisions with OUI addresses, my addresses should "locally-administered" addresses, by setting the second least-significant bit of the first byte (the msb byte) to 1.
Many code samples that I found simply set the first byte to 0x02, i.e. set the address to be locally-administered and unicast, and avoid choosing random values for the other bits of the first byte (to keep the code simple by avoiding bit operations).
However, I found a list of standard OUI address prefixes here, in which some prefixes begin with 0x02 and 0xAA (the lower two bits of 0xAA are also 0b10):
- 3COM CORPORATION: 02-60-8C, 02-C0-8C
- CARDIAC RECORDERS INC.: 02-9D-8E
- COMMUNICATION MACHINERY CORP.: 02-CF-1C
- DATA RECALL LTD: 02-70-B3
- DIGITAL EQUIPMENT CORPORATION: AA-00-00, AA-00-01, AA-00-02, AA-00-03, AA-00-04
- LOGIC REPLACEMENT TECH. LTD.: 02-60-86
- M/A-COM INC. COMPANIES: 02-70-B0
- NIXDORF COMPUTER CORPORATION: 02-E6-D3
- OCTOTHORPE CORP.: 02-BB-01
- OLIVETTI TELECOMM SPA (OLTECO): 02-AA-3C
- PERQ SYSTEMS CORPORATION: 02-1C-7C
- RACAL-DATACOM: 02-07-01, 02-70-01
Does anyone have an explanation for this?