Interface identifiers in IPv6

Interface identifiers (IDs) are used to uniquely identify interface on a link. To be unique on a link is a requirement. They can be unique also at a global scope. When interface ID is derived directly from the data link layer address of a interface, the scope is assumed to be globally unique.

IDs are always 64 bit and may be dynamically created from L2 media addresses.

For Ethernet, the interface ID is based from L3 MAC address and it is in Extended Unique Identifier 64-bit (EUI-64) format. The EUI-64 format is build from MAC address in a way that FFFE is inserted exactly in the middle of MAC address, i.e. between OUI and Vendor specific code. In a that way you got 64 bit ID cause MAC got 48 bit only. Also the 7 bit in this EUI-64 format is always inverted. Why? The 7th bit (from left) in the MAC address is called as Universal/Local (U/L) bit. Universal/Local (U/L) bit is used to indicate whether the address is universally assigned or locally assigned. The Universal/Local (U/L) bit set to 0 means that it is IEEE assigned MAC address. The Universal/Local (U/L) bit set to 1, means that the MAC address is locally assigned.  And in EUI-64 they gonna invert that 7 bit. Thats how it works in IPv6 EUI-64 world. Purpose is to indicate this to upper layer protocols (somehow) but it is not used yet.