8320240

Rate Limiting and Minimum and Maximum Shaping in a Network Device

PublishedNovember 27, 2012
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A network device for scheduling packets in a plurality of queues, the network device comprising: a switch comprising: a plurality of metering modules, each of the metering modules being associated with a queue and comprising: a minimum threshold bucket module configured to indicate to the metering module whether a minimum bucket threshold is met based on comparing a minimum bucket count of the packets received by the associated queue to the minimum bucket threshold, the minimum bucket threshold being less than a minimum bucket high value and greater than a minimum bucket empty value for the minimum threshold bucket, the minimum bucket high value associated with the given queue determining a maximum burst size for the associated queue; and a maximum threshold bucket module configured to indicate to the metering module whether a maximum bucket threshold is met based on comparing a maximum bucket count of the packets received by the associated queue to the maximum bucket threshold; wherein each of the metering modules is configured to send, to a scheduler, a minimum bandwidth signal if the minimum bucket threshold is not met, an excess bandwidth signal if the minimum bucket threshold is met and the maximum bucket threshold is not met, and an idle signal if both the minimum bucket threshold is met and the maximum bucket threshold is met; and the scheduler configured to allocate bandwidth for each of the plurality of queues first to the queues which are associated with metering modules that sent the minimum bandwidth signal and second to the queues which are associated with metering modules that sent the excess bandwidth signal, and to not service queues which are associated with metering modules that sent the idle signal.

2

2. The network device according to claim 1 , wherein the minimum threshold bucket modules and maximum threshold bucket modules are configured to accept a number of tokens in proportion to a size of a packet being added to their associated queues.

3

3. The network device according to claim 1 , wherein the minimum threshold bucket modules and maximum threshold bucket modules are configured to determine how many tokens to release at predetermined time intervals based on whether all of the plurality of queues have met their respective minimum bucket threshold.

4

4. The network device according to claim 1 , wherein the scheduler is further configured to process latency sensitive traffic in the network device prior to processing latency insensitive traffic on a traffic burst basis.

5

5. The network device according to claim 1 , further comprising the plurality of queues, each of the plurality of queues being coupled to its associated metering module, minimum threshold bucket module, maximum threshold bucket module, and to the scheduler.

6

6. The network device according to claim 1 , wherein each of the minimum threshold bucket modules is configured to: add tokens to the minimum bucket count, up to the minimum bucket high value, when packets are sent from its associated queue; periodically remove a number of tokens from the minimum bucket count, down to the minimum bucket empty value, the number of tokens being equal to a minimum refresh count for its associated queue; and compare the minimum bucket count to the minimum bucket threshold.

7

7. The network device according to claim 1 , wherein each of the maximum threshold bucket modules is configured to: add tokens to the maximum bucket count, up to the maximum bucket threshold, when packets are sent from its associated queue; periodically remove a number of tokens from the maximum bucket count, the number of tokens being equal to a maximum refresh count for its associated queue; and compare the maximum bucket count to the maximum bucket threshold.

8

8. The network device according to claim 1 , wherein: each of the minimum threshold bucket modules is configured to: add tokens to the minimum bucket count, up to the minimum bucket high value, when packets are sent from its associated queue; periodically remove a number of tokens from the minimum bucket count, down to the minimum bucket empty value, the number of tokens being equal to a minimum refresh count for its associated queue; and compare the minimum bucket count to the minimum bucket threshold; and each of the maximum threshold bucket modules is configured to: add tokens to the maximum bucket count, up to the maximum bucket threshold, when packets are sent from its associated queue; periodically remove a number of tokens from the maximum bucket count, the number of tokens being equal to a maximum refresh count for its associated queue; and compare the maximum bucket count to the maximum bucket threshold.

9

9. The network device of claim 1 , wherein the metering modules are further configured to limit a rate at which an associated egress port sends the packets from the scheduler out of the network device.

10

10. The network device according to claim 1 , wherein: the queues are associated with different classes of service; and the switch is configured to use maximum bandwidth shaping to limit bandwidth allocated to a queue associated with a specific class of service.

11

11. The network device of claim 10 , wherein the scheduler is configured to enter a deficit round robin (DRR) mode, the DRR mode including: the minimum threshold bucket modules allowing the minimum bucket count to drop below the minimum bucket empty value of the minimum threshold bucket module; and the minimum threshold bucket modules for which the minimum bucket count dropped below the minimum bucket empty value subsequently receiving fewer credits added to their respective minimum bucket counts based on their minimum bucket counts dropping below their minimum bucket empty values.

12

12. The network device of claim 1 , wherein the scheduler is configured to enter a deficit round robin (DRR) mode, the DRR mode including: the minimum threshold bucket modules allowing the minimum bucket count to drop below the minimum bucket empty value of the minimum threshold bucket module; and the minimum threshold bucket modules for which the minimum bucket count dropped below the minimum bucket empty value subsequently receiving fewer credits added to their respective minimum bucket counts based on their minimum bucket counts dropping below their minimum bucket empty values.

13

13. The network device of claim 1 , wherein: the minimum threshold bucket is configured to update the minimum bucket count in response to the network device receiving a packet based on comparing a time of receiving the packet to a timestamp of a previously received packet; and the maximum threshold bucket is configured to update the maximum bucket count in response to the network device receiving the packet based on comparing the time of receiving the packet to the timestamp of the previously received packet.

14

14. The network device of claim 1 , further comprising a maximum rate metering module configured to compare a flow rate of a sum of all of the queues to a maximum bandwidth.

15

15. The network device of claim 14 , wherein the maximum rate metering module is further configured to mark packets sent by the switch as in profile or out of profile based on the comparison of the flow rate to the maximum bandwidth.

16

16. A method for scheduling packets in a plurality of queues, the method comprising: configuring a plurality of metering modules, each of the metering modules being associated with a queue and comprising: a minimum threshold bucket module configured to indicate to the metering module whether a minimum bucket threshold is met based on comparing a minimum bucket count of the packets received by the associated queue to the minimum bucket threshold, the minimum bucket threshold being less than a minimum bucket high value and greater than a minimum bucket empty value for the minimum threshold bucket, the minimum bucket high value associated with the given queue determining a maximum burst size for the associate queue; and a maximum threshold bucket module configured to indicate to the metering module whether a maximum bucket threshold is met based on comparing a maximum bucket count of the packets received by the associated queue to the maximum bucket threshold; and allocating bandwidth for each of the plurality of queues first to the queues which are associated with metering modules for which the minimum bucket threshold is not met, second to the queues which are associated with metering modules for which the minimum bucket threshold is met and the maximum bucket threshold is not met, and to not service queues which are associated with metering modules for which both the minimum bucket threshold is met and the maximum bucket threshold is met.

17

17. The method according to claim 16 , further comprising accepting, in at least one of the plurality of minimum threshold or maximum threshold bucket modules, a number of tokens in proportion to a size of a packet being added to its associated queue.

18

18. The method according to claim 16 , further comprising using, by at least one of the plurality of bucket modules, a predefined bandwidth to determine how many tokens to release at predetermined time intervals.

19

19. The method of claim 16 , further comprising: comparing a flow rate of a sum of all of the queues to a maximum bandwidth; and marking packets as in profile or out of profile based on the comparison of the flow rate to the maximum bandwidth.

20

20. A network device for processing network data comprising: configuring means for configuring a plurality of metering modules, each of the metering modules being associated with a queue and comprising: a minimum threshold bucket module configured to indicate to the metering module whether a minimum bucket threshold is met based on comparing a minimum bucket count of the packets received by the associated queue to the minimum bucket threshold, the minimum bucket threshold being less than a minimum bucket high value and greater than a minimum bucket empty value for the minimum threshold bucket, the minimum bucket high value associated with the given queue determining a maximum size burst for the associated queue; and maximum threshold bucket module configured to indicate to the metering module whether a maximum bucket threshold is met based on comparing a maximum bucket count of the packets received by the associated queue to the maximum bucket threshold; and allocating means for allocating bandwidth for each of the plurality of queues first to the queues which are associated with metering modules for which the minimum bucket threshold is not met, second to the queues which are associated with metering modules for which the minimum bucket threshold is met and the maximum bucket threshold is not met, and to not service queues which are associated with metering modules for which both the minimum bucket threshold is met and the maximum bucket threshold is met.

Patent Metadata

Filing Date

Unknown

Publication Date

November 27, 2012

Inventors

Bruce H. Kwan
Chien-Hsien Wu

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “RATE LIMITING AND MINIMUM AND MAXIMUM SHAPING IN A NETWORK DEVICE” (8320240). https://patentable.app/patents/8320240

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.