Methods and apparatus for defining flow types and instances thereof such as for identifying packets corresponding to instances of the flow types
First Claim
1. A tangible computer-readable medium embodying computer-executable instructions for performing steps, when executed by one or more processors, for defining and using flow types and instances thereof, said steps comprising:
- defining a first flow type including a first set of properties, the first set of properties including at least one property of a plurality of possible properties selectable when defining a flow type, said defining the first flow type including generating an entry in a flow type data structure maintained in a computer storage device for the first flow type, said entry identifiable based on an identifier of the first flow type and said entry including an identification of each property in the first set of properties, with each said property defining a field for containing a corresponding type of value to be matched in an instance of the first flow type;
defining a first instance of the first flow type based on the entry in the flow type data structure corresponding to the first flow type, said defining the first instance including retrieving the first flow type from the computer storage device in order to identify the first set of properties, and associating an attribute in the first instance with each property in the first set of properties;
generating one or more first associative memory entries, based on said defined first instance of the first flow type, including a value for each said attribute in the first instance; and
programming one or more associative memories with said generated first associative memory entries;
wherein the computer storage device is distinct from said one or more associative memories.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are disclosed for defining flow types and instances thereof such as for identifying packets corresponding to instances of the flow types. A flow type is defined and includes a set of properties including at least one of the possible properties selectable when defining a flow type. An instance of the flow type is defined and a set of corresponding associative memory entries is generated. A lookup word generator of a packet processing engine is typically notified of the use of the flow type, and one or more lookup words are generated typically by extracting fields from a received packet and/or from other sources. Based on a result of lookup operations on the set of associative memories entries using the generated one or more lookup words, the received packet can be identified as whether it matches or does not match the instance of the flow type.
-
Citations
31 Claims
-
1. A tangible computer-readable medium embodying computer-executable instructions for performing steps, when executed by one or more processors, for defining and using flow types and instances thereof, said steps comprising:
-
defining a first flow type including a first set of properties, the first set of properties including at least one property of a plurality of possible properties selectable when defining a flow type, said defining the first flow type including generating an entry in a flow type data structure maintained in a computer storage device for the first flow type, said entry identifiable based on an identifier of the first flow type and said entry including an identification of each property in the first set of properties, with each said property defining a field for containing a corresponding type of value to be matched in an instance of the first flow type; defining a first instance of the first flow type based on the entry in the flow type data structure corresponding to the first flow type, said defining the first instance including retrieving the first flow type from the computer storage device in order to identify the first set of properties, and associating an attribute in the first instance with each property in the first set of properties; generating one or more first associative memory entries, based on said defined first instance of the first flow type, including a value for each said attribute in the first instance; and programming one or more associative memories with said generated first associative memory entries;
wherein the computer storage device is distinct from said one or more associative memories. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus for defining and using flow types and instances thereof, the apparatus comprising:
-
means for defining a first flow type including a first set of properties, the first set of properties including at least one property of a plurality of possible properties selectable when defining a flow type, said defining the first flow type including generating an entry in a flow type data structure maintained in a computer storage device for the first flow type, said entry identifiable based on an identifier of the first flow type and said entry including an identification of each property in the first set of properties, with each said property defining a field for containing a corresponding type of value to be matched in an instance of the first flow type; means for defining a first instance of the first flow type based on the entry in the flow type data structure corresponding to the first flow type, said defining the first instance including retrieving the first flow type from the computer storage device in order to identify the first set of properties, and associating an attribute in the first instance with each property in the first set of properties; means for generating one or more first associative memory entries, based on said defined first instance of the first flow type, including a value for each said attribute in the first instance; and means for programming one or more associative memories with said generated first associative memory entries;
wherein the computer storage device is distinct from said one or more associative memories. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method for performing steps for defining and using flow types and instances thereof, the method comprising:
-
receiving configuration information identifying at least one property of a plurality of possible properties selectable when defining a flow type; defining a first flow type including a first set of properties, the first set of properties including said at least one property, said defining the first flow type including generating an entry in a flow type data structure maintained in a computer storage device for the first flow type, said entry identifiable based on an identifier of the first flow type and said entry including an identification of each property in the first set of properties, with each said property defining a field for containing a corresponding type of value to be matched in an instance of the first flow type; defining a first instance of the first flow type based on the entry in the flow type data structure corresponding to the first flow type, said defining the first instance including retrieving the first flow type from the computer storage device in order to identify the first set of properties, and associating an attribute in the first instance with each property in the first set of properties; generating one or more first associative memory entries, based on said defined first instance of the first flow type, including a value for each said attribute in the first instance; and programming one or more associative memories with said generated first associative memory entries;
wherein the computer storage device is distinct from said one or more associative memories. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. An apparatus comprising one or more processors and memory, wherein the memory stores one or more instructions that, when executed by said one or more processors, perform operations for defining and using flow types and instances thereof, said operations comprising:
-
defining a first flow type including a first set of properties, the first set of properties including at least one property of a plurality of possible properties selectable when defining a flow type, said defining the first flow type including generating an entry in a flow type data structure maintained in a computer storage device for the first flow type, said entry identifiable based on an identifier of the first flow type and said entry including an identification of each property in the first set of properties, with each said property defining a field for containing a corresponding type of value to be matched in an instance of the first flow type; defining a first instance of the first flow type based on the entry in the flow type data structure corresponding to the first flow type, said defining the first instance including retrieving the first flow type from the computer storage device in order to identify the first set of properties, and associating an attribute in the first instance with each property in the first set of properties; generating one or more first associative memory entries, based on said defined first instance of the first flow type, including a value for each said attribute in the first instance; and programming one or more associative memories with said generated first associative memory entries;
wherein the computer storage device is distinct from said one or more associative memories. - View Dependent Claims (29, 30, 31)
-
Specification