at tags on incoming packets and decides which output port the packet should be steered to and whether some additional operations must be performed on the tag (such as label stripping and replacement). If additional operations must be performed, it also determines which operations are required based on forwarding policy tables. This consultation of a lookup table or database based on rules and policies for the correct classi- fication requires the use of a search engine. Search engines are mostly based on associative memory, which is also known as CAM. CONTENT-ADDRESSABLE MEMORY (CAM) During a read operation, traditional memory technologies receive as input the address location in the content of which one is interested. The memory produces the bit content of that address location as its output. The principle of associative memory is based on the inverse mechanism of establishing a rela- tionship between the input and a specific piece of information stored in the memory array. Therefore, it "associates" the input term with something already stored in its content in order to produce the out- put. In other words, the data- search string of characters called the search key-is presented to CAM. The CAM will produce an address if a match occurs with any of its content locations. The search key can be created in many ways from the several bit fields that calculate it. In the simplest form of looking up for instance the next-hop address from a routing table, the search key is the des- tination address itself. Assuming the search result is a hit and not a miss, it will then be used in net- work-processing designs as the index for access to yet another memory bank from where the system will retrieve the necessary data. This bank is known as the associated memory, which is usually an external static random access memory (SRAM). The terms Binary CAM (BCAM) and ternary CAM (TCAM) are used in cases where the CAM stores Os and 1s only (BCAM) or Os, 1s, and "don't cares" (TCAM). Binary searches are still required for many lower-l