eld of the IP header. The DSCP code will notify all routers/switches in the DiffServ domain as to what type of treatment should be reserved for this specific packet at each hop of its trip. A similar operation occurs at the ingress points of MPLS networks when label tags must be swapped or stripped on-the-fly based on specific rules. As another example, in the case of a simple address filtering, pick a bit mask among the several stored that reflects the desired filtering and then use modulo-2 to add it to the search destination (that is, use exclusive OR [XOR] on it, ignoring the last carry) and throw it to the CAM as the so-called key. The output of the CAM should then provide the bit sequence that should be used as an index to an external memory bank that determines which yields the intended and desired destination. CAM (Content-Addressable Memory) For the unfamiliar reader, CAM is a specialized memory bank used in switching/routing environments in what has come to be known as search engines. These search engines have nothing to do with web- browser-based Internet search engines that look for web pages. Traditional memory lookups ask the following question: What content is stored in address X? However, in CAM, the question is inverted: In which address is content Y stored? CAM memory is arranged in such a way that when a specific entry is looked up, the memory bank will rapidly compare the specific request with all its contents. If a match is found, the corresponding address (where it is stored) will be returned. When a table is stored inside a CAM, the CAM is said to be initialized. When we want to look up something in that table, we write a search key to the CAM. In reality, no one is writing anything to anyone in this case. A bit pattern is simply presented (also known as the key) to the CAM. The CAM will try to match it with one or more of the entries it contains. If it succeeds, it returns the address where the match was found. For example, in switching/routing systems where the next-hop address must be fo