Programmable packet parsing processor
First Claim
Patent Images
1. A packet parsing processor, comprising:
- a parsing engine having an input to receive a signal that represents a network packet, the parsing engine to perform instruction-driven packet parsing on the packet, responsive to parsing instructions; and
a state-graph unit having an input/output coupled to a second input/output of the parsing engine, the state-graph unit to store the parsing instructions, wherein a parsing instruction is associated with a node in a state-graph, the parsing engine executing the parsing instruction responsive to a node match;
wherein the parsing engine further comprises a hash unit to store a portion of a parsing state, and wherein the parsing engine generates a key to look-up the portion of the parsing state.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a packet processing device and method. A parsing processor provides instruction-driven content inspection of network packets at 10-Gbps and above with a parsing engine that executes parsing instructions. A flow state unit maintains statefulness of packet flows to allow content inspection across several related network packets. A state-graph unit traces state-graph nodes to keyword indications and/or parsing instructions. The parsing instructions can be derived from a high-level application to emulate user-friendly parsing logic. The parsing processor sends parsed packets to a network processor unit for further processing.
27 Citations
39 Claims
-
1. A packet parsing processor, comprising:
-
a parsing engine having an input to receive a signal that represents a network packet, the parsing engine to perform instruction-driven packet parsing on the packet, responsive to parsing instructions; and a state-graph unit having an input/output coupled to a second input/output of the parsing engine, the state-graph unit to store the parsing instructions, wherein a parsing instruction is associated with a node in a state-graph, the parsing engine executing the parsing instruction responsive to a node match; wherein the parsing engine further comprises a hash unit to store a portion of a parsing state, and wherein the parsing engine generates a key to look-up the portion of the parsing state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A packet parsing processor, comprising:
-
a parsing engine having an input to receive a signal that represents a network packet, the parsing engine to perform instruction-driven packet parsing on the packet, responsive to parsing instructions; and a state-graph unit having an input/output coupled to a second input/output of the parsing engine, the state-graph unit to store the parsing instructions, wherein a parsing instruction is associated with a node in a state-graph, the parsing engine executing the parsing instruction responsive to a node match; and a flow state unit having an input/output coupled to a first input/output of the parsing engine, the flow state unit to maintain a parse state across a packet flow. - View Dependent Claims (11)
-
-
12. A packet parsing processor, comprising:
-
means for parsing a network packet responsive to parsing instructions; and means for graphing, coupled to means for regular expression matching, the means for graphing identifying keyword matches between a state-graph and the network packet, wherein a parsing instruction is associated with a node in the state-graph, the means for regular expression matching executing the parsing instruction responsive to a node match; wherein the means for parsing further comprises a means for hashing to store a parsing state, and the means for parsing generates a key to look-up a portion of the parsing state. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A packet parsing processor, comprising:
-
means for parsing a network packet responsive to parsing instructions; and means for graphing, coupled to means for regular expression matching, the means for graphing identifying keyword matches between a state-graph and the network packet, wherein a parsing instruction is associated with a node in the state-graph, the means for regular expression matching executing the parsing instruction responsive to a node match; and means for maintaining, coupled to the means for regular expression matching, the means for maintaining storing parse states for a plurality of packet flows.
-
-
20. A method of parsing packets in a processor, comprising:
-
receiving a network packet, performing instruction-driven packet parsing on the network packet responsive to parsing instructions that traverse nodes of a state machine; and storing parsing instructions in memory addresses corresponding to the nodes, wherein performing instruction-driven packet parsing comprises storing a portion of a parsing state in a hash unit, and generating a key to look-up the portion of the parsing state. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. A method of parsing packets in a processor, comprising:
-
receiving a network packet, performing instruction-driven packet parsing on the network packet responsive to parsing instructions that traverse nodes of a state machine; and storing parsing instructions in memory addresses corresponding to the nodes, further comprising;
maintaining parse states for a plurality of packet flows.
-
-
29. A method of parsing packets in a processor, comprising:
-
receiving a network packet, performing instruction-driven packet parsing on the network packet responsive to parsing instructions that traverse nodes of a state machine; storing parsing instructions in memory addresses corresponding to the nodes; and maintaining the flow states further comprises storing the parser state after parsing the network packet.
-
-
30. A computer program product, comprising a computer-readable medium having computer program instructions and data embodied thereon for a method for parsing packets in a processor, the method comprising:
-
receiving a network packet, performing instruction-driven packet parsing on the network packet responsive to parsing instructions that traverse nodes of a state machine; and storing parsing instructions in memory addresses corresponding to the nodes, wherein the performing instruction-driven packet parsing further storing a portion of a parsing state in a hash unit, and generating a key to look-up the portion of the parsing state. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37)
-
-
38. A computer program product, comprising a computer-readable medium having computer program instructions and data embodied thereon for a method for parsing packets in a processor, the method comprising:
-
receiving a network packet, performing instruction-driven packet parsing on the network packet responsive to parsing instructions that traverse nodes of a state machine; and storing parsing instructions in memory addresses corresponding to the nodes, further comprising; maintaining parse states for a plurality of packet flows. - View Dependent Claims (39)
-
Specification