Novel data structures, methods and apparatus for a Software Managed Tree
(SMT) which provides a mechanism to create tree structures that follow a
search mechanism defined by a control point processor. The search
mechanism does not require storage on the previous pointer and uses only
a forward pointer along with a next bit or group of bits to test thereby
reducing storage space for nodes. The search mechanism processes multiple
filter rules for an application without requiring multiple searches and
also allows various filter rules to be chained. Two patterns of the same
length are stored in each leaf to define a range compare. A compare at
the end operation is either a compare under range or a compare under
mask. In a compare under range, the input key is checked to determine if
it is in the range defined by the two patterns. In a compare under mask,
the bits in the input key are compared with the bits in a first leaf
pattern under a mask specified in a second leaf pattern.