IP Library Granted Patent US 8,681,794
Granted Patent B2
US 8,681,794 · App. 13/330,642 · Granted Mar 25, 2014

System and method for efficient matching of regular expression patterns across multiple packets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,681,794
App. No.
13/330,642
Granted
Mar 25, 2014
Kind
B2
Abstract

A system and method for efficient matching regular expression patterns across multiple packets. A deep packet inspection system can be embodied in a switch ASIC using a flow tracker and a signature matching engine. The flow tracker can be positioned in an ingress portion of the switch ASIC at a location where packets in a bi-direction flow can be observed and recorded. The flow tracker generates a signature match request that is forwarded to a signature matching engine in an auxiliary pipeline. The signature matching engine is enabled to perform cross-packet signature matching using signature matching state machines and reports the signature matching results to the flow tracker using a response packet that is sent to the ingress pipeline.

Claims (19)

1. A switch for performing packet inspection, comprising:

a flow tracker that reviews packets that enter the switch at an ingress pipeline, said flow tracker creating an entry in a flow tracker session table on identification of a new flow of packets to be tracked, said flow tracker reviewing a packet associated with a previously identified flow and generating flow information to be forwarded with said reviewed packet to a memory management unit in said switch, said flow information including a flow index that identifies a particular flow of packets to which said reviewed packet is associated; and

a signature matching engine in an auxiliary pipeline of the switch that receives said reviewed packet and said flow information from said memory management unit in the switch, said signature matching engine examining said reviewed packet using context state information that is retrieved from a state table in memory of said signature matching engine using said flow index, wherein said retrieved context state information identifies a state of examination of an expression matching state machine in examining a prior packet in a flow identified by said flow index, wherein results from said expression matching state machine are included by said signature matching engine in a response packet that is sent by said signature matching engine to said ingress pipeline of the switch.

2. The switch of claim 1 , wherein a flow of packets is identified based on a source address, destination address, source port, destination port, and protocol.

3. The switch of claim 1 , wherein said expression matching state machine is a deterministic finite state automata state machine.

4. The switch of claim 1 , wherein said auxiliary pipeline is separate from an egress pipeline in the switch.

5. A switch for performing packet inspection, comprising:

a flow tracker that reviews packets that enter the switch at an ingress pipeline, said flow tracker creating an entry in a flow tracker session table on identification of a new flow of packets to be tracked, said flow tracker reviewing a packet associated with a previously identified flow and generating flow information to be forwarded with said reviewed packet to a memory management unit in said switch, said flow information including a flow index that identifies a particular flow of packets to which said reviewed packet is associated; and

a signature matching engine in an auxiliary pipeline of the switch that receives said reviewed packet and said flow information from said memory management unit in the switch, said signature matching engine analyzing said reviewed packet using a plurality of cross signature flags that are retrieved from a state table in memory of said signature matching engine using said flow index, wherein each of said retrieved plurality of cross signature flags identifies a match result of one of a plurality of corresponding expression matching state machines in examining a prior packet in a flow identified by said flow index.

6. The switch of claim 5 , wherein a flow of packets is identified based on a source address, destination address, source port, destination port, and protocol.

7. The switch of claim 5 , wherein said expression matching state machine is a deterministic finite state automata state machine.

8. The switch of claim 5 , wherein said auxiliary pipeline is separate from an egress pipeline in the switch.

9. The switch of claim 5 , wherein results from said expression matching state machine are included by said signature matching engine in a response packet that is sent by said signature matching engine to said ingress pipeline of the switch.

10. A switch for performing packet inspection, comprising:

a flow tracker that reviews packets that enter the switch at an ingress pipeline, said flow tracker creating an entry in a flow tracker session table on identification of a new flow of packets to be tracked, said flow tracker reviewing a packet associated with a previously identified flow and generating flow information to be forwarded with said reviewed packet to a memory management unit in said switch, said flow information including a flow index that identifies a particular flow of packets to which said reviewed packet is associated; and

a signature matching engine in an auxiliary pipeline of the switch that receives said reviewed packet and said flow information from said memory management unit in the switch, said signature matching engine determining a match to a known signature based on an analysis of a combination of packets that includes said reviewed packet and one or more prior packets that are part of a flow identified by said flow index, wherein said analysis of said combination of packets is facilitated by context state information that is retrieved from a state table in memory of said signature matching engine using said flow index, wherein results from said expression matching state machine are included by said signature matching engine in a response packet that is sent by said signature matching engine to said ingress pipeline of the switch.

11. The switch of claim 10 , wherein a flow of packets is identified based on a source address, destination address, source port, destination port, and protocol.

12. The switch of claim 10 , wherein said expression matching state machine is a deterministic finite state automata state machine.

13. The switch of claim 10 , wherein said auxiliary pipeline is separate from an egress pipeline in the switch.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2011
From: HILL, NATE; WOLSKI, STANISLAS; TARDO, JOSEPH
To: BROADCOM CORPORATION
Reel/Frame 027413/0253 →