This inversion is bijective, so I can't figure out what is it's use.
RFC 4291 provides instructions on how to create the EUI64 address:
Links or Nodes with IEEE 802 48-bit MACs [EUI64] defines a method to create an IEEE EUI-64 identifier from an IEEE 48-bit MAC identifier. This is to insert two octets, with hexadecimal values of 0xFF and 0xFE (see the Note at the end of appendix), in the middle of the 48-bit MAC (between the company_id and vendor-supplied id). An example is the 48-bit IEEE MAC with Global scope: |0 1|1 3|3 4| |0 5|6 1|2 7| +----------------+----------------+----------------+ |cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm| +----------------+----------------+----------------+ where "c" is the bits of the assigned company_id, "0" is the value of the universal/local bit to indicate Global scope, "g" is individual/group bit, and "m" is the bits of the manufacturer- selected extension identifier. The interface identifier would be of the form: |0 1|1 3|3 4|4 6| |0 5|6 1|2 7|8 3| +----------------+----------------+----------------+----------------+ |cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm| +----------------+----------------+----------------+----------------+
And RFC 2373 provides the 'why' behind flipping the 7th bit:
The motivation for inverting the "u" bit when forming the interface identifier is to make it easy for system administrators to hand configure local scope identifiers when hardware tokens are not available. This is expected to be case for serial links, tunnel end- points, etc. The alternative would have been for these to be of the form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1, ::2, etc.
But that is a bit of a mouthful. So in simpler terms... In MAC address architecture, the 7th bit signifies whether the MAC address was universally or locally assigned. A value of 0 indicates the address is universally administered. For instance, the when IANA assigns an Organizationally Unique Identifier (OUI) to a NIC card vendor, the 7th bit will be 0, indicating the OUI was universally assigned. Should a user manually change their MAC address, this 7th bit would be set to 1, indicating the Ethernet address was locally administered.
There is also some more information about this at PacketLife.
It is done to classify hand-assigned addresses such as
prefix::2 etc. as local.
Suppose that you're setting up a network in prefix
2001:db8:dead:beef::/64. You'll probably use MAC-based IPs for most of your nodes. For some nodes, however, such as the DNS server, the directory server, etc., you'll want to use addresses that are easier to type and easier to memorise than the MAC-based addresses. For the DNS server, you'll probably want to use
Note that the U/L bit is set to 0 — which, due to the bit's inversion, classifies the host-id as local.
EUI 64 means only an MAC Address (48Bit) which has
in the middle of it to fill up all the 64bits. Hence the name EUI-64. To be exactly you mean modified EUI-64 which means the EUI-64 combined with a bitflip of the 7th bit.
The Seventh bit is changed because in the MAC Addresses this 7th bit indicated the difference between a local one (0) and global (1). Local in this sense is, for example, a Serial interface.
Since all this is to automatically create a public address which all will be on an interface which is global (in MAC terms) this would result in a 1 at the 7th position. They changed that bit, so you don't have to write down the hole address and you can you the Shorthand notation of "::"
Example (from the RFC 2373):
... The alternative would have been for these to be of the form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1, ::2, etc.
Short Answer Even though every MAC Adress would end up in an IPv6 Address which would have a HEX Number higher than 0 at some position in the IPv6 Address. This makes it possible to have Zeros there so you could use the shorthand notation.
EUI-64 Process EUI also known as EUI-64 process defined by IEEE, EUI is the abbreviation of Extended Unique Identifier. The process uses a client’s 48-bit Ethernet MAC address and inserts an extra 16 bits in the middle of the 48-bit MAC address to create a 64-bit Interface ID. Ethernet MAC addresses are represented in hexadecimal containing two parts:
Organizationally Unique Identifier (OUI)– This is the first part of MAC address called OUI. An OUI is a 24-bit number which uniquely identifies a vendor or manufacturer of the device. The organizations purchased an OUI from the IEEE. The first three octets of a MAC address are Organizationally Unique Identifier (OUI). Device Identifier– The last three octets of the MAC address uniquely identify the device. It is also a 24-bit (6 hexadecimal digits) value within a common OUI. The device identifier bits assigned by the organization to their device.
A EUI-64 Interface ID has three parts represented in binary:
24-bits Organizationally Unique Identifier (OUI) from the client MAC address with a reversed 7th bit. For example, if the 7th bit of the OUI is 1, it becomes a 0, and vice versa in the EUI interface ID.
24-bits Device Identifier from the client MAC address Hexa decimal value FFFE (16 bits) between Organizationally Unique Identifier (OUI) and Device Identifier.
EUI-64 process using the MAC address of BC:78:ba:b1:f8:55.
Get the mac address of the host or device for example in this case BC:78:ba:b1:f8:55
Insert ff:fe in the middle: bc:78:ba:ff:fe:b1:f8:55 Reorder the above hexadecimal digits in IPv6 notation. bc78:baff:feb1:f855
You can see that now it’s 4 hextet, convert the first octet from hexadecimal to binary: BC-> 10111100
Flip the 7th bit: 10111100 ->10111110
convert changed octet back to hexadecimal:01000111 ->BE
Now change the first octet with new value one: bc78:baff:feb1:f855
Insert the link-local prefix at the beginning : fe80:: bc78:baff:feb1:f855
There are some more information about eui 64 on my Blog