IP Library Granted Patent US 8,351,332
Granted Patent B2
US 8,351,332 · App. 13/371,165 · Granted Jan 8, 2013

WRR scheduler configuration for optimized latency, buffer utilization

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,351,332
App. No.
13/371,165
Granted
Jan 8, 2013
Kind
B2
Abstract

A method includes receiving network information for calculating weighted round-robin (WRR) weights, calculating WRR weights associated with queues based on the network information, and determining whether a highest common factor (HCF) exists in relation to the calculated WRR weights. The method further includes reducing the calculated WRR weights in accordance with the HCF, when it is determined that the HCF exists, and performing a WRR scheduling of packets, stored in the queues, based on the reduced WRR weights.

Claims (79)

1. A method comprising:

determining, by a device, scheduling weights associated with scheduling access to a plurality of memory queues;

calculating, by the device, a factor related to the determined scheduling weights;

reducing, by the device, the determined scheduling weights based on the factor;

estimating, by the device, an error associated with scheduling access to the plurality of memory queues based on the reduced scheduling weights;

determining, by the device, whether the estimated error is less than or equal to an error threshold; and

scheduling, by the device, access to the plurality of memory queues,

the scheduling being based on the reduced scheduling weights when the estimated error is less than or equal to the error threshold, and

the scheduling being based on the determined scheduling weights when the estimated error is greater than the error threshold.

2. The method of claim 1 , where determining the factor includes:

determining whether an actual factor can be calculated for the determined scheduling weights; and

when the actual factor cannot be calculated for the determined scheduling weights, determining an approximate factor for the determined scheduling weights.

3. The method of claim 2 , where determining the approximate factor includes:

identifying, based on the determined scheduling weights, a plurality of possible factors;

estimating errors associated reducing the determined scheduling weights by the plurality of possible factors;

identifying one or more possible factors, of the plurality of possible factors, that are associated with estimated errors that satisfy the error threshold; and

selecting, as the approximate factor, one of the one or more possible factors.

4. The method of claim 3 , where selecting the one of the one or more possible factors includes:

selecting, as the approximate factor, a largest one of the one or more possible factors.

5. The method of claim 1 , where scheduling the access to the plurality of memory queues includes:

scheduling the access to the plurality of memory queues based on weighted round-robin (WRR) access.

6. The method of claim 1 , where determining the scheduling weights includes:

determining the scheduling weights based on at least one of an available bandwidth or a type of network traffic.

7. A system comprising:

a device to:

calculate scheduling weights associated with, respectively, a plurality of memory queues;

determine a factor for the scheduling weights;

reduce the scheduling weights based on the factor;

estimate a scheduling error associated with the reduced scheduling weights associated with the factor;

determine whether the estimated scheduling error is less than or equal to an error threshold; and

schedule access to the plurality of memory queues,

the one or more device, when scheduling the access to the plurality of memory queues, being further to:

schedule access to the plurality of memory queues based on the reduced scheduling weights when the estimated scheduling error is less than or equal to the error threshold, and

schedule access to the plurality of memory queues based on the calculated scheduling weights when the estimated scheduling error is greater than the error threshold.

8. The system of claim 7 , where the device includes:

a switch, or

a router.

9. The system of claim 7 , where a first memory queue, of the plurality of memory queues, is associated with a first weight that is larger than a second weight associated with a second memory queue, of the plurality of memory queues, and

where the device, when scheduling the access to the plurality of memory queues, is further to:

schedule access to the first memory queue to occur prior to access to the second memory queue.

10. The system of claim 9 , where the device, when scheduling the access to the plurality of memory queues, is further to:

schedule the access to the to the plurality of memory queues based on a weighted round-robin (WRR) scheme.

11. The system of claim 7 , where the device, when determining the factor, is further to:

determine that an actual factor does not exist for the scheduling weights; and

calculate, as the factor, an approximate factor in response to determining that the actual factor does not exist.

12. The system of claim 11 , where the device, when calculating the approximate factor, is further to:

identify, based on the determined scheduling weights, a plurality of possible factors;

estimate respective errors associated with reducing the determined scheduling weights by the plurality of possible factors;

identify one or more possible factors, of the plurality of possible factors, that are associated with estimated errors that satisfy the error threshold; and

select, as the approximate factor, one of the one or more possible factors.

13. The system of claim 12 , where the device, when selecting the one of the one or more possible factors, is further to:

select, as the approximate factor, a largest one of the one or more possible factors.

14. The system of claim 7 , where the device, when calculating the scheduling weights, is further to:

calculate the scheduling weights based on at least one of available bandwidth or type of network traffic associated with the plurality of memory queues.

15. The system of claim 7 , where the device is further to:

acquire, during the scheduled access, data stored in the plurality of memory queues; and

process the acquired data for transmission from the device.

16. A non-transitory computer readable medium comprising:

one or more instructions which, when executed by a processor, cause the processor to identify at least one of available bandwidth or type of network traffic associated with a plurality of memory queues;

one or more instructions which, when executed by the processor, cause the processor to calculate scheduling weights associated with, respectively, the plurality of memory queues;

one or more instructions which, when executed by the processor, cause the processor to determine a factor for the scheduling weights;

one or more instructions which, when executed by the processor, cause the processor to reduce the scheduling weights based on the factor;

one or more instructions which, when executed by the processor, cause the processor to estimate a scheduling error associated with the reduced scheduling weights;

one or more instructions which, when executed by the processor, cause the processor to determine whether the estimated scheduling error is less than or equal to an error threshold; and

one or more instructions which, when executed by the processor, cause the processor to schedule access to the plurality of memory queues, the one or more one or more instructions to schedule the access to the plurality of memory queues including:

one or more instructions to schedule access to the plurality of memory queues based on the reduced scheduling weights when the estimated scheduling error is less than or equal to the error threshold, and

one or more instructions to schedule access to the plurality of memory queues based on the calculated scheduling weights when the estimated scheduling error is greater than the error threshold.

17. The non-transitory computer readable medium of claim 16 , where the one or more instructions to schedule the access to the plurality of memory queues further include:

one or more instructions to schedule the access to the plurality of memory queues based on a weighted round-robin (WRR) scheme.

18. The non-transitory computer readable medium of claim 16 , where the one or more instructions to determine the factor further include:

one or more instructions to identify, based on the determined scheduling weights, a plurality of possible factors;

one or more instructions to estimate respective errors associated with reducing the determined scheduling weights by the plurality of possible factors;

one or more instructions to identify one or more possible factors, of the plurality of possible factors, that are associated with estimated errors that satisfy the error threshold; and

one or more instructions to select, as the factor, one of the one or more possible factors.

19. The non-transitory computer readable medium of claim 18 , where the one or more instructions to select the one of the one or more possible factors further include:

one or more instructions to select, as the factor, a largest one of the one or more possible factors.

20. The non-transitory computer readable medium of claim 16 , further comprising:

one or more instructions to acquire, during on the scheduled access, data stored in the plurality of memory queues; and

one or more instructions to process the acquired data for transmission.

Assignments (1)
NUNC PRO TUNC ASSIGNMENT Recorded May 6, 2026
From: JUNIPER NETWORKS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 075513/0034 →