Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Hardware Search Key Generation

IP.com Disclosure Number: IPCOM000011028D
Original Publication Date: 2003-Feb-10
Included in the Prior Art Database: 2003-Feb-10
Document File: 1 page(s) / 35K

Publishing Venue

IBM

Abstract

Disclosed is a mechanism that allows hardware to generate keys that can be used for accessing tables containing packet classification and routing information. The mechanism allows the keys to contain information from the packet header, values from static registers or arrays, as well as results of table searches that have already been performed on the packet. The mechanism also provides for the handling of multiple packet types.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 50% of the total text.

Page 1 of 1

Hardware Search Key Generation

  Disclosed is a mechanism that allows hardware to generate keys that can be used for accessing tables containing packet classification and routing information. The mechanism consists of providing a template for each key. The template contains a pointer value for each byte of the final key. The pointer value indicates where the data for that byte of the key should come from. One subset of pointer values could indicate particular bytes of the original packet to be used. Another subset could specify static values contained in registers or arrays. Still another could specify results of previous searches done on the packet. If the searches are performed in a pipelined fashion, the results of previous searches may not be available when the keys are built. In this case, token values are temporarily placed into the key until they can be replaced with the actual result data. The pointer values could also be defined to specify logical operations to be performed on the source data before placing the result in the key. Examples of such operations would be masking bits or reversing the order of bits. In order to handle multiple packet types, separate sets of templates are provided for each type to be handled. A hardware pre-processor can be used to differentiate between the packet types and select the appropriate set of templates to be used.

As an example, consider a system that must perform simple Internet Protocol (IP) routing with Quality-of-S...