| US 7,453,804 B1 | ||
| Aggregate network resource utilization control scheme | ||
| Azeem Feroz, Cupertino, Calif. (US); Wei-Lung Lai, Cupertino, Calif. (US); Roopesh R. Varier, Sunnyvale, Calif. (US); James J. Stabile, Los Altos, Calif. (US); and Jon Eric Okholm, Monte Sereno, Calif. (US) | ||
| Assigned to Packeteer, Inc., Cupertino, Calif. (US) | ||
| Filed on Feb. 08, 2005, as Appl. No. 11/53,596. | ||
| Int. Cl. G01R 31/08 (2006.01); H04L 12/28 (2006.01); H04J 3/16 (2006.01) | ||
| U.S. Cl. 370—230 [370/229; 370/412; 370/468] | 11 Claims |

| 1. In a network device including a flow control module operative to allocate network bandwidth into a plurality of partitions,
wherein each partition in the plurality of partitions includes an aggregate bandwidth allocation, a method directed to an
aggregate bandwidth utilization control scheme, the method comprising
receiving a packet;
associating the packet with a data flow;
measuring a data rate for the data flow;
identifying a partition for the data flow, wherein the partition includes an aggregate bandwidth allocation, and wherein each
partition has associated therewith a low priority partition queue and a high priority partition queue;
buffering the packet in a flow queue corresponding to the data flow;
computing a per-flow fair share bandwidth allocation based on the number of active data flows associated with the partition
and the aggregate bandwidth allocation;
determining a per-flow target rate for the data flow based on the per-flow fair share bandwidth allocation and the measured
data rate;
pushing an identifier for the flow queue in a partition queue corresponding to the identified partition, wherein the pushing
an identifier comprises pushing the identifier for the flow queue on the high priority partition queue associated with the
identified partition if the measured data rate is less than the per-flow fair share bandwidth allocation, else, pushing the
identifier for the flow queue on the low priority partition queue associated with the identified partition;
enforcing the target rate on the data flow; and
passing the packet to the flow control module, wherein the flow control module is operative to enforce the aggregate bandwidth
allocation associated with the partition, and prioritize, relative to a given partition, packets of data flows corresponding
to high priority partition queues over low priority partition queues.
|