Patent US7586851B2 successfully refreshed from Google Patents.
US7586851B2
Expired / Lapsed
US
⏱️ 0.0 years remaining
Programmable packet parsing processor
Assignee: Cisco Technology Inc
•
Filing: 2004-04-26
•
Granted: 2009-09-08
•
Expires: 2024-04-26
Abstract
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.
Inventors
- 👤 Rina Panigrahy
- 👤 Jackie Liu
- 👤 Daniel Yu-Kwong Ng
- 👤 Sanjay Jain
- 👤 Nagaraj A. Bagepalli
- 👤 Abhijit Patra
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 21:24
CPC Classifications
H; H04; H04L; H04L63/00; H04L63/02; H04L63/0227; H04L63/0254; H04L63/14; H04L63/1408; H04L69/00; H04L69/22
Claims Analysis
Total Claims: 48
Claim 1
Independent Claim
116 words
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.
Claim 2
Dependent Claim
116 words
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.
Claim 3
Dependent Claim
32 words
The packet processor of claim 1 , wherein the hash table comprises a TCP (Transmission Control Protocol) flow table and the key comprises a destination IP (Internet Protocol) address and destination port.
Claim 4
Dependent Claim
24 words
The packet processor of claim 1 , wherein the parsing engine further comprises a plurality of scratchpads to store data while executing parsing instructions.
Claim 5
Dependent Claim
23 words
The packet processor of claim 1 , wherein a portion of the parsing instructions emulate nodes from a software application for application recognition.
Claim 6
Dependent Claim
22 words
The packet processor of claim 1 , wherein a parsing instruction comprises an encoded bitmap that represents whether characters have a transition.
Claim 7
Dependent Claim
19 words
The packet processor of claim 1 , wherein the state-graph unit comprises an FCRAM (Fast Cycle Random Access Memory).
Claim 8
Dependent Claim
22 words
The packet processor of claim 1 , wherein the parsing engine further comprises a plurality of processing cores to execute parsing instructions.
Claim 9
Dependent Claim
43 words
The packet processor of claim 1 , wherein the packet processor is contained within a network device, coupled to a network operating at 10-Gbps or above, network device performing one from the group containing: data packet routing, data packet forwarding, data packet bridging.
Claim 10
Dependent Claim
31 words
The packet parsing processor of claim 1 , wherein the packet parsing supports one from the group containing: intrusion detection, quality of service, application recognition, virus detection, and an application-level firewall.
Claim 11
Dependent Claim
113 words
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.
Claim 12
Dependent Claim
113 words
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.
Claim 13
Dependent Claim
25 words
The packet processor of claim 10 , wherein the parsing engine stores the parser state in the flow state unit after parsing the network packet.
Claim 14
Dependent Claim
99 words
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.
Claim 15
Dependent Claim
99 words
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.
Claim 16
Dependent Claim
33 words
The packet processor of claim 12 , wherein the means for hashing comprises a TCP (Transmission Control Protocol) hash table and the key comprises a destination IP (Internet Protocol) address and destination port.
Claim 17
Dependent Claim
27 words
The packet processor of claim 12 , wherein the means for regular expression matching further comprises a plurality of means for storing data while executing parsing instructions.
Claim 18
Dependent Claim
23 words
The packet processor of claim 12 , wherein a portion of the parsing instructions emulate nodes from a software application for application recognition.
Claim 19
Dependent Claim
22 words
The packet processor of claim 12 , wherein a parsing instruction comprises an encoded bitmap that represents whether characters have a transition.
Claim 20
Dependent Claim
24 words
The packet processor of claim 12 , wherein the means for regular expression matching further comprises a plurality of means for executing parsing instructions.
Claim 21
Dependent Claim
28 words
The packet processor of claim 12 , wherein the means for regular expression matching stores the parser state in the means for maintaining after parsing the network packet.
Claim 22
Dependent Claim
92 words
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.
Claim 23
Dependent Claim
92 words
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.
Claim 24
Independent Claim
72 words
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.
Claim 25
Independent Claim
72 words
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.
Claim 26
Dependent Claim
32 words
The packet processor of claim 20 , wherein the hash unit comprises a TCP (Transmission Control Protocol) hash table and the key comprises a destination IP (Internet Protocol) address and destination port.
Claim 27
Dependent Claim
19 words
The method of claim 20 , wherein the performing instruction-driven packet parsing further comprises executing parsing instructions in scratchpads.
Claim 28
Dependent Claim
45 words
The method of claim 20 , wherein a parsing instruction is associated with a node in the state-graph, and identifying keyword matches further comprises identifying a parsing instruction at a node of the state graph, and executing the parsing instruction responsive to a node match.
Claim 29
Dependent Claim
22 words
The method of claim 20 , wherein a portion of the parsing instructions emulate nodes from a software application for application recognition.
Claim 30
Dependent Claim
21 words
The method of claim 20 , wherein a parsing instruction comprises an encoded bitmap that represents whether characters have a transition.
Claim 31
Dependent Claim
27 words
The method of claim 20 , wherein the identifying keyword matches comprises identifying keyword matches on a state-graph stored in an FCRAM (Fast Cycle Random Access Memory).
Claim 32
Dependent Claim
12 words
The method of claim 20 , further comprising executing a parsing instruction.
Claim 33
Independent Claim
54 words
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.
Claim 34
Independent Claim
54 words
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.
Claim 35
Independent Claim
58 words
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.
Claim 36
Independent Claim
58 words
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.
Claim 37
Dependent Claim
92 words
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.
Claim 38
Dependent Claim
92 words
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.
Claim 39
Dependent Claim
33 words
The computer program product of claim 30 , wherein the hash unit comprises a TCP (Transmission Control Protocol) hash table and the key comprises a destination IP (Internet Protocol) address and destination port.
Claim 40
Dependent Claim
21 words
The computer program product of claim 30 , wherein the performing instruction-driven packet parsing further comprises executing parsing instructions in scratchpads.
Claim 41
Dependent Claim
47 words
The computer program product of claim 30 , wherein a parsing instruction is associated with a node in the state-graph, and identifying keyword matches further comprises identifying a parsing instruction at a node of the state graph, and executing the parsing instruction responsive to a node match.
Claim 42
Dependent Claim
24 words
The computer program product of claim 30 , wherein a portion of the parsing instructions emulate nodes from a software application for application recognition.
Claim 43
Dependent Claim
23 words
The computer program product of claim 30 , wherein a parsing instruction comprises an encoded bitmap that represents whether characters have a transition.
Claim 44
Dependent Claim
29 words
The computer program product of claim 30 , wherein the identifying keyword matches comprises identifying keyword matches on a state-graph stored in an FCRAM (Fast Cycle Random Access Memory).
Claim 45
Dependent Claim
14 words
The computer program product of claim 30 , further comprising executing a parsing instruction.
Claim 46
Dependent Claim
73 words
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.
Claim 47
Dependent Claim
73 words
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.
Claim 48
Dependent Claim
23 words
The computer program product of claim 38 , wherein maintaining the flow states comprises storing the parser state after parsing the network packet.
References Cited (Backward Citations)
US5812760A
Cited
US5748905A
Cited
US20060209840A1
Cited
US6952756B1
Cited
US6556999B1
Cited
US20050060427A1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2012-09-07 | 2013-03-09 | 2013-09-08 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2016-09-07 | 2017-03-09 | 2017-09-08 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2020-09-07 | 2021-03-09 | 2021-09-08 | $7700.00 | Window Closed / Lapsed |