Method and apparatus for data packet pattern matching
First Claim
1. A pattern matching device implemented in hardware and operable to match multi-byte data stream patterns against multi-byte library patterns in an unanchored fashion.
6 Assignments
0 Petitions
Accused Products
Abstract
A pattern matching engine supports high speed (up to at least 2.4. Gbits per second line rate speeds) parallel pattern matching operations in an unanchored fashion. The engine is preferably implemented as a hardware device. A shift register serially receives a string of data stream bytes which are partitioned into a plurality of multi-byte overlapping adjacent stream chunks. Library patterns of bytes to be searched for are similarly partitioned into multi-byte overlapping adjacent table chunks for storage in a look-up table. The plurality of multi-byte overlapping adjacent stream chunks are applied by the register in parallel to the look-up table, with a result being returned which is indicative of whether each stream chunk matches one of the look-up table stored table chunks. The results of the parallel look-up operation are then logically combined to make a match determination.
-
Citations
63 Claims
- 1. A pattern matching device implemented in hardware and operable to match multi-byte data stream patterns against multi-byte library patterns in an unanchored fashion.
-
30. A method for matching multi-byte data stream patterns against multi-byte library patterns, the multi-byte library patterns being partitioned into overlapping adjacent table byte chunks, comprising the steps of:
-
receiving a string portion of a data stream;
partitioning the string portion into a plurality of overlapping adjacent stream byte chunks;
determining whether each of the stream byte chunks matches an overlapping adjacent table byte chunk;
logically combining results of determining step to make a match determination. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A pattern matcher, comprising:
-
a shift register connected to receive a data flow including multi-byte data stream patterns, the shift register partitioning a stored string portion of the received data flow into overlapping adjacent substrings;
a look-up table that is accessed by the shift register to search for each overlapping adjacent substring simultaneously in parallel, the look-up table generating a return for each search indicative of whether the overlapping adjacent substring is present; and
an accumulator that collects the returns from the look-up and determines whether the multi-byte data stream pattern matches a multi-byte library pattern. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
-
Specification