7

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?

Mike Pennington
  • 30,049
  • 12
  • 82
  • 153
Oren
  • 173
  • 4

1 Answers1

8

NOTE – A very small number of assignments made prior to adoption of IEEE 802 standards have the X bit equal to one (BlockID assignments). These assignments are documented in the CID registry.

https://standards.ieee.org/develop/regauth/tut/eui.pdf , p.4

Ricky
  • 32,810
  • 2
  • 45
  • 85