CA2307529A1 - Method and apparatus for grammatical packet classifier - Google Patents

Method and apparatus for grammatical packet classifier Download PDF

Info

Publication number
CA2307529A1
CA2307529A1 CA002307529A CA2307529A CA2307529A1 CA 2307529 A1 CA2307529 A1 CA 2307529A1 CA 002307529 A CA002307529 A CA 002307529A CA 2307529 A CA2307529 A CA 2307529A CA 2307529 A1 CA2307529 A1 CA 2307529A1
Authority
CA
Canada
Prior art keywords
dfa
classifier
data
grammar
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002307529A
Other languages
French (fr)
Inventor
Heng Liao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsemi Storage Solutions Ltd
Original Assignee
PMC Sierra Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/538,132 external-priority patent/US7185081B1/en
Application filed by PMC Sierra Ltd filed Critical PMC Sierra Ltd
Publication of CA2307529A1 publication Critical patent/CA2307529A1/en
Abandoned legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

A packet classification language (GPCL) is provided to specify protocol hierarchies among data packets in a routing device. The GPCL uses regular expressions to match incoming data packets and a syntax to describe the protocol hierarchy. A GPCL compiler produces an enhanced DFA which incorporates the regular expression for recognizing constituent parts of a data packets and which incorporates the grammar graph defining the relationships among the constituent parts. A hardware implemented DFA is used to scan the input stream which constitutes the data packets.

Claims (30)

1. A method for identifying protocol encapsulation in received network data comprising providing a grammar and parsing incoming network data using said grammar, said network data being organized into data packets.
2. The method of claim 1 wherein said grammar is a grammar graph, the method further including providing a deterministic finite automaton (DFA) representing said grammar graph.
3. The method of claim 1 further including scanning said incoming network data using lexical token scanning to produce plural lexical tokens, said step of parsing including parsing said lexical tokens.
4. The method of claim 3 wherein said lexical scanning includes providing a set of regular expressions.
5. The method of claim 3 further including providing a deterministic finite automaton (DFA), said DFA including a representation of said lexical tokens and said grammar, said step of scanning including recognizing lexical tokens contained in said data packets using said DFA, said step of parsing including identifying grammatical structure among said lexical tokens using said DFA to identify protocol encapsulation in said incoming network data.
6. In a data packet network switching device, a method for processing data packets comprising:
providing a grammar;
receiving plural data packets, each having a length not necessarily equal to one another; and for each data packet, lexically scanning said data packet to produce plural lexical tokens, parsing said lexical tokens to produce one or more identified protocols, and processing said data packet based on said identified protocols.
7. The method of claim 6 further including compiling said grammar to produce a grammar graph.
8. The method of claim 7 wherein said lexical scanning includes providing regular expressions for identifying said lexical tokens.
9. The method of claim 8 further including compiling said regular expressions are into a deterministic finite automaton (DFA).
10. The method of claim 9 further including incorporating said grammar graph into said DFA.
11. In a data packet receiving and forwarding device, a method for processing data packets comprising a stream of data, said method comprising:
receiving a description of grammar rules in a grammar packet classification language;
compiling said grammar packet classification language to produce a grammar graph;
configuring a programmable grammatical packet classifier with said grammar graph;
parsing said data stream with said grammatical packet classifier to identify a protocol structure in a received data packet; and processing said received data packet in accordance with said protocol structure.
12. The method of claim 11 further including:
receiving a description of classification rules in a lexical classification language;
compiling said classification language to produce a deterministic finite automaton (DFA) comprising plural states;
configuring said hardware packet classifier with said DFA; and scanning said data stream with said hardware packet classifier to produce plural lexical tokens, wherein said parsing is a step of parsing said lexical tokens.
13. The method of claim 12 wherein said grammar graph is incorporated into said DFA.
14. The method of claim 12 wherein said lexical classification language includes regular expressions.
15. The method of claim 14 wherein said regular expressions include arithmetic and logic operations.
16. The method of claim 15 wherein said regular expressions further include skip operations.
17. The method of claim 16 wherein said regular expressions further include data storage operations.
18. A network data packet classifier comprising:
an input port for receiving network data packets comprising a stream of data;
a memory assemblage configured with data representing a deterministic finite automaton (DFA), said DFA representing a grammar graph and plural regular expressions; and decompression logic operatively coupled to said memory assemblage and configured to scan said stream of data with said DFA to find a matching one of said regular expressions thereby producing plural lexical tokens, said decompression logic further configured to parse said lexical tokens with said DFA to identify a protocol structure in a received network data packet, wherein processing of said network data packet depends on said protocol structure.
19. The classifier of claim 18 wherein some of said regular expressions include arithmetic instructions and logic instructions, said memory assemblage further configured to contain said instructions, the classifier further including an arithmetic logic unit operatively coupled to said decompression logic and configured to execute said instructions.
20. The classifier of claim 19 further including at least one register operatively coupled to said arithmetic logic unit, said arithmetic logic unit further configured to store data into said register in response to a save instruction.
21. The classifier of claim 19 further including skip logic operatively coupled to said logic component and configured to skip over an amount of data in response a skip instruction.
22. The classifier of claim 18 wherein said network data packets can vary from one packet to another.
23. The classifier of claim 18 wherein said DFA is in compressed form.
24. The classifier of claim 23 wherein said DFA comprises plural non-default states and plural default states, and said memory assemblage comprises a base memory, a next-state memory, and a default-state memory; said base memory configured to contain address locations of said next-state memory, said next-state memory representing all of said non-default states, said default-state memory representing all of said default states.
25. The classifier of claim 24 wherein said memories are random access memories.
26. The classifier of claim 24 wherein said memories are read-only memories.
27. A network packet classifier comprising:
means for receiving an incoming network packet; and means for identifying protocol structure in said network packet including means for scanning to match patterns in its constituent data against plural regular expressions to produce lexical tokens and means for parsing through said lexical tokens using a grammar.
28. The classifier of claim 27 wherein said means for scanning includes a memory component configured with data to represent a deterministic finite automaton (DFA).
29. The classifier of claim 28 wherein said memory component is further configured to include said grammar.
30. The classifier of claim 27 wherein said regular expressions include arithmetic specifiers and said means for classifying includes an arithmetic logic unit configured to perform operations in accordance with said arithmetic specifiers.
CA002307529A 2000-03-29 2000-05-04 Method and apparatus for grammatical packet classifier Abandoned CA2307529A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/538,132 2000-03-29
US09/538,132 US7185081B1 (en) 1999-04-30 2000-03-29 Method and apparatus for programmable lexical packet classifier

Publications (1)

Publication Number Publication Date
CA2307529A1 true CA2307529A1 (en) 2001-09-29

Family

ID=24145636

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002307529A Abandoned CA2307529A1 (en) 2000-03-29 2000-05-04 Method and apparatus for grammatical packet classifier

Country Status (1)

Country Link
CA (1) CA2307529A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023553A2 (en) * 2001-09-12 2003-03-20 Raqia Networks Inc. Method of generating a dfa state machine that groups transitions into classes in order to conserve memory
WO2004040427A1 (en) * 2002-10-29 2004-05-13 Lockheed Martin Corporation Intrusion detection accelerator
WO2004079571A2 (en) * 2003-02-28 2004-09-16 Lockheed Martin Corporation Hardware accelerator state table compiler
FR2856868A1 (en) * 2003-06-30 2004-12-31 Everbee Networks METHOD AND SYSTEM FOR ANALYZING A DATA STREAM
EP1607823A2 (en) * 2004-06-14 2005-12-21 Lionic Corporation Method and system for virus detection based on finite automata
US7216364B2 (en) 2004-06-14 2007-05-08 Lionic Corporation System security approaches using state tables
CN100357846C (en) * 2002-10-29 2007-12-26 洛克希德马丁公司 Intrusion detection accelerator
US7596809B2 (en) 2004-06-14 2009-09-29 Lionic Corporation System security approaches using multiple processing units
US7685637B2 (en) 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
CN115801020A (en) * 2023-02-13 2023-03-14 鹏城实验室 Definite finite state automaton compression method, matching method, device and medium

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023553A3 (en) * 2001-09-12 2003-08-07 Raqia Networks Inc Method of generating a dfa state machine that groups transitions into classes in order to conserve memory
WO2003023553A2 (en) * 2001-09-12 2003-03-20 Raqia Networks Inc. Method of generating a dfa state machine that groups transitions into classes in order to conserve memory
CN100357846C (en) * 2002-10-29 2007-12-26 洛克希德马丁公司 Intrusion detection accelerator
WO2004040427A1 (en) * 2002-10-29 2004-05-13 Lockheed Martin Corporation Intrusion detection accelerator
AU2003277248B2 (en) * 2002-10-29 2009-04-23 Lockheed Martin Corporation Intrusion detection accelerator
WO2004079571A2 (en) * 2003-02-28 2004-09-16 Lockheed Martin Corporation Hardware accelerator state table compiler
WO2004079571A3 (en) * 2003-02-28 2005-03-24 Lockheed Corp Hardware accelerator state table compiler
FR2856868A1 (en) * 2003-06-30 2004-12-31 Everbee Networks METHOD AND SYSTEM FOR ANALYZING A DATA STREAM
WO2005004003A1 (en) * 2003-06-30 2005-01-13 Everbee Networks Method and device for analysing a data stream
EP1607823A3 (en) * 2004-06-14 2006-01-25 Lionic Corporation Method and system for virus detection based on finite automata
US7216364B2 (en) 2004-06-14 2007-05-08 Lionic Corporation System security approaches using state tables
EP1607823A2 (en) * 2004-06-14 2005-12-21 Lionic Corporation Method and system for virus detection based on finite automata
US7596809B2 (en) 2004-06-14 2009-09-29 Lionic Corporation System security approaches using multiple processing units
US7685637B2 (en) 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
CN115801020A (en) * 2023-02-13 2023-03-14 鹏城实验室 Definite finite state automaton compression method, matching method, device and medium
CN115801020B (en) * 2023-02-13 2023-04-11 鹏城实验室 Definite finite state automaton compression method, matching method, device and medium

Similar Documents

Publication Publication Date Title
US7185081B1 (en) Method and apparatus for programmable lexical packet classifier
US7962434B2 (en) Extended finite state automata and systems and methods for recognizing patterns in a data stream using extended finite state automata
US10089086B2 (en) Method and apparatus for compiling regular expressions
CN101095310B (en) Packet parsing processor and the method for parsing grouping in the processor
US6954789B2 (en) Method and apparatus for monitoring traffic in a network
US9298437B2 (en) Unrolling quantifications to control in-degree and/or out-degree of automaton
EP2184687B1 (en) Regular expression compiling system, matching system, compiling method and matching method
US7299282B2 (en) State processor for pattern matching in a network monitor device
US8599859B2 (en) Iterative parsing and classification
US20050012521A1 (en) Methods and apparatuses for evaluation of regular expressions of arbitrary size
Yazdinejad et al. P4 to SDNet: Automatic generation of an efficient protocol-independent packet parser on reconfigurable hardware
CA2307529A1 (en) Method and apparatus for grammatical packet classifier
WO2004079571B1 (en) Hardware accelerator state table compiler
TWI239475B (en) A reconfigurable semantic processor
US8705568B2 (en) Hardware-based parser for packet-oriented protocols
Zazo et al. Automated synthesis of FPGA-based packet filters for 100 Gbps network monitoring applications
US20030074458A1 (en) Hybrid hardware/software packet filter
Hjalmtysson et al. Dynamic packet processors-A new abstraction for router extensibility
CN109753285B (en) XML (extensive markup language) parser and reconfigurable computing system based on FPGA (field programmable Gate array)
US20070118358A1 (en) Phrase processor
Cho et al. Context-free-grammar based token tagger in reconfigurable devices
Minden et al. Composite protocols for innovative active services
Megacz Scannerless boolean parsing
Gelas et al. Deploying OS Filtering Capabilities for the Improvement of Software Active Routers.
Elliott Implementing Reconfigurable Packet Matchers on Field-Programmable Gate Arrays

Legal Events

Date Code Title Description
FZDE Discontinued