Network Processors: Architectures, Protocols, and Platforms

In this chapter, we discuss search engines. In the network-processing arena, they usually rely for their functionality on associative memory technology, which is also known as content-addressable memory (CAM). We discuss how CAM works in the context of search engines and review systems engineering issues as well as trade-offs. CAMs have pros and cons like any other technology. We then look at alternative approaches to the search problem that can provide higher performance than CAM-based search engines but are also more tuned for organizations that can afford them. This chapter provides background to the classification engines, which we describe in the following chapter.
We will start by providing a sneak preview of the classification context. We do not intend to spoil the information provided in the next chapter, which discusses specialized classification engines, but we must clarify some basic concepts within the packet classification context. In fact, newcomers to this industry are often confused by the relationship between search engines and classification engines. The two engines will inevitably overlap since chip vendors in pursuit of product differentiation have confused matters. On the one hand, they have packed functionality that undisputedly adds value into their chips. On the other hand, the boundary between the two is blurred as one can find "search engines," "classification engines" and "search and classification engines."
A packet can be handed over to a network-processing system in two ways: either by its own host central processing unit