Method and apparatus for programmable lexical packet classifier
First Claim
Patent Images
1. A method for classifying received network data in a network device comprising:
- providing a language definition comprising regular expressions;
parsing said regular expressions to identify grammatical structure among said regular expressions to produce a deterministic finite automaton (DFA); and
processing incoming network data with said language definition in accordance with a formal language processing technique including scanning said network data using lexical token scanning according to said language definition, said scanning including recognizing one or more lexical tokens contained in said network data using said DFA, said DFA including a representation of said lexical tokens,said processing resulting in identification of protocol encapsulation formats in said network data.
9 Assignments
0 Petitions
Accused Products
Abstract
A packet classification language (PCL) is provided to specify data packets in a routing device. The PCL uses regular expressions to match incoming data packets. Class identifiers associated with each regular expression identifies the class to which each recognized packet belongs for subsequent processing. A PCL compiler produces a DFA which recognizes the data packets as defined by the regular expressions. A hardware implemented DFA is used to scan the input stream which constitutes the data packets.
-
Citations
50 Claims
-
1. A method for classifying received network data in a network device comprising:
-
providing a language definition comprising regular expressions; parsing said regular expressions to identify grammatical structure among said regular expressions to produce a deterministic finite automaton (DFA); and processing incoming network data with said language definition in accordance with a formal language processing technique including scanning said network data using lexical token scanning according to said language definition, said scanning including recognizing one or more lexical tokens contained in said network data using said DFA, said DFA including a representation of said lexical tokens, said processing resulting in identification of protocol encapsulation formats in said network data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a network data switching device, a method for classifying data packets comprising steps of:
-
providing a language definition in the form of one or more regular expressions, each having an associated class identifier indicative of a protocol encapsulation format; parsing said regular expressions to identify grammatical structure among said regular expressions to produce a deterministic finite automaton (DFA), said DFA including a representation of a plurality of lexical tokens; receiving plural data packets, each having a length not necessarily equal to one another; and for each data packet, processing said data packet in accordance with a formal language processing technique including determining a matching regular expression from among said regular expressions that matches said data packet, wherein said each data packet is classified according to the class identifier associated with said matching regular expression, said determining comprising lexical token scanning of said data packet to identify said lexical tokens using said DFA. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. In a data packet receiving and forwarding device, a method for classifying received data packets constituting a data stream, said method comprising steps of:
-
receiving a description of classification rules in the form of a classification language definition, said classification language definition including regular expressions; compiling said classification language definition to produce a deterministic finite automaton (DFA) comprising plural states, including parsing said regular expressions to identify grammatical structure among said regular expressions, said DFA including a representation of a plurality of lexical tokens; configuring a programmable hardware packet classifier with said DFA; and receiving said data stream and processing said data stream in accordance with a formal language processing technique including scanning said data stream with said hardware packet classifier to classify said received data packets into one of a plurality of protocol encapsulation formats, said scanning comprising using said DFA to identify said lexical tokens in said data stream. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. 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 produced from a language definition comprising plural regular expressions by parsing said regular expressions to identify grammatical structure among said regular expressions; and decompression logic operatively coupled to said memory assemblage and configured to process said stream of data using said language definition in accordance with a formal language processing technique including scanning said stream of data with said DFA to find a matching one of said regular expressions, said regular expressions having corresponding class identifiers, each class identifier corresponding to a protocol encapsulation format, said scanning comprising using said DFA to identify lexical tokens in said stream of data, said DFA including a representation of said lexical tokens, wherein each of said network data packets is associated with the class identifier of said regular expression that matches said each network data packet. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A network data packet classifier comprising:
-
an input configured to provide a data packet comprising a stream of data; a first system of memory configured with data representing a deterministic finite automaton (DFA), said DFA defined in accordance with a language definition comprising a set of regular expressions and produced by parsing said set of regular expressions to identify grammatical structure among said regular expressions, said DFA comprising plural states including an initial state and plural terminating states; a system of logic circuits operatively coupled to said first system of memory and to said input, and configured to process said stream of data using said language definition in accordance with a formal language processing technique including a step to lexically scan said data stream with said DFA to produce a reached terminating state which corresponds to recognition of a lexical token; and a second system of memory configured with data representing a class index corresponding to each of said terminating states and configured to output a class index in response to the production of said reached terminating state, said class index corresponding to a protocol encapsulation format. - View Dependent Claims (37, 38, 39, 40, 41, 42)
-
-
43. A network packet classifier comprising:
-
means for receiving an incoming network packet; means for processing said network packet in using a language definition in accordance with a formal language processing technique including means for classifying said network packet by matching the pattern of constituent data of said network packet against plural regular expressions, each regular expression having a corresponding class identifier; and means for outputting a class identifier of the regular expression which matches said network packet, said class identifier corresponding to a protocol encapsulation format, said means for classifying including means for lexical token scanning to recognize one or more lexical tokens in said network packet using a deterministic finite automaton (DFA), said DFA including a representation of said one or more lexical tokens, said DFA produced by parsing said regular expressions to identify grammatical structure among said regular expressions. - View Dependent Claims (44, 45, 46)
-
-
47. A network packet classifier comprising:
-
a dual-ported memory component; first classification logic operatively coupled to a first port of said dual-ported memory component and having a first input for receiving a data stream; and second classification logic operatively coupled to a second port of said dual-ported memory component and having a second input for receiving a data stream, said memory component configured to contain a deterministic finite automaton (DFA) representative of a language definition and comprising plural states, said DFA representing plural regular expressions of said language definition for matching data packets and produced by parsing said regular expressions to identify grammatical structure among said regular expressions, said first and second classification logic each configured to process an associated data stream using said language definition according to a formal language processing technique including a step to scan said associated data stream using said DFA to identify data packets contained therein using said DFA to perform lexical token scanning of said data packets to produce plural lexical tokens, said DFA including a representation of said lexical tokens to classify identified data packets into one of a plurality of protocol encapsulation formats. - View Dependent Claims (48, 49, 50)
-
Specification