Programmable packet parsing processor
First Claim
Patent Images
1. A packet parsing processor, comprising:
- a state-graph unit to store parsing instructions for content inspection of network packets at memory locations representative of nodes of a state-graph to be traced, wherein each node is representative of a character of a network packet; and
a parsing engine, having an input/output coupled to an input/output of the state-graph unit to receive the parsing instructions and having an input coupled to receive the network packet, the parsing engine to execute a first parsing instruction located at a current node of the state-graph against a byte stream from the network packet to determine a next node of the state-graph, wherein the next node of the state-graph includes a second parsing instruction for a next character of the network packet,the packet processor further comprising a hash table to store portions of data of the nodes of the state-graph, wherein the first parsing instruction comprises a hash instruction.
0 Assignments
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.
-
Citations
49 Claims
-
1. A packet parsing processor, comprising:
-
a state-graph unit to store parsing instructions for content inspection of network packets at memory locations representative of nodes of a state-graph to be traced, wherein each node is representative of a character of a network packet; and a parsing engine, having an input/output coupled to an input/output of the state-graph unit to receive the parsing instructions and having an input coupled to receive the network packet, the parsing engine to execute a first parsing instruction located at a current node of the state-graph against a byte stream from the network packet to determine a next node of the state-graph, wherein the next node of the state-graph includes a second parsing instruction for a next character of the network packet, the packet processor further comprising a hash table to store portions of data of the nodes of the state-graph, wherein the first parsing instruction comprises a hash instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. In a packet parsing processor, a method comprising:
-
storing parsing instructions for content inspection of network packets at memory locations representative of nodes of a state-graph to be traced, wherein each node is representative of a character of a network packet; receiving a first parsing instruction and the network packet; and executing a first parsing instruction located at a current node of the state-graph against a byte stream of the network packet to determine a next node of the state-graph, wherein the next node of the state-graph includes a second parsing instruction for a next character of the network packet, wherein the first parsing instruction comprises a hash instruction to perform an action related to the hash table. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A packet parsing processor, comprising
means for storing parsing instructions for content inspection of network packets at memory locations representative of nodes of a state-graph to be traced, wherein each node is representative of a character of a network packet; -
means for receiving a first parsing instruction and the network packet; and means for executing, coupled to the means for storing and the means for receiving, the means for executing performing an action on a first parsing instruction located at a current node of the state-graph against a byte stream of the network packet to determine a next node of the state-graph, wherein the next node of the state-graph includes a second parsing instruction for a next character of the network packet, wherein the first parsing instruction comprises a hash instruction to perform an action related to a means for hashing. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A computer program product, comprising a computer-readable medium having computer program instructions and data embodied thereon for a method of parsing packets in a packet parsing processor, the method comprising:
-
storing parsing instructions for content inspection of network packets at memory locations representative of nodes of a state-graph to be traced, wherein each node is representative of a character of a network packet; receiving a first parsing instruction and the network packet; and executing a first parsing instruction located at a current node of the state-graph against a byte stream of the network packet to determine a next node of the state-graph, wherein the next node of the state-graph includes a second parsing instruction for a next character of the network packet, wherein the first parsing instruction comprises a hash instruction to perform an action related to a hash table. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A network device having a processor and a memory, comprising:
-
a state-graph unit to store parsing instructions for content inspection of network packets at memory locations representative of nodes of a state-graph to be traced, wherein each node is representative of a character of a network packet; and a parsing engine, having an input/output coupled to an input/output of the state-graph unit to receive the parsing instructions and having an input coupled to receive the network packet, the parsing engine to execute a first parsing instruction located at a current node of the state-graph against a byte stream from the network packet to determine a next node of the state-graph, wherein the next node of the state-graph includes a second parsing instruction for a next character of the network packet, the packet processor further comprising a hash table to store portions of data of the nodes of the state-graph, wherein the first parsing instruction comprises a hash instruction.
-
Specification