×

Searching for strings in messages

  • US 8,095,549 B2
  • Filed: 10/05/2005
  • Issued: 01/10/2012
  • Est. Priority Date: 10/05/2005
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method in a router to search a pre-defined string in a message, comprising:

  • sending a key and a key index pointing to an index element within the key to a processor in response to determining a presence of the key in the message, wherein determining the presence of the key in the message is performed in a content addressable memory,searching for a suffix by performing a byte-by-byte comparison of the elements of the pre-defined string that occur starting from the index element with corresponding position-wise matching elements of the message in a forward direction starting from the index element,searching for a reverse prefix by traversing a reverse prefix tree, the reverse prefix tree comprising a root node, invalid nodes, and valid nodes, wherein the invalid node of the reverse prefix tree comprises elements that do not represent a valid reverse prefix for a pre-defined string, and performing a byte-by-byte comparison of the elements of the pre-defined string that occur prior to the index element with corresponding position-wise matching elements of the message in a reverse direction starting from an element prior to the index element, wherein the reverse prefix is searched for a longest matching valid reverse prefix, anddetermining that the pre-defined string is found in the message if the search for the suffix and the longest matching valid reverse prefix is successful,wherein searching for the suffix includes searching for a longest matching valid suffix, and storing tags of the longest matching valid suffix in a memory,wherein searching for the suffix is performed by traversing a suffix tree, wherein the suffix tree comprises a root node, invalid nodes, and valid nodes, wherein an invalid node comprises elements that does not represent a valid portion of the suffix for the pre-defined string, wherein a valid node of the suffix tree comprises elements that represent a valid portion of the suffix for the pre-defined string and a first tag, wherein the first tag includes an identifier of the pre-defined string and an identifier of the suffix tree, wherein the first tag of the valid node that matches the search in the suffix tree is stored in a first set of the memory.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×