← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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-10-24 12:09
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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag