Deterministic finite automata (DFA) instruction
First Claim
1. A computer-implemented method for automatically performing a pattern search in input data, the method comprising:
- providing an instruction including a plurality of fields for traversing nodes of a DFA graph, any of which can be, without prior definition, a start node at which processing of input data starts, the instruction being provided allows the processing of the input data to start at any node of the DFA graph;
writing a DFA graph identifier into a respective one of the plurality of fields identifying which one of a plurality of previously-stored DFA graphs to traverse, the DFA graph identifier comprising a base memory address providing a location in memory of where the identified DFA graph is stored;
writing an input reference into a respective one of the plurality of fields identifying input data to be processed using the identified DFA graph;
writing an output reference into a respective one of the plurality of fields identifying the output reference for storing results generated responsive to the processed input data; and
forwarding the instruction to a DFA engine adapted to traverse the nodes of the identified DFA graph starting at the start node to process the input data and to provide results as instructed by the output reference.
8 Assignments
0 Petitions
Accused Products
Abstract
A computer-readable instruction is described for traversing deterministic finite automata (DFA) graphs to perform a pattern search in the in-coming packet data in real-time. The instruction includes one or more pre-defined fields. One of the fields includes a DFA graph identifier for identifying one of several previously-stored DFA graphs. Another one of the fields includes an input reference for identifying input data to be processed using the identified DFA graphs. Yet another one of the fields includes an output reference for storing results generated responsive to the processed input data. The instructions are forwarded to a DFA engine adapted to process the input data using the identified DFA graph and to provide results as instructed by the output reference.
-
Citations
17 Claims
-
1. A computer-implemented method for automatically performing a pattern search in input data, the method comprising:
-
providing an instruction including a plurality of fields for traversing nodes of a DFA graph, any of which can be, without prior definition, a start node at which processing of input data starts, the instruction being provided allows the processing of the input data to start at any node of the DFA graph; writing a DFA graph identifier into a respective one of the plurality of fields identifying which one of a plurality of previously-stored DFA graphs to traverse, the DFA graph identifier comprising a base memory address providing a location in memory of where the identified DFA graph is stored; writing an input reference into a respective one of the plurality of fields identifying input data to be processed using the identified DFA graph; writing an output reference into a respective one of the plurality of fields identifying the output reference for storing results generated responsive to the processed input data; and forwarding the instruction to a DFA engine adapted to traverse the nodes of the identified DFA graph starting at the start node to process the input data and to provide results as instructed by the output reference. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium storing instructions for searching for a pattern in input data that, when executed by a computer, cause the computer to:
-
write a DFA graph identifier into a respective one of a plurality of fields of an instruction for traversing nodes of a DFA graph, any of which can be, without prior definition, a start node at which processing of input data starts, the instruction being provided allows the processing of the input data to start at any node of the DFA graph, the DFA graph identifier identifying a previously-stored DFA graph to traverse, the DFA graph identifier comprising a base memory address providing a location in memory of where the identified DFA graph is stored; write an input data reference into a respective one of the plurality of fields identifying the start location of input data to be searched using the identified DFA graph; write an output reference into a respective one of the plurality of fields identifying the location in memory of results generated by traversing nodes of the identified DFA graph responsive to the input data; and forward the instruction to a DFA engine adapted to traverse the nodes of the identified DFA graph starting at the start node to process the input data and to provide results as instructed by the output reference. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A processor adapted to automatically process data, the processor comprising:
-
means for providing an instruction including a plurality of fields for traversing nodes of a DFA graph, any of which can be without prior definition a start node at which processing of input data starts, the instruction being provided allows the processing of the input data to start at any node of the DFA graph; means for writing a DFA graph identifier into a respective one of a plurality of fields identifying which one of a plurality of previously-stored DFA graphs to traverse, the DFA graph identifier comprising a base memory address providing a location in memory of where the identified DFA graph is stored; means for writing an input reference into a respective one of the plurality of fields identifying input data to be processed using the identified DFA graph; means for writing an output reference into a respective one of the plurality of fields identifying output reference for storing results generated responsive to the processed input data; and means for forwarding the instruction to a DFA engine adapted to traverse the nodes of the identified DFA graph starting at the start node to process the input data and to provide results as instructed by the output reference.
-
Specification