Systems and methods for selectively performing explicit congestion notification
First Claim
Patent Images
1. A system for providing congestion control, comprising:
- a plurality of queues to temporarily store data, a value being associated with each of the queues, each of the values relating to an amount of memory associated with the queue; and
a drop engine to;
compare the value associated with a particular one of the queues to first and second programmable thresholds,perform selective explicit congestion notification on data in the particular queue based on a first drop probability when the value is greater than the first threshold but less than or equal to the second threshold, andperform selective dropping of the data in the particular queue based on a second drop probability when the value is greater than the second threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
A system provides congestion control and includes multiple queues that temporarily store data and a drop engine. The system associates a value with each of the queues, where each of the values relates to an amount of memory associated with the queue. The drop engine compares the value associated with a particular one of the queues to one or more programmable thresholds and selectively performs explicit congestion notification or packet dropping on data in the particular queue based on a result of the comparison.
-
Citations
40 Claims
-
1. A system for providing congestion control, comprising:
-
a plurality of queues to temporarily store data, a value being associated with each of the queues, each of the values relating to an amount of memory associated with the queue; and a drop engine to; compare the value associated with a particular one of the queues to first and second programmable thresholds, perform selective explicit congestion notification on data in the particular queue based on a first drop probability when the value is greater than the first threshold but less than or equal to the second threshold, and perform selective dropping of the data in the particular queue based on a second drop probability when the value is greater than the second threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for providing congestion control, comprising:
-
temporarily storing data in a plurality of queues; associating a value with each of the queues, each of the values relating to an amount of memory associated with the queue; comparing the value associated with a particular one of the queues to first and second programmable thresholds; performing no explicit congestion notification and no dropping of data in the particular queue when the value is less than or equal to the first threshold; selectively performing explicit congestion notification on data in the particular queue when the value is greater than the first threshold but less than or equal to the second threshold; and selectively performing dropping of data in the particular queue when the value is greater than the second threshold. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A network device, comprising:
-
a switching fabric; a first processor to; receive data from a network, and transmit data to the network; a second processor to; receive data from the switching fabric, and transmit data to the switching fabric; and a memory subsystem to facilitate communication between the first processor and the second processor, the memory subsystem comprising; a plurality of queues for temporarily storing the data received by the first and second processors, a value being associated with each of the queues, each of the values relating to an amount of memory associated with the queue, a dequeue engine configured to dequeue data from the queues, and a drop engine to; compare the value associated with a particular one of the queues to first and second programmable thresholds, perform no explicit congestion notification and no dropping of data in the particular queue when the value is less than or equal to the first threshold, selectively perform explicit congestion notification on data in the particular queue when the value is greater than the first threshold but less than or equal to the second threshold, and selectively drop data in the particular queue when the value is greater than the second threshold.
-
-
27. A method comprising:
-
determining an amount of memory associated with one of a plurality of queues; generating a value based on the amount of memory associated with the queue; comparing the value to first and second programmable thresholds; performing no explicit congestion notification and no dropping of data in the queue when the value is less than or equal to the first threshold; performing selective explicit congestion notification on data in the queue when the value is greater than the first programmable threshold but less than or equal to the second programmable threshold; and selectively dropping data from the queue when the value is greater than the second programmable threshold. - View Dependent Claims (28, 29, 30, 31, 32)
-
-
33. A device for performing congestion control, comprising:
-
a plurality of queues to temporarily store data; and a drop engine to; determine an amount of memory associated with a first one of the queues, generate a value based on the amount of memory associated with the first queue, compare the value to first and second programmable thresholds, perform no explicit congestion notification and no packet dropping on the data in the first queue when the value is less than or equal to the first threshold, perform selective explicit congestion notification on the data in the first queue when the value is greater than the first threshold but less than or equal to the second threshold, and selectively drop the data in the first queue when the value is greater than the second threshold. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
-
Specification