A forwarding table comprising a combination of a hash table and a content
addressable memory (CAM). The forwarding table combines a one way hash
table and a small CAM to perform the forwarding information retrieval
function. The CAM is used when an address cannot be found in the hash
table. When MAC addresses are being added to the forwarding table, they
are first tried in the hash table. The address is applied to the hash
function and a resulting index input to the hash table. If a hit occurs,
it indicates that an entry at that index already exists and a location in
the CAM is then allocated for that address. As long as the CAM does not
become full, a 100% hit rate is guaranteed. During retrieval, the hash
table or the CAM forms the forwarding information output to the next
processing stage. If an entry is not found in the hash table, it will
typically be found in the CAM. If no entry is found in either, the
received frame is flooded to all the ports of the network device.