Intel 10/100 adapters based on 8255x controllers, and ICHx based LAN on Motherboard implementations using the 82562 network interface (such as the PRO/100 VE and PRO/100 VM), use a 64-bit hash table for filtering multicast addresses. They are theoretically capable of filtering up to 64 different addresses. However, this is not a perfect filter, so the driver has to validate that a received multicast packet actually belongs to a multicast address to which the adapter is currently subscribed. This is because multiple multicast addresses can hash to the same filter bit. The LAN controller will allow a driver to add as many addresses as needed (up to several hundred, in theory) but there will still only be 64 possible hash values.
Intel gigabit adapters based on the 8254x controllers have 16 perfect-match address registers. Address register 0 is reserved for the built-in MAC address, 1 is reserved for LAA, and the remaining 14 are typically used for multicast. This allows the adapter to perfectly filter up to 14 multicast addresses without driver intervention. The gigabit controllers can also do hashed multicast addresses if more than 14 addresses are required. For multicast addresses exceeding the 14 address register limit, the driver will have to check the address to insure perfect filtering. The gigabit LAN controller will allow the driver to add as many addresses as it needs; however, the driver must calculate the hash value individually for each address and set the appropriate bit in the mask register array.
This applies to: