Novel data structures, methods and apparatus for finding a full match
between a search pattern and a pattern stored in a leaf of the search
tree. A key is input, a hash function is performed on the key, a direct
table (DT) is accessed, and a tree is walked through pattern search
control blocks (PSCBs) until reaching a leaf. The search mechanism uses a
set of data structures that can be located in a few registers and regular
memory, and then used to build a Patricia tree structure that can be
manipulated by a relatively simple hardware macro. Both keys and
corresponding information needed for retrieval are stored in the Patricia
tree structure. The hash function provides an n->n mapping of the bits
of the key to the bits of the hash key. The data structure that is used
to store the hash key and the related information in the tree is called a
leaf. Each leaf corresponds to a single key that matches exactly with the
input key. The leaf contains the key as well as additional information.
The length of the leaf is programmable, as is the length of the key. The
leaf is stored in random access memory and is implemented as a single
memory entry. If the key is located in the direct table then it is called
a direct leaf.