In 'Interconnections', Radia Perlman describes a scheme in which NICs hash multicast addresses into several buckets. When the upstream driver needs to subscribe to a multicast hardware address, the NIC removes the filtering for the appropriate bucket. The result is that the desired multicast frames, /plus/ any others that might hash into that bucket get forwarded up the stack.
What's the state of the art here?
Hash buckets? How many? Individual address registers? How many?
I understand that answers can only be generalizations or chipset- specific. Either sort of reply would be helpful.
With the proliferation of virtualization, NICs are forwarding lots of non-manufacturer-assigned addresses these days.
I'm curious about filtering of both unicast and multicast frames.
Thanks for any pointers!