A multi-level content addressable memory (CAM) architecture compresses out
much of the redundancy encountered in the search space of a single CAM,
particularly for flow-based lookups in a network. Destination and source
address may be associated with internal equivalence classes independently
in one level of the multi-level CAM architecture, while flow-specific
properties linking arbitrary classes of the destination and source
addresses may be applied in a later level of the multi-level CAM.