Hierarchical queue shaping

Information

  • Patent Application
  • 20070153697
  • Publication Number
    20070153697
  • Date Filed
    December 21, 2006
    18 years ago
  • Date Published
    July 05, 2007
    17 years ago
Abstract
A network device and method include token buckets, each token bucket associated with one of clients and virtual ports and configured to process information based on a predefined bandwidth and a strict priority/weighted deficit round robin. A maximum rate shaper module and a minimum rate meter module shape and meter whether any of the clients or virtual ports have exceeded a predefined threshold. A scheduler is configured to schedule services of the clients and to calculate a new bandwidth allocation for at least one of the clients or virtual ports when the at least one of the clients or virtual ports has exceeded the predefined threshold, the new bandwidth allocation replacing the predefined bandwidth and being proportional to the predefined bandwidth for each of the clients or virtual ports.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Further embodiments, details, advantages and modifications of the present invention will become apparent from the following detailed description of the preferred embodiments which is to be taken in conjunction with the accompanying drawings, in which:



FIG. 1 illustrates a network device in which an embodiment of the present invention may be implemented;



FIG. 2 illustrates a block diagram illustrating the communication using ports of the network device, according to an embodiment of the instant invention;



FIGS. 3
a and 3b illustrate memory structures to be used with the network device, with FIG. 3a illustrating the shared memory that is external to the network device and FIG. 3b illustrating the Cell Buffer Pool of the shared memory architecture;



FIG. 4 illustrates an ingress module VOQ structure, in accordance with an embodiment of the present invention



FIG. 5 illustrates a process of metering, shaping and scheduling of traffic in a network device, according to one embodiment of the present invention;



FIG. 6 illustrates a configuration at a client and virtual port granularity, in accordance with an embodiment of the present invention; and



FIGS. 7
a and 7b illustrate token bucket processes of metering, according to one embodiment of the present invention.


Claims
  • 1. A network device for scheduling packets, the network device comprising: virtual ports across multiple ports;clients across the virtual ports, wherein each client supports a number of class-of-services (COS);token buckets, each token bucket associated with one of the clients and virtual ports and configured to process information based on a predefined bandwidth and a strict priority/weighted deficit round robin;a maximum rate shaper module and a minimum rate meter module configured to shape and meter whether any of the clients or virtual ports have exceeded a predefined threshold; anda scheduler configured to schedule services of the clients and to calculate a new bandwidth allocation for at least one of the clients or virtual ports when the at least one of the clients or virtual ports has exceeded the predefined threshold, the new bandwidth allocation replacing the predefined bandwidth and being proportional to the predefined bandwidth for each of the clients or virtual ports.
  • 2. The network device as recited in claim 1, wherein the token buckets for each client further comprises: a minimum token bucket; anda maximum token bucket, wherein the strict priority and round robin are configured for minimum bandwidth allocation and the strict priority and the weighted deficit round robin are configured for excess bandwidth allocation.
  • 3. The network device as recited in claim 1, wherein the configuring of the token buckets for each virtual port further comprises: a minimum token bucket; anda maximum token bucket, wherein strict priority and round robin are configured for minimum bandwidth allocation and strict priority and weighted deficit round robin are configured for excess bandwidth allocation.
  • 4. The network device as recited in claim 1, wherein the scheduler classifies every client to be queued into a minimum group, when a minimum bandwidth is satisfied, a maximum group, when a maximum bandwidth is satisfied, and an excess group or idle group.
  • 5. The network device as recited in claim 1, wherein the scheduler continues servicing the client until the minimum bandwidth for that client is satisfied.
  • 6. The network device as recited in claim 1, further comprising: configuring a maximum rate shaper module and a minimum rate meter module setting a shaping and metering behaviour between each client and a scheduler to assure that each client has a minimum bandwidth allocated; andconfiguring a maximum rate shaper module between the scheduler and the virtual port associated with the clients.
  • 7. The network device as recited in claim 1, further comprising accepting, in at least one of the token buckets, a number of tokens in proportion to a size of a packet being added to an associated client.
  • 8. The network device as recited in claim 1, wherein at least one of the token buckets uses the predefined bandwidth to determine how many tokens to release at predetermined time intervals.
  • 9. The network device as recited in claim 1, wherein the scheduler compares a fill rate in at least one of the clients or virtual ports with the predefined threshold to determine whether the any of the clients or virtual ports has exceeded the predefined threshold.
  • 10. The network device as recited in claim 1, wherein the scheduler processes at least one of the clients in a relative weight field, wherein the relative weight field determines if the predefined bandwidth for each of the clients or virtual ports is a relative bandwidth guarantee or an absolute bandwidth guarantee.
  • 11. The network device as recited in claim 1, further comprising: an ingress module including a hierarchical scheduler used to manage flow control of traffic across a fabric; andan egress module configured to periodically transmit an end to end flow control state message back to the ingress module when congestion is detected at the egress module, wherein the end to end flow control state message enables the ingress module to modulate service of the specific queue in its hierarchical structure that is directing traffic to the egress module.
  • 12. The network device as recited in claim 11, wherein the ingress module includes a flow control state timeout mechanism which to guard against starvation.
  • 13. The network device as recited in claim 11, wherein an end to end flow control state may be also periodically transmitted from the egress module to the ingress module to refresh the flow control state for that egress module.
  • 14. The network device as recited in claim 1, wherein unicast queues are a function of class of service group, module, and port/virtual port.
  • 15. A method for scheduling packets, the method comprising: assigning virtual ports across multiple ports;assigning clients across the virtual ports, wherein each client supports a number of class-of-services (COS);configuring token buckets to process information in the clients and the virtual ports based on a predefined bandwidth and a strict priority/weighted deficit round robin;metering whether any of the clients or virtual ports have exceeded a predefined threshold; andcalculating a new bandwidth allocation for at least one of the clients or virtual ports when the at least one of the clients has exceeded the predefined threshold, the new bandwidth allocation replacing the predefined bandwidth and being proportional to the predefined bandwidth for each of the clients or virtual ports.
  • 16. The method as recited in claim 15, wherein the configuring of the token buckets for each client further comprises: configuring a minimum token bucket;configuring a maximum token bucket;configuring strict priority and round robin for minimum bandwidth allocation; andconfiguring strict priority and weighted deficit round robin for excess bandwidth allocation.
  • 17. The method as recited in claim 15, further comprising: configuring token buckets for each client and virtual ports based on a bandwidth and a strict priority/weighted deficit round robin;
  • 18. The method as recited in claim 15, wherein the configuring of the token buckets for each virtual port further comprises: configuring a minimum token bucket;configuring a maximum token bucket;configuring strict priority and round robin for minimum bandwidth allocation; andconfiguring strict priority and weighted deficit round robin for excess bandwidth allocation.
  • 19. The method as recited in claim 15, further comprising: classifying every client to be queued into a minimum group, when a minimum bandwidth is satisfied, a maximum group, when a maximum bandwidth is satisfied, and an excess group or idle group.
  • 20. The method as recited in claim 15, further comprising: continuing servicing the client until the minimum bandwidth for that client is satisfied.
  • 21. The method as recited in claim 15, further comprising: configuring a maximum rate shaper module and a minimum rate meter module setting a shaping and metering behaviour between each client and a scheduler to assure that each client has a minimum bandwidth allocated; andconfiguring a maximum rate shaper module between the scheduler and the virtual port associated with the clients.
  • 22. The method as recited in claim 15, further comprising accepting, in at least one of the token buckets, a number of tokens in proportion to a size of a packet being added to an associated client.
  • 23. The method as recited in claim 15, further comprising: using, by at least one of the token buckets, the predefined bandwidth to determine how many tokens to release at predetermined time intervals.
  • 24. The method as recited in claim 15, further comprising: comparing a fill rate in at least one of the clients or virtual ports with the predefined threshold to determine whether the any of the clients or virtual ports has exceeded the predefined threshold.
  • 25. The method as recited in claim 15, further comprising: processing at least one of the clients or virtual ports as recited in a relative weight field, wherein the relative weight field determines if the predefined bandwidth for each of the clients or virtual ports is a relative bandwidth guarantee or an absolute bandwidth guarantee.
  • 26. The method as recited in claim 15, wherein latency sensitive traffic in the network device is processed prior to processing latency insensitive traffic on a traffic burst basis.
  • 27. A network device for scheduling packets, the network device comprising: virtual ports across multiple ports;clients across the virtual ports, wherein each client means supports a number of class-of-services (COS);token bucket means, each token bucket means associated with one of the clients and virtual ports and for processing information based on a predefined bandwidth and a strict priority/weighted deficit round robin;maximum rate shaper means and a minimum rate meter means for shaping and metering whether any of the clients or virtual ports have exceeded a predefined threshold; andscheduling means for scheduling services of the clients and calculating a new bandwidth allocation for at least one of the clients or virtual ports when the at least one of the clients or virtual ports has exceeded the predefined threshold, the new bandwidth allocation replacing the predefined bandwidth and being proportional to the predefined bandwidth for each of the clients or virtual ports.
Provisional Applications (1)
Number Date Country
60755854 Jan 2006 US