Patent ID: 9385957
Filing Date: 2016-07-05
CPC Classification: H04L

Claim Text:
1. A device, comprising: a processor that receives a flow key and in response generates a lookup command, a lookup engine that includes a plurality of Content Addressable Memory (CAM) lookup blocks, wherein the lookup engine can perform a plurality of simultaneous CAM lookup operations; wherein lookup engine determines a hash value A and a hash value B from the flow key, wherein the lookup engine uses the hash value A to identify a hash bucket in the hash table, wherein the hash bucket includes a plurality of hash bucket entry fields, and wherein the hash value B is stored in at least one of the hash bucket entry fields of the hash bucket, wherein each CAM lookup block simultaneously performs a CAM lookup operation on the content of a hash bucket entry field, and wherein each CAM lookup block outputs a CAM lookup output value that indicates if the content of the hash bucket entry field is the same as the hash value B; a bus that communicates the lookup command from the processor to the lookup engine; and a memory unit that stores a hash table, wherein the hash table includes a plurality of hash buckets, wherein CAM lookup output values identify one or more flow keys stored in a key table, wherein the key table is stored in the memory unit, wherein each identified flow key corresponds to a hash bucket entry field that stores the hash value B, wherein each flow key stored in the key table has a corresponding lookup output information value, wherein the lookup output information value is an action value, wherein the action value indicates one of a plurality of actions to be performed on the packet by the processor, wherein the device has a fast path whereby packets pass through the device without being processed by a host processor, wherein the device has a slow path whereby packets are processed by the host processor, and wherein the action is to transfer the packet to the host processor for slow path processing.