Method and apparatus for maintaining netflow statistics using an associative memory to identify and maintain netflows
First Claim
1. A method comprising:
- performing a lookup operation in an associative memory on a set of associative memory entries based on an item to generate an associative memory result directly or after a subsequent memory read operation;
evaluating the associative memory result;
in response to the associative memory result corresponding to a not found condition, adding an entry to the set of associative memory entries;
in response to the associative memory result corresponding to a found condition, updating a statistics entry in a set of statistics based on the associative memory result; and
in response to determining a number of entries within the set of associative memory entries exceeds a threshold, identifying a position of an oldest entry in the set of associative memory entries and after said identifying the position, retrieving a first statistics value corresponding to the position from the set of statistics;
wherein the set of associative memory entries is maintained as a queue.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are disclosed for maintaining netflow statistics using an associative memory to identify and maintain netflows. A lookup operation is performed on a set of associative memory entries to produce an associative memory result directly or after a subsequent memory read operation. In response to the associative memory result corresponding to a not found condition, an entry is added to the set of associative memory entries. Otherwise, a statistics entry in the set of statistics is updated based on the associative memory result. In one implementation, the associative memory is programmed with a set of permanent netflow entries and a set of dynamic or nonpermanent netflow entries, which are maintained in the form of a queue or ring buffer. In one embodiment, when the number of dynamic entries exceeds a threshold value, one or more of the dynamic entries and their corresponding statistics values are flushed.
64 Citations
24 Claims
-
1. A method comprising:
-
performing a lookup operation in an associative memory on a set of associative memory entries based on an item to generate an associative memory result directly or after a subsequent memory read operation;
evaluating the associative memory result;
in response to the associative memory result corresponding to a not found condition, adding an entry to the set of associative memory entries;
in response to the associative memory result corresponding to a found condition, updating a statistics entry in a set of statistics based on the associative memory result; and
in response to determining a number of entries within the set of associative memory entries exceeds a threshold, identifying a position of an oldest entry in the set of associative memory entries and after said identifying the position, retrieving a first statistics value corresponding to the position from the set of statistics;
wherein the set of associative memory entries is maintained as a queue. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus comprising:
-
means for performing a lookup operation in an associative memory on a set of associative memory entries based on an item to generate an associative memory result after a subsequent memory read operation;
means for evaluating the associative memory result;
means for adding an entry to the set of associative memory entries in response to the associative memory result corresponding to a not found condition;
means for updating a statistics entry in a set of statistics based on the associative memory result in response to the associative memory result corresponding to a found condition; and
means for maintaining the set of associative memory entries as a queue. - View Dependent Claims (8)
-
-
9. A method comprising:
-
programming an associative memory with a set of permanent associative memory entries within a set of associative memory entries;
initialing or adding a set of permanent statistic entries within a set of statistic entries in a memory device;
performing a lookup operation in the associative memory on the set of associative memory entries based on an item to generate an associative memory result directly or after a subsequent memory read operation;
evaluating the associative memory result;
in response to the associative memory result corresponding to a not found condition;
adding an entry to a set of nonpermanent associative memory entries within the set of associative memory entries; and
initializing or adding a corresponding initial statistics value to a set of nonpermanent statistics within the set of statistic entries;
in response to the associative memory result corresponding to a found condition, updating a statistics entry in the set of statistics based on the associative memory result; and
in response to an expiration of a timer, retrieving a plurality of statistics values from the set of statistics entries;
wherein the set of nonpermanent associative memory entries is maintained as a queue. - View Dependent Claims (10)
-
-
11. An apparatus comprising:
-
means for programming an associative memory with a set of permanent associative memory entries within a set of associative memory entries;
means for initializing a set of permanent statistic entries within a set of statistic entries in a memory device;
means for performing a lookup operation in the associative memory on the set of associative memory entries based on an item to generate an associative memory result directly or after a subsequent memory read operation;
means for evaluating the associative memory result;
means for adding an entry to a set of nonpermanent associative memory entries within the set of associative memory entries in response to the associative memory result corresponding to a not found condition;
means for updating a statistics entry in the set of statistics based on the associative memory result in response to the associative memory result corresponding to a found condition;
means for retrieving a plurality of statistics values from the set of statistics entries in response to an expiration of a timer; and
means for maintaining the set of nonpermanent associative memory entries as a queue. - View Dependent Claims (12)
-
-
13. A method comprising:
-
performing a lookup operation in an associative memory on a set of associative memory entries based on an item to generate an associative memory result directly or after a subsequent memory read operation;
evaluating the associative memory result;
in response to the associative memory result corresponding to a not found condition, adding an entry to the set of associative memory entries;
in response to the associative memory result corresponding to a found condition, updating a statistics entry in a set of statistics based on the associative memory result; and
in response to determining a number of entries within the set of associative memory entries exceeds a threshold, identifying a position of an oldest entry in the set of associative memory entries and after said identifying the position, retrieving a first statistics value corresponding to the position from the set of statistics;
wherein the set of associative memory entries is maintained as a ring buffer. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. An apparatus comprising:
-
means for performing a lookup operation in an associative memory on a set of associative memory entries based on an item to generate an associative memory result after a subsequent memory read operation;
means for evaluating the associative memory result;
means for adding an entry to the set of associative memory entries in response to the associative memory result corresponding to a not found condition;
means for updating a statistics entry in a set of statistics based on the associative memory result in response to the associative memory result corresponding to a found condition; and
means for maintaining the set of associative memory entries as a ring buffer. - View Dependent Claims (20)
-
-
21. A method comprising:
-
programming an associative memory % with a set of permanent associative memory entries within a set of associative memory entries;
initializing or adding a set of permanent statistic entries within a set of statistic entries in a memory device;
performing a lookup operation in the associative memory on the set of associative memory entries based on an item to generate an associative memory result directly or after a subsequent memory read operation;
evaluating the associative memory result;
in response to the associative memory result corresponding to a not found condition;
adding an entry to a set of nonpermanent associative memory entries within the set of associative memory entries; and
initializing or adding a corresponding initial statistics value to a set of nonpermanent statistics within the set of statistic entries;
in response to the associative memory result corresponding to a found condition, updating a statistics entry in the set of statistics based on the associative memory result; and
in response to an expiration of a timer, retrieving a plurality of statistics values from the set of statistics entries;
wherein the set of nonpermanent associative memory entries is maintained as a ring buffer. - View Dependent Claims (22)
-
-
23. An apparatus comprising:
-
means for programming an associative memory with a set of permanent associative memory entries within a set of associative memory entries;
means for initializing a set of permanent statistic entries within a set of statistic entries in a memory device;
means for performing a lookup operation in the associative memory on the set of associative memory entries based on an item to generate an associative memory result directly or after a subsequent memory read operation;
means for evaluating the associative memory result;
means for adding an entry to a set of nonpermanent associative memory entries within the set of associative memory entries in response to the associative memory result corresponding to a not found condition;
means for updating a statistics entry in the set of statistics based on the associative memory result in response to the associative memory result corresponding to a found condition;
means for retrieving a plurality of statistics values from the set of statistics entries in response to an expiration of a timer; and
means for maintaining the set of nonpermanent associative memory entries as a ring buffer. - View Dependent Claims (24)
-
Specification