WO2001078420A1 - Method and apparatus for distribution of bandwidth in a switch - Google Patents

Method and apparatus for distribution of bandwidth in a switch Download PDF

Info

Publication number
WO2001078420A1
WO2001078420A1 PCT/SE2001/000733 SE0100733W WO0178420A1 WO 2001078420 A1 WO2001078420 A1 WO 2001078420A1 SE 0100733 W SE0100733 W SE 0100733W WO 0178420 A1 WO0178420 A1 WO 0178420A1
Authority
WO
WIPO (PCT)
Prior art keywords
traffic class
bandwidth
packet
counter
scheduling according
Prior art date
Application number
PCT/SE2001/000733
Other languages
French (fr)
Inventor
Ulf Ahlfors
Anders Fyhn
Peter Tufvesson
Original Assignee
Switchcore Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Switchcore Ab filed Critical Switchcore Ab
Priority to JP2001575740A priority Critical patent/JP2003530792A/en
Priority to EP01918130A priority patent/EP1277357A1/en
Priority to IL15214901A priority patent/IL152149A0/en
Priority to AU4499601A priority patent/AU4499601A/en
Priority to AU2001244996A priority patent/AU2001244996B2/en
Priority to CA002406074A priority patent/CA2406074A1/en
Publication of WO2001078420A1 publication Critical patent/WO2001078420A1/en
Priority to NO20024882A priority patent/NO20024882L/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/64Distributing or queueing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1302Relay switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1304Coordinate switches, crossbar, 4/2 with relays, coupling field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13056Routines, finite state machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13141Hunting for free outlet, circuit or channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13332Broadband, CATV, dynamic bandwidth allocation

Definitions

  • the present invention relates to a method and an apparatus for distribution of bandwidth in a switch or router. More particularly, the invention relates to a scheduler and an associated algorithm for distributing bandwidth over data traffic directed to output ports and received in various traffic classes and flows.
  • the bandwidth scheduler may be located before the output queues leading to early discarding of packets and efficient use of output buffer memory.
  • the algorithm includes logical rules operating on counters and variables recording the accepted traffic to implement the bandwidth distribution. The algorithm enables weighted distribution and short term as well as lone term fairness.
  • One object of the present invention is to split the scheduler is into two parts, a bandwidth scheduler and a latency scheduler.
  • Bandwidth scheduling is performed before packets arrive in the output queues. Packets eligible for dropping are pro- actively blocked. Thus, it is no longer necessary to differentiate flows and/or traffic flows in order to allocate bandwidth and the output queues can be used solely for latency priorities.
  • the bandwidth scheduler is located before output queues, and the method comprises: receiving a stream of data from the switching fabric; subjecting the stream to a decision making algorithm in the bandwidth scheduler resulting in that the stream is forwarded or interrupted (accepted or rejected).
  • the stream of data includes identifiable data packets and the decision making algorithm in the bandwidth scheduler results in that the data packet is accepted or rejected.
  • fig 1 is a block diagram of a prior art scheduler
  • fig 2 is a block diagram of a split scheduler architecture according to the present invention
  • fig 3 is a diagram of bandwidth distribution in accordance with the prior art Max-Min algorithm
  • fig 4 is a diagram of accepted bandwidth using the backlogging and charity counters according to the present invention
  • fig 5 is a diagram of the backlogging counter associated with figure 4.
  • fig 6 is a diagram of experienced bandwidth associated with figure 4.
  • fig 7 is a diagram of a hierarchical structure of traffic at different levels.
  • FIG 1 the prior art architecture with a combined latency and bandwidth scheduler is shown.
  • Traffic is switched by a switching fabric and distributed on ports which may have a number of queues each.
  • the scheduler is located after the output queues. Examples of this kind of scheduler are Round Robin, Weighted Round Robin and Weighted Fair Queuing.
  • the queues are used to separate different flows and/or traffic classes so that the scheduler can differentiate them.
  • This type of architecture uses common techniques like tail-drop or push-out to drop packets.
  • FIG 2 the scheduler architecture according to the present invention is shown.
  • the scheduler is split into two parts, a bandwidth scheduler and a latency scheduler.
  • Bandwidth scheduling is performed before packets arrive in the output queues. Packets eligible for dropping are pro-actively blocked. Thus, it is no longer necessary to differentiate flows and/or traffic flows in order to allocate bandwidth and the output queues can be used solely for latency priorities.
  • bandwidth is distributed much earlier, resulting in smaller buffer requirements and smaller buffer usage fluctuations.
  • the algorithm is totally independent of the number of output queues per port, while algorithms like Weighted Round Robin and Weighted Fair Queuing need as many queues as possible.
  • Any latency scheduler can work together with the bandwidth scheduler according to the present invention and strict priority is proposed.
  • Another aspect of the present invention is the bandwidth scheduler algorithm as such.
  • the algorithm aims at a fair distribution of the bandwidth between traffic classes and flows at each port.
  • the algorithm takes into account many factors, such as the bandwidth demand of each flow, and short term and long term fairness as will be described more in detail below.
  • the algorithm as such is general and may in principle be located before or after the output ports.
  • a fair bandwidth distribution can be accomplished in many different ways. Also fairness has different definitions and could be measured in various ways. Fairness could be defined as distributing a bandwidth equal to the wanted bandwidth divided by the sum of the wanted bandwidth. This can be accomplished by several Round Robin schemes. However, in the present invention the Max-Min algorithm is preferred. As the name indicates, this algorithm maximizes the minimum flow. This is considered the fairest algorithm, if all flows can benefit equally to increased bandwidths. The Max-Min algorithm is illustrated in figure 3. If the basic concept is that equal bandwidth is equal utility, then it is most fair to find a limit / were all flows that are offering less than / experience no losses. Flows that are offering more traffic only get bandwidth equal to /, no matter how much bandwidth they are offering.
  • a fair share is defined for all flows. Since the fair share is not used by all flows, a spare bandwidth remains after fair share allocation. This spare bandwidth is distributed on flows offering more traffic than the fair share, up to the limit /. Flows offering more traffic than the limit / have this part of the traffic blocked.
  • the present invention proposes a further extension of the Max-Min algorithm:
  • Each flow is associated with a weight such that the bandwidth is distributed in relation to the weight of each flow.
  • Preferably, each traffic class has a weight and the flows within a traffic class are treated equally.
  • Second, some flows can be guaranteed bandwidth. In other words, no data packets are lost until the flow exceeds the guaranteed bandwidth limit.
  • Third, some flows can be restricted to certain bandwidth maximum. Under no circumstances should a maximized flow get more bandwidth than its limit, even if the line will be left under-utilized.
  • a short term fairness is introduced between flows. If a flow is bursty, i.e. more packets are sent than the accepted bandwidth, this should be accepted for a short period of time to make the scheduling flexible. The other flows will be compensated in the future.
  • the bandwidth scheduler generally receives a stream of data.
  • the stream may be organized into cells or data packets according to different protocols, such as TCP (Transport Control Protocol) and UDP (User Datagram Protocol).
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • the term data packet and similar in this application is intended to encompass any kind of data entity. It is also practical to use the term flow which can have different meanings
  • SUBSTiTU l E SHhE ⁇ (HULE 26) under different circumstances. If e.g. TCP/IP is used the flow may be an application flow (address and port on both source and destination) or a host flow (only address of source and destination). It is assumed that each flow may be classified with regard to its identity with respect to the following categories. The traffic is distributed on the respective ports. This is straightforward but usually the operator puts a limit on the maximum accepted bandwidth per port.
  • an application flow is the smallest unit treated by the scheduler.
  • the invention proposes to group application flows together by means of a hash function into a set of hashed groups which in this application by definition will be referred to as flow groups.
  • the hashing function is stationary and deterministic in a way that all packets belonging to one flow always must be mapped into the same flow group. If flow groups are used, the invention does not distinguish between the flows within the flow group.
  • the physical implementation of the invention resides in a program stored in the scheduler either before or after the output queues.
  • the program contains the algorithm defining logic rules operating on constants, configuration parameters and various variables and counters.
  • the incoming data stream is stored in a buffer while the algorithm operates on some part of the data stream, for instance headers of individual data packets.
  • the extracted information or header is processed through the algorithm and the result is that the data stream is forwarded or interrupted or, in case of a data packet, the packet is accepted or rejected.
  • Various counters keep track of the accepted traffic for each traffic class and flow group. Also, the variables and counters are updated at regular intervals. The process is described in further details below, with reference to the various parts of the algorithm.
  • each port receives its respective part of the data stream.
  • the scheduler is configured to limit the amount of accepted bandwidth per port by means of a configuration parameter B WP max (maximum bandwidth per port).
  • B WP max maximum bandwidth per port.
  • a virtual queue is implemented.
  • a counter VQLP virtual queue length of the port
  • the limit is maintained automatically. If the virtual queue grows too long (VQLP > constant), packets will be rejected.
  • each port also usually accept traffic in various traffic classes.
  • the present invention involves a further extension of the Max-Min algorithm with the additions mentioned above.
  • the additions operate in parallel and independently of one another. Not all the additions have to be implemented but may be combined in various ways.
  • weights are associated with each traffic class.
  • a configuration parameter WTC weight traffic class
  • WTC weight traffic class
  • the respective counters are increased in a weighted manner, so that the algorithm automatically prioritizes certain traffic classes.
  • the counter TC is increased with the packet length multiplied by the weight WTC when the traffic class accepts a packet.
  • the weight function may be disabled by setting all weights WTC to unity (1).
  • the traffic class can use the charity function to force the packet to be accepted. Then, the charity counter CH of a port is decreased with the packet length multiplied with the weight of the respective traffic class (or underlying level): -packet length x WTC (-packet length x WAL). Similarly, for an added level the
  • FIG. 4 is a first diagram showing the total accepted bandwidth and figure 5 is a diagram showing the backlogging counters for two flows A and B. The backlogging counter is increased every time a packet is accepted, such as shown in figure 4.
  • the backlogging counter is limited to a fixed value, e.g. ⁇ 128 kB. If one backlogging counter for a flow reaches the upper limit, all the counters belonging to this port are decreased in order to maintain the internal difference. If one backlogging counter for a flow reaches the lower limit, this counter remains at the lower limit (but the other counters are not affected). This way only the near past is remembered. Hence the term short term fairness. Now we have two variables
  • class H If a class offers more than its maximum bandwidth it is not accepted (class H).
  • B min (offered bandwidth, BWTC max , BWTC m i n + WTC / ⁇ WTC x BW spare )
  • the method and apparatus according to the invention may be extended to more levels. Any number of levels may be added. An example is shown in figure 7.
  • a physical connection is often shared by several users.
  • the connection may be an overseas cable or link with a number of ports.
  • One port may e.g. be leased to one or several telecommunication operators at Level 1 of which one is shown. Only one instance is shown at each level. In turn, this operator may have a number of customers, each to be provided with a specific share of the traffic. These are located at Level 2.
  • the customer may in turn want to control the traffic by prioritising certain users or subscribers or the like. This is done at Level 3. Below Level 3, the ordinary levels of traffic class, flow group and application flows may be as before.
  • the added levels are inserted above the traffic class level.
  • An example with tables listing the configuration parameters and the respective counters and variables is set forth below with one added level. It will be appreciated that the port interfaces with the added level in the same way as with the traffic class as described above. Of course, the counters and variables have to be replaced with the corresponding counters and variables of the added level.
  • the traffic class interfaces upward to the added level as with the port as described previously.
  • the counters and variables have the same name as before, but the absolute values have will have to be changed to take the added level into consideration since in fact other sets of traffic classes are located in parallel at the same level. The same applies to the flow group level and flow level.
  • BWAL max maximum bandwidth per added level BWAL min minimum bandwidth per added level WAL weight per added level
  • BWTC max maximum bandwidth per traffic class BWTC mm minimum bandwidth per traffic class WTC weight per traffic class
  • VQLAL virtual queue length per added level

Abstract

The invention relates to a method and an apparatus for distribution of bandwidth in a switch or router. More particularly, the invention relates to a scheduler and an associated algorithm for distributing bandwidth over data traffic directed to output ports and received in various traffic classes and flows. The switch comprises a switching fabric. Preferably, the bandwidth scheduler is located before output queues, and the method comprises: receiving a stream of data from the switching fabric; subjecting the stream to a decision making algorithm in the bandwidth scheduler resulting in that the stream is forwarded or interrupted (accepted or rejected). Preferably, the stream of data includes identifiable data packets and the decision making algorithm in the bandwidth scheduler results in that the data packet is accepted or rejected. The bandwidth scheduler may be located before the output queues leading to early discarding of packets and efficient use of output buffer memory. The algorithm includes logical rules operating on counters and variables recording the accepted traffic to implement the bandwidth distribution. The algorithm enables weighted distribution and short term as well as long term fairness.

Description

METHOD AND APPARATUS FOR DISTRIBUTION OF BANDWIDTH IN A SWITCH
Field of the invention
The present invention relates to a method and an apparatus for distribution of bandwidth in a switch or router. More particularly, the invention relates to a scheduler and an associated algorithm for distributing bandwidth over data traffic directed to output ports and received in various traffic classes and flows. The bandwidth scheduler may be located before the output queues leading to early discarding of packets and efficient use of output buffer memory. The algorithm includes logical rules operating on counters and variables recording the accepted traffic to implement the bandwidth distribution. The algorithm enables weighted distribution and short term as well as lone term fairness.
State of the art
The paper Andras Racz, Gabor Fodor, Zoltan Turanyi: Weighted Fair Early Packet Discard at an ATM Switch Output Port, 0-7803-55420-6/99 1999 IEEE discloses similar ideas on fairness and bandwidth utilisation in an ATM switch. A predefined weighted share is associated with a data stream. An algorithm attempts to provide this share of the bandwidth for the streams in the long time average. However, the paper is silent on the division of the scheduler in bandwidth and latency scheduling and also on many other aspects of the present invention.
One object of the present invention is to split the scheduler is into two parts, a bandwidth scheduler and a latency scheduler. Bandwidth scheduling is performed before packets arrive in the output queues. Packets eligible for dropping are pro- actively blocked. Thus, it is no longer necessary to differentiate flows and/or traffic flows in order to allocate bandwidth and the output queues can be used solely for latency priorities.
Summary of the invention
These and other objects of the invention are achieved by the present invention which provides a method and an apparatus for bandwidth scheduling in a switch comprising a switching fabric. In accordance with a first embodiment the bandwidth scheduler is located before output queues, and the method comprises: receiving a stream of data from the switching fabric; subjecting the stream to a decision making algorithm in the bandwidth scheduler resulting in that the stream is forwarded or interrupted (accepted or rejected). Preferably, the stream of data includes identifiable data packets and the decision making algorithm in the bandwidth scheduler results in that the data packet is accepted or rejected.
In accordance with further embodiments, a number of logic rules and operations are run through including: a limit (BWPmax) is set on the maximum accepted bandwidth per port, a virtual queue is associated with each port, and a flag is set in dependence of the port queue length; a limit (BWTCmax) is set on the maximum accepted bandwidth per traffic class, a virtual queue is associated with each traffic class, and a flag is set in dependence of the traffic class queue length; the bandwidth is distributed in accordance with the Max-Min algorithm; each traffic class is guaranteed a bandwidth up to a limit (BWTCmιn); a weight (WTC) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes; for each traffic class, a backlogging counter (BL) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class; if one traffic class is particularly aggressive or active, it gives up a part of its accepted bandwidth.
In accordance with another embodiment the bandwidth scheduler is located after output queues. One advantage of the present invention is that bandwidth is distributed much earlier, resulting in smaller buffer requirements and smaller buffer usage fluctuations. Also, the algorithm is totally independent of the number of output queues per port, while algorithms like Weighted Round Robin and Weighted Fair Queuing need as many queues as possible.
Brief description of the drawings
The invention will be described below with reference to the accompanying drawings, in which: fig 1 is a block diagram of a prior art scheduler, fig 2 is a block diagram of a split scheduler architecture according to the present invention, fig 3 is a diagram of bandwidth distribution in accordance with the prior art Max-Min algorithm, fig 4 is a diagram of accepted bandwidth using the backlogging and charity counters according to the present invention, fig 5 is a diagram of the backlogging counter associated with figure 4. fig 6 is a diagram of experienced bandwidth associated with figure 4. and fig 7 is a diagram of a hierarchical structure of traffic at different levels. Detailed description of preferred embodiments
Generally, the task of a scheduler is to forward or discard traffic received from a switching fabric to output ports and respective output links. The concept of Quality of Service has been introduced to define the quality of the operation of the switch. Four different aspects of Quality of Service may be studied. First is latency, the delay the flow is experiencing through the device. Second there is jitter, or latency variations. Third there is bandwidth distribution and fourth is loss probability. The present invention is mainly related to bandwidth distribution.
In figure 1, the prior art architecture with a combined latency and bandwidth scheduler is shown. Traffic is switched by a switching fabric and distributed on ports which may have a number of queues each. The scheduler is located after the output queues. Examples of this kind of scheduler are Round Robin, Weighted Round Robin and Weighted Fair Queuing. Here the queues are used to separate different flows and/or traffic classes so that the scheduler can differentiate them. This type of architecture uses common techniques like tail-drop or push-out to drop packets.
In figure 2 the scheduler architecture according to the present invention is shown. The main difference is that the scheduler is split into two parts, a bandwidth scheduler and a latency scheduler. Bandwidth scheduling is performed before packets arrive in the output queues. Packets eligible for dropping are pro-actively blocked. Thus, it is no longer necessary to differentiate flows and/or traffic flows in order to allocate bandwidth and the output queues can be used solely for latency priorities. One advantage is that bandwidth is distributed much earlier, resulting in smaller buffer requirements and smaller buffer usage fluctuations. Also, the algorithm is totally independent of the number of output queues per port, while algorithms like Weighted Round Robin and Weighted Fair Queuing need as many queues as possible.
Any latency scheduler can work together with the bandwidth scheduler according to the present invention and strict priority is proposed. Another aspect of the present invention is the bandwidth scheduler algorithm as such. The algorithm aims at a fair distribution of the bandwidth between traffic classes and flows at each port. The algorithm takes into account many factors, such as the bandwidth demand of each flow, and short term and long term fairness as will be described more in detail below. The algorithm as such is general and may in principle be located before or after the output ports.
A fair bandwidth distribution can be accomplished in many different ways. Also fairness has different definitions and could be measured in various ways. Fairness could be defined as distributing a bandwidth equal to the wanted bandwidth divided by the sum of the wanted bandwidth. This can be accomplished by several Round Robin schemes. However, in the present invention the Max-Min algorithm is preferred. As the name indicates, this algorithm maximizes the minimum flow. This is considered the fairest algorithm, if all flows can benefit equally to increased bandwidths. The Max-Min algorithm is illustrated in figure 3. If the basic concept is that equal bandwidth is equal utility, then it is most fair to find a limit / were all flows that are offering less than / experience no losses. Flows that are offering more traffic only get bandwidth equal to /, no matter how much bandwidth they are offering. As seen from the figure, a fair share is defined for all flows. Since the fair share is not used by all flows, a spare bandwidth remains after fair share allocation. This spare bandwidth is distributed on flows offering more traffic than the fair share, up to the limit /. Flows offering more traffic than the limit / have this part of the traffic blocked.
The present invention proposes a further extension of the Max-Min algorithm: First, all flows are not equal. Each flow is associated with a weight such that the bandwidth is distributed in relation to the weight of each flow. Preferably, each traffic class has a weight and the flows within a traffic class are treated equally. Second, some flows can be guaranteed bandwidth. In other words, no data packets are lost until the flow exceeds the guaranteed bandwidth limit. Third, some flows can be restricted to certain bandwidth maximum. Under no circumstances should a maximized flow get more bandwidth than its limit, even if the line will be left under-utilized.
Fourth, a short term fairness is introduced between flows. If a flow is bursty, i.e. more packets are sent than the accepted bandwidth, this should be accepted for a short period of time to make the scheduling flexible. The other flows will be compensated in the future.
Fifth, a long term fairness between flows is also introduced. If a flow is aggressive for a period it will be forced to give up some of its accepted bandwidth to the other flows as "charity". If a flow is silent for a time period, it will be compensated in the future by means of the accumulated charity, so that the flow is allocated more bandwidth than the competing flows. However, the time period should be limited and also the accumulated amount of compensation should be limited.
The implementation of the algorithm is described more in detail below. The bandwidth scheduler generally receives a stream of data. The stream may be organized into cells or data packets according to different protocols, such as TCP (Transport Control Protocol) and UDP (User Datagram Protocol). The term data packet and similar in this application is intended to encompass any kind of data entity. It is also practical to use the term flow which can have different meanings
SUBSTiTU l E SHhEΪ (HULE 26) under different circumstances. If e.g. TCP/IP is used the flow may be an application flow (address and port on both source and destination) or a host flow (only address of source and destination). It is assumed that each flow may be classified with regard to its identity with respect to the following categories. The traffic is distributed on the respective ports. This is straightforward but usually the operator puts a limit on the maximum accepted bandwidth per port.
Each port may accommodate a number of traffic classes. All flows are categorised into classes. A class is normally based upon some network protocols and/or network hosts, but as regards the present invention the classes can be based upon any criteria. The classes must be fully disjoint and the invention does not have to be enabled for all classes. All flows within a traffic class are equal. If this is undesirable, a traffic class needs to be split up into two or more classes.
In principle, an application flow is the smallest unit treated by the scheduler. However, since the number of application flows is very large and seems to be growing at a rapid rate, the invention proposes to group application flows together by means of a hash function into a set of hashed groups which in this application by definition will be referred to as flow groups. The hashing function is stationary and deterministic in a way that all packets belonging to one flow always must be mapped into the same flow group. If flow groups are used, the invention does not distinguish between the flows within the flow group.
The physical implementation of the invention resides in a program stored in the scheduler either before or after the output queues. The program contains the algorithm defining logic rules operating on constants, configuration parameters and various variables and counters. The incoming data stream is stored in a buffer while the algorithm operates on some part of the data stream, for instance headers of individual data packets. The extracted information or header is processed through the algorithm and the result is that the data stream is forwarded or interrupted or, in case of a data packet, the packet is accepted or rejected. Various counters keep track of the accepted traffic for each traffic class and flow group. Also, the variables and counters are updated at regular intervals. The process is described in further details below, with reference to the various parts of the algorithm.
A number of parameters and variables are used to implement the alogorithm. They are listed in the tables below showing the hierarchical order of the variables and the rules for increasing, decreasing as well as updating the variables.
SUBSTITUTE SHEET (FiULΞ 25) Configuration parameters
Figure imgf000007_0001
BWPmax maximum bandwidth per port
BWTCmax maximum bandwidth per traffic class
BWTC min minimum bandwidth per traffic class WTC weight per traffic class
Port counters and variables
Figure imgf000007_0002
VQLP virtual queue length per port TCPmax maximum traffic class variable per port BLPmax maximum backlogging variable per port CH charity counter per port
Traffic Class counters and variables
Figure imgf000007_0003
TC traffic class counter FGmax maximum flow group variable per traffic class BL backlogging counter per traffic class VQLTC virtual queue length per traffic class Flow Group counter
Figure imgf000008_0001
FG flow group counter
To illustrate the invention it is assumed that the data stream arrives in packets carrying information about flow identity. Each port receives its respective part of the data stream. The scheduler is configured to limit the amount of accepted bandwidth per port by means of a configuration parameter B WPmax (maximum bandwidth per port). To keep track of the accepted bandwidth for each port a virtual queue is implemented. In other words, a counter VQLP (virtual queue length of the port) is increased with the packet length when the port accepts a packet. By updating or refreshing the counter VQLP is each time unit by subtracting the configuration parameter BWPmax, the limit is maintained automatically. If the virtual queue grows too long (VQLP > constant), packets will be rejected. As mentioned above, each port also usually accept traffic in various traffic classes. Each traffic class has a virtual queue length counter TC to keep track of the accepted bandwidth in each traffic class. A variable TCPmax is set at a value equal to the maximum of the traffic class counters for the port in question, to keep a record of the traffic class counter having the highest value. The counter TC is increased with the packet length when the traffic class accepts a packet. Also, the counter TC is updated or refreshed each time unit by subtracting a configuration parameter BWTCmjn (see below). The fairness may be defined in various ways. In the present invention the fairness is computed either as a difference or a ratio. Thus, a traffic class with the difference TCPmax - TC < a constant, e.g. 128kB, is considered fair, while more busy classes are considered unfair. Alternatively, a traffic class with the ratio TC/TCPmax < a constant, e.g. 0.75, is considered fair, while more busy classes are considered unfair. If the traffic class is fair, an offered packet may be accepted. If the virtual queue grows too long (TC > constant), unfair packets will be rejected. For the most aggressive traffic class (TC = TCPmax) offered packets are rejected when the virtual queue is even shorter. In this way the counter TC assists in implementing the basic algorithm Max-Min for the traffic classes.
Also each flow group has a virtual queue counter FG keeping track of how many packets are accepted. Each traffic class has a variable FGmax which is set equal to the maximum value of the counters FG belonging to this traffic class. A flow group with the difference FGmax - FG < a constant, e.g. 128kB, is considered fair, while more busy flow groups are considered unfair. Alternatively, a flow group
SUβSflϊu i'E SHEET (RULE 26) with the ratio FG/FGmax < a constant, e.g. 0.75, is considered fair, while more busy flow groups are considered unfair. For the most aggressive flow group (FG = FGmax) offered packets are rejected when the virtual queue is even shorter. In this way the counter FG assists in implementing the basic algorithm Max-Min for the flow groups.
The present invention involves a further extension of the Max-Min algorithm with the additions mentioned above. The additions operate in parallel and independently of one another. Not all the additions have to be implemented but may be combined in various ways. To enable prioritizing of certain traffic classes over other, weights are associated with each traffic class. A configuration parameter WTC (weight traffic class) is set when initializing the scheduler. When packets are accepted the respective counters are increased in a weighted manner, so that the algorithm automatically prioritizes certain traffic classes. Thus, the counter TC is increased with the packet length multiplied by the weight WTC when the traffic class accepts a packet. Of course, the weight function may be disabled by setting all weights WTC to unity (1).
Each traffic class may be associated with a guaranteed bandwidth. A configuration parameter BWTCmjn (bandwidth traffic class minimum) is set when initializing the scheduler. If the traffic class in question offers bandwidth less than the guaranteed bandwidth, it will always be accepted. Of course, the total of the guaranteed bandwidth for all traffic classes must be less than or equal to the maximum bandwidth of the port BWPmax.
The counter TC is updated or refreshed each time unit by subtracting the configuration parameter BWTCmm multiplied by the weight WTC. This is to account both for the weight and guaranteed bandwidth. This subtraction results in that all traffic below BWTCmιn for this class will be accepted. If the counter TC grows larger than BWTCmjn the traffic will compete equally with the other flows. A maximum bandwidth may be associated with each traffic class. A configuration parameter BWTCmax (bandwidth traffic class maximum) is set when initializing the scheduler. This parameter limits the amount of accepted traffic in a traffic class, irrespective of existing spare capacity. Another virtual queue is associated with each traffic class by means of a counter VQLTC (virtual queue length per traffic class) counting the number of accepted packets. The counter VQLTC is updated or refreshed each time unit by subtracting the configuration parameter BWTCmax. Thus, the limit is maintained automatically. If the virtual queue grows too long (VQLTC > constant possibly plus a tolerance constant to allow for different packet sizes), packets will be rejected. To accommodate bursty traffic but still distribute bandwidth in a fair way seen over a short term a counter is introduced for each traffic class to keep a record of the amount of accepted traffic for one traffic class in relation to the other traffic classes belonging to the same port. The counters are called backlogging counters BL. Also. one variable BLPmax (backlogging port max) stores the maximum of the back- logging counters for the traffic classes of each port. A traffic class with the difference BLPmax - BL < a constant, e.g. 128kB, is considered fair, while more busy traffic classes are considered unfair. Alternatively, a traffic class with the ratio BL/BLPmax < a constant, e.g. 0.75, is considered fair, while more busy classes are considered unfair. The counter BL is increased with the packet length multiplied by the weight WTC when the traffic class accepts a packet. The counter BL is updated or refreshed each time unit by subtracting the configuration parameter BWTCmjn multiplied by the weight WTC. In this way the counter BL assists in implementing the basic algorithm Max-Min together with the counters TC and FG. This counter BL is associated with the concept of short term fairness, but the backlogging counter BL is also important for the weight function.
If a traffic class is idle for some time, the spare bandwidth is distributed among the active flows. When the idle flow becomes active again the flow is compensated by distributing more bandwidth to this flow. On the other hand, the now active class should not be allowed to monopolize the link in order to accomplish this. Instead this should be a slow process, given the quiet class a fraction more bandwidth until the flows are once again treated equally. On the other hand, if one traffic class is particularly aggressive or active, it should give up a part of its accepted bandwidth as "charity". Both these situations are associated with the concept of long term fairness. This feature is associated with a counter CH (charity) for each port (and added level, if any.) All levels under a port uses one and the same counter, and, in turn, all traffic classes under a level (port, if no added levels) uses one counter. When a packet is accepted in a traffic class having the maximum accepted bandwidth, in other words, the variable TC equals TCPmax, the packet may instead be discarded, if it is not unfair with regard to other criteria (depending on the queue length). Then, the counter CH is increased with a configurable fraction of the accepted packet length (+packet length x give factor). The other traffic class counters (TC and BL) are incremented as if the packet was accepted. On the other hand, when a packet is sent by one of the other traffic classes of which the counter TC ≠ TCPmax, and when the packet is decided to be rejected in accordance with the other logic rules, the traffic class can use the charity function to force the packet to be accepted. Then, the charity counter CH of a port is decreased with the packet length multiplied with the weight of the respective traffic class (or underlying level): -packet length x WTC (-packet length x WAL). Similarly, for an added level the
SUBSiirurE Shtcf (KULE 26) charity counter CHAL is decreased with the packet length multiplied with the weight of the respective traffic class: -packet length x WTC. Thus, value of the charity counter CH will vary and reflects if one traffic class (or underlying level) is much more aggressive than the others. If the traffic classes are more or less equal, then the charity counter should preferably decay slowly. Thus, the counter CH is updated or refreshed each time unit by multiplying with a decay factor, e.g. 15/16. Figure 4 is a first diagram showing the total accepted bandwidth and figure 5 is a diagram showing the backlogging counters for two flows A and B. The backlogging counter is increased every time a packet is accepted, such as shown in figure 4. The backlogging counter is limited to a fixed value, e.g. ±128 kB. If one backlogging counter for a flow reaches the upper limit, all the counters belonging to this port are decreased in order to maintain the internal difference. If one backlogging counter for a flow reaches the lower limit, this counter remains at the lower limit (but the other counters are not affected). This way only the near past is remembered. Hence the term short term fairness. Now we have two variables
(backlogging counter and charity counter) measuring fairness in two different time scales.
Up to TI two flows, A and B, are active. They are considered equal in all respects and offer the same amount of bandwidth to the switch. Between TI and T2 only flow A is active, while flow B is idle. After T2 both flows are again active. The two diagrams of figures 4 and 5 share the same time axis. Until TI both flows have the same bandwidth and backlogging counters. Since flow B becomes idle at TI , only the counters of flow A are increased up to T2. Note that the backlogging counter has an upper limit and instead of continuing to increase, all flows are decreasing their backlogging counters. Also note that the backlogging counter has a lower limit, Min Backlogging in figure 5. Also the charity counter CH of the port is increased, since flow A is the most aggressive flow and discards some packets. When both flows A and B offer bandwidth, only the flow having the smallest backlogging counter BL is accepted. At T2 flow B becomes active again and for a small period, T2 to T3, all the traffic of flow B is accepted while the backlogging counters of flow B is increased. Once the backlogging counters are equal, they share the bandwidth again.
Between T3 and T4 the accepted bandwidth differs between flow A and B. Until they match, flow A is giving up a small portion of its bandwidth for flow B. Now the charity counter CH of the port is increased by flow A discarding some packets and decreased by flow B taking some packets. After T4 they share the line equally again. Figure 6 shows the experienced bandwidth for both flows. All these diagrams have a somewhat broken time axis in order to show sensible figures. T2
SUBSTITUTE SHEET (RULE 28) and T3 are very close together (short term fairness) and T3 and T4 are much further apart (long term fairness).
As is indicated above, each time a packet is accepted each involved counter is increased in accordance with the table above. It is not necessary that the counters are limited, but it may be practical to set an upper limit to all counters, in order to keep the size of a counter to a suitable value. In order to reflect the relationship between all counters at all times and prevent overflow, all counters must be decreased when one of the counters in a category is close to the upper limit. Thus, when a counter in a group (e.g. all TC counters under a port) reaches a limit close to the physical size, a constant is subtracted from all the counters in this group.
The operation is also cyclical with respect to time. Each time unit the variables are updated with a corresponding parameter. That is, the parameters are subtracted from the respective variable to indicate that a certain amount of time has passed and that a certain amount of traffic is sent out. Running through all algorithms results in that flags are set. So far, no decisions have been made whether to accept or reject the packet and now it is time to use all the flags. An example of the decision sequence is listed below. When the decision is taken the respective counters are incremented and the algorithms are repeated for the next packet. 1) If port is switched off, then reject. Otherwise:
2) If Flow Groups are enabled and Flow Group is fair, then accept. Otherwise:
3) If queue (VQLP, VQLTC) longer than DiscardWanted (= desired maximum length), then reject. Otherwise:
4) If Flow Groups are enabled and queue (VQLP, VQLTC) longer than DiscardPreferred (= preferred maximum length), and the most aggressive
Flow Group, then reject. Otherwise:
5) If Traffic Classes are enabled and Traffic Class is fair, then accept. Otherwise:
6) If queue (VQLP, VQLTC) longer than DiscardPreferred (= preferred maximum length), then reject. Otherwise:
7) Accept.
Below is an example of the result of the bandwidth distribution among a set of traffic classes achieved by means of the present invention. Bandwidth is measured in percent for convenience.
SUBSTITUTE SHEET
Figure imgf000013_0001
The classes above illustrate:
If a class has less offered than guaranteed bandwidths. all get through (class
B). If a class offers more than its maximum bandwidth it is not accepted (class H).
Two classes with exactly the same input traffic, receive bandwidth according to their weights, if there is competition (classes F and G). The bandwidth is distributed in inverse proportion to the weight value in the table.
The general bandwidth calculation for a class with both a minimum and maximum bandwidth as well as a weight is:
B = min (offered bandwidth, BWTCmax, BWTCmin + WTC / ∑WTC x BWspare)
(The distribution between flow groups is not shown in the table.)
The method and apparatus according to the invention may be extended to more levels. Any number of levels may be added. An example is shown in figure 7. A physical connection is often shared by several users. The connection may be an overseas cable or link with a number of ports. One port may e.g. be leased to one or several telecommunication operators at Level 1 of which one is shown. Only one instance is shown at each level. In turn, this operator may have a number of customers, each to be provided with a specific share of the traffic. These are located at Level 2. The customer may in turn want to control the traffic by prioritising certain users or subscribers or the like. This is done at Level 3. Below Level 3, the ordinary levels of traffic class, flow group and application flows may be as before.
At each level the traffic can be controlled using the configuration parameters including maximum bandwidth, minimum bandwidth and weight as is described
SUBSTITU TE SHEET (FiULE 26) above. The configuration parameters are set by the organisation in control of the specific level in question and possibly the underlying levels, if required.
The added levels are inserted above the traffic class level. An example with tables listing the configuration parameters and the respective counters and variables is set forth below with one added level. It will be appreciated that the port interfaces with the added level in the same way as with the traffic class as described above. Of course, the counters and variables have to be replaced with the corresponding counters and variables of the added level.
Similarly, the traffic class interfaces upward to the added level as with the port as described previously. Here, the counters and variables have the same name as before, but the absolute values have will have to be changed to take the added level into consideration since in fact other sets of traffic classes are located in parallel at the same level. The same applies to the flow group level and flow level.
If more levels are added, the corresponding substitutions have to be made. This is however straightforward and not described in detail here.
Configuration parameters
Figure imgf000014_0001
BWP max maximum bandwidth per port
BWAL max maximum bandwidth per added level BWAL min minimum bandwidth per added level WAL weight per added level BWTC max maximum bandwidth per traffic class BWTC mm minimum bandwidth per traffic class WTC weight per traffic class Port counters and variables
Figure imgf000015_0001
VQLP virtual queue length per port ALPmax maximum added level variable per port LPmax maximum backlogging variable per port CHP charity counter for all added levels under this port
Added level counters and variables
Figure imgf000015_0002
AL added level counter
TC ax maximum traffic class variable per added level BLAL backlogging counter per added level
VQLAL virtual queue length per added level
CHAL charity counter for all traffic classes under this added level Traffic Class counters and variables
Figure imgf000016_0001
TC traffic class counter
FGmax maximum flow group variable per traffic class BLTC backlogging counter per traffic class VQLTC virtual queue length per traffic class
Flow G roup counter
Name Logic Increment per packet sent Update per time unit
FG +packet length —
FG flow group counter
The embodiments discussed above are only intended to be illustrative of the invention. The physical implementation in hardware and software and other embodiments may be devised by those skilled in the art without departing from the spirit and scope of the following claims.

Claims

1. A method for bandwidth scheduling in a switch comprising a switching fabric, and a bandwidth scheduler located before output queues, the method comprising the steps of: receiving a stream of data from the switching fabric; subjecting the stream to a decision making algorithm in the bandwidth scheduler resulting in that the stream is forwarded or interrupted (accepted or rejected).
2. A method for bandwidth scheduling according to claim 1 , wherein the stream of data includes identifiable data packets; subjecting each data packet to a decision making algorithm in the bandwidth scheduler resulting in that the data packet is accepted or rejected.
3. A method for bandwidth scheduling according to claim 2. wherein each packet contains information about its flow identity, namely port (number) and traffic class.
4. A method for bandwidth scheduling according to claim 3, wherein a limit (BWPmax) ιs set on the maximum accepted bandwidth per port.
5. A method for bandwidth scheduling according to claim 4, wherein a virtual queue is associated with each port by means of a counter VQLP (virtual queue length of port) and the counter VQLP is increased with the packet length for each accepted packet and updated by subtracting the configuration parameter BWPmax (maximum accepted bandwidth per port) each time unit.
6. A method for bandwidth scheduling according to claim 5, wherein, if the counter VQLP < a constant, a flag is set to a value used by the algorithm in deciding to accept or reject a packet.
7. A method for bandwidth scheduling according to claim 4, wherein a limit (BWTCmax) 1S set on t e maximum accepted bandwidth per traffic class.
8. A method for bandwidth scheduling according to claim 7, wherein a virtual queue is associated with each traffic class by means of a counter VQLTC (virtual queue length per traffic class) and the counter VQLTC is increased with the packet length for each accepted packet and updated each time unit by subtracting the configuration parameter BWTCmax-
9. A method for bandwidth scheduling according to claim 8, wherein, if the counter VQLTC < a constant, a flag is set to a value used by the algorithm in deciding to accept or reject a packet.
10. A method for bandwidth scheduling according to claim 3. wherein a counter TC (traffic class) is increased with the packet length when the traffic class accepts a packet, and a variable TCPmaχ (traffic class port maximum) is set to a value equal to the maximum of the TC counters for the port in question, wherein, for a traffic class where a relationship between TC and TCPmax meets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet, whereby the bandwidth is distributed in accordance with the Max-Min algorithm.
1 1. A method for bandwidth scheduling according to claim 10, wherein the criterion between TC and TCPmax 1S the difference TCPmax - TC < a constant.
12. A method for bandwidth scheduling according to claim 10, wherein the criterion between TC and TCPmax is the ratio TC/TCPmax < a constant.
13. A method for bandwidth scheduling according to claim 3, wherein each traffic class is guaranteed a bandwidth up to a limit (BWTCmin)-
14. A method for bandwidth scheduling according to claim 13. wherein a counter TC (traffic class) is increased with the packet length when the traffic class accepts a packet and is updated each time unit by subtracting the configuration parameter BWTCmjn (bandwidth per traffic class minimum).
15. A method for bandwidth scheduling according to claim 10, wherein a weight WTC (weight traffic class) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes.
16. A method for bandwidth scheduling according to claim 15, wherein the counter TC (traffic class) is increased with the packet length multiplied by the configuration parameter WTC (weight traffic class), when the traffic class accepts a packet, and the counter TC is updated each time unit by subtracting a configuration parameter BWTCmin (bandwidth per traffic class minimum) multiplied by the configuration parameter WTC.
17. A method for bandwidth scheduling according to claim 3, wherein, for each traffic class, a counter BL (backlogging) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class.
18. A method for bandwidth scheduling according to claim 17, wherein a variable BLPmax (backlogging port max) stores the maximum of the backlogging counters for the traffic classes of each port, and, for a traffic class where a relationship between BL and BLPmax n eets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet.
19. A method for bandwidth scheduling according to claim 18, wherein the criterion between BL and BLPmax is the difference BLPmax ~ BL < a constant.
20. A method for bandwidth scheduling according to claim 18, wherein the criterion between BL and BLPmax is the ratio BL/BLPmax < a constant.
21. A method for bandwidth scheduling according to claim 18, wherein the BL counter is increased with the packet length multiplied by a configuration parameter WTC (weight traffic class), when the traffic class accepts a packet, and said counter BL is limited to a fixed upper value and a fixed lower value, and if one backlogging counter for a traffic class reaches the upper limit, all other counters are decreased in order to maintain the internal difference, and if one backlogging counter for a flow reaches the lower limit, this counter remains at the lower limit and the counter BL is updated each time unit by subtracting a configuration parameter BWTCmin (minimum bandwidth per traffic class) multiplied by the configuration parameter WTC.
22. A method for bandwidth scheduling according to claim 3, wherein, if one traffic class is particularly aggressive or active, it is forced to give up a part of its accepted bandwidth.
23. A method for bandwidth scheduling according to claim 22, wherein, when a packet is accepted in a traffic class having the maximum accepted bandwidth (TC = CPmax)' a charity function forces the packet to be discarded and a counter charity (CH) is increased with a configurable fraction of the accepted packet length (+packet length x give factor), and when a packet is rejected in one of the other traffic classes, the charity function forces the packet to be accepted and the charity counter (CH) is decreased with the packet length multiplied with the weight of the respective traffic class (-packet length x WTC), and the counter (CH) is updated each time unit by multiplication with a decay factor.
24. A method for bandwidth scheduling according to claim 3, wherein: a limit (BWPmax) is set on the maximum accepted bandwidth per port, a virtual queue is associated with each port, and a flag is set in dependence of the port queue length; a limit (BWTCmax) 1S set °n the maximum accepted bandwidth per traffic class, a virtual queue is associated with each traffic class, and a flag is set in dependence of the traffic class queue length; the bandwidth is distributed in accordance with the Max-Min algorithm; each traffic class is guaranteed a bandwidth up to a limit (BWTCmjn); a weight (WTC) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes; for each traffic class, a backlogging counter (BL) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class; if one traffic class is particularly aggressive or active, it gives up a part of its accepted bandwidth.
25. A method for bandwidth scheduling according to claim 24, wherein an added level is inserted between port level and traffic class level, said added level interfacing toward the port level as a traffic class, and interfacing toward the traffic class level as a port.
26. A method for bandwidth scheduling according to claim 3, wherein flows are grouped together by means of a hash function into a set of flow groups.
27. A method for bandwidth scheduling according to claim 26, wherein a counter FG (flow group) is increased with the packet length when the flow group accepts a packet, and a variable FGmax (flow group maximum) is set to a value equal to the maximum of the FG counters for the traffic class in question, and wherein, for a flow group where a relationship between FG and FGmax meets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet, whereby the bandwidth is distributed in accordance with the Max-Min algorithm.
28. A method for bandwidth scheduling according to claim 27, wherein the criterion between FG and FGmax ιs me difference FGmax - FG < a constant.
29. A method for bandwidth scheduling according to claim 27, wherein the criterion between FG and FGmax is the ratio FG/FGmax < a constant.
30. A method for bandwidth scheduling according to claim 27, wherein: a limit (BWPmax) is set on the maximum accepted bandwidth per port, a virtual queue is associated with each port, and a flag is set in dependence of the port queue length; a limit (BWTCmax) is set on the maximum accepted bandwidth per traffic class, a virtual queue is associated with each traffic class, and a flag is set in dependence of the traffic class queue length; each traffic class is guaranteed a bandwidth up to a limit (BWTCmin)÷ a weight (WTC) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes; for each traffic class, a backlogging counter (BL) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class; if one traffic class is particularly aggressive or active, it gives up a part of its accepted bandwidth.
31. A method for bandwidth scheduling according to claim 30, wherein an added level is inserted between port level and traffic class level, said added level interfacing toward the port level as a traffic class, and interfacing toward the traffic class level as a port.
32. A method for bandwidth scheduling according to claim 6, 9, 10, 14, 16, 21 , or 23, wherein flows are grouped together by means of a hash function into a set of flow groups, and a counter FG (flow group) is increased with the packet length when the flow group accepts a packet, and a variable FGmax (flow group
SUBST.T! H SHEET (RULE 26) maximum) is set to a value equal to the maximum of the FG counters for the traffic class in question, and wherein, for a flow group where a relationship between FG and FGmax meets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet, whereby the bandwidth is distributed in accordance with the Max-Min algorithm.
33. A method for bandwidth scheduling according to claim 31 , wherein the criterion between FG and FGmax is the difference FGmax - FG < a constant.
34. A method for bandwidth scheduling according to claim 31 , wherein the criterion between FG and FGmax is the ratio FG/FGmax < a constant.
35. A method for bandwidth scheduling according to claim 30, wherein the flags set by the algorithm logic are used in a decision sequence comprising: if port is switched off, then reject, otherwise; if Flow Groups are enabled and Flow Group is fair, then accept, otherwise; if queue (VQLP, VQLTC) longer than DiscardW anted (= desired maximum length), then reject, otherwise if Flow Groups are enabled and queue (VQLP, VQLTC) longer than DiscardPreferred (= preferred maximum length), and the most aggressive Flow Group, then reject, otherwise if Traffic Classes are enabled and Traffic Class is fair, then accept, otherwise; if queue (VQLP, VQLTC) longer than DiscardPreferred (= preferred maximum length), then reject, otherwise; accept.
36. A method for bandwidth scheduling in a switch comprising a switching fabric, and a bandwidth scheduler located after output queues, the method comprising the steps of: receiving a stream of data including identifiable data packets from the switching fabric; subjecting each data packet to a decision making algorithm in the bandwidth scheduler resulting in that the data packet is accepted or rejected, wherein a limit (BWPmax) is set on the maximum accepted bandwidth per port, and a virtual queue is associated with each port by means of a counter VQLP (virtual queue length of port) and the counter VQLP is increased with the packet length for each accepted packet and updated by subtracting the configuration parameter BWPmax (maximum accepted bandwidth per port) each time unit.
37. A method for bandwidth scheduling according to claim 36, wherein: a flag is set in dependence of the port queue length; a limit (BWTCmaχ) is set on the maximum accepted bandwidth per traffic class, a virtual queue is associated with each traffic class, and a flag is set in dependence of the traffic class queue length; each traffic class is guaranteed a bandwidth up to a limit (BWTCmin); a weight (WTC) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes; for each traffic class, a backlogging counter (BL) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class; if one traffic class is particularly aggressive or active, it gives up a part of its accepted bandwidth.
38. A method for bandwidth scheduling according to claim 37, wherein an added level is inserted between port level and traffic class level, said added level interfacing toward the port level as a traffic class, and interfacing toward the traffic class level as a port.
39. An arrangement for bandwidth scheduling in a switch comprising a switching fabric, and a bandwidth scheduler located before output queues, the arrangement comprising: means for receiving a stream of data from the switching fabric; means for subjecting the stream to a decision making algorithm in the bandwidth scheduler resulting in that the stream is forwarded or interrupted (accepted or rejected).
40. An arrangement for bandwidth scheduling according to claim 39. wherein the stream of data includes identifiable data packets; and further comprising means for subjecting each data packet to a decision making algorithm in the bandwidth scheduler resulting in that the data packet is accepted or rejected.
41. An arrangement for bandwidth scheduling according to claim 40. wherein each packet contains information about its flow identity, namely port (number) and traffic class.
42. An arrangement for bandwidth scheduling according to claim 41 , wherein a limit (BWPmaχ) i set on the maximum accepted bandwidth per port.
43. An arrangement for bandwidth scheduling according to claim 42, wherein a virtual queue is associated with each port by means of a counter VQLP (virtual queue length of port) and the counter VQLP is increased with the packet length for each accepted packet and updated by subtracting the configuration parameter BWPmax (maximum accepted bandwidth per port) each time unit.
44. An arrangement for bandwidth scheduling according to claim 43. wherein, if the counter VQLP < a constant, a flag is set to a value used by the algorithm in deciding to accept or reject a packet.
45. An arrangement for bandwidth scheduling according to claim 42. wherein a limit (BWTCmax) is set on the maximum accepted bandwidth per traffic class.
46. An arrangement for bandwidth scheduling according to claim 45, wherein a virtual queue is associated with each traffic class by means of a counter VQLTC (virtual queue length per traffic class) and the counter VQLTC is increased with the packet length for each accepted packet and updated each time unit by subtracting the configuration parameter BWTCmax-
47. An arrangement for bandwidth scheduling according to claim 46, wherein, if the counter VQLTC < a constant, a flag is set to a value used by the algorithm in deciding to accept or reject a packet.
48. An arrangement for bandwidth scheduling according to claim 41. wherein a counter TC (traffic class) is increased with the packet length when the traffic class accepts a packet, and a variable TCPmax (traffic class port maximum) is set to a value equal to the maximum of the TC counters for the port in question, and wherein, for a traffic class where a relationship between TC and TCPmax meets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet, whereby the bandwidth is distributed in accordance with the Max-Min algorithm.
49. An arrangement for bandwidth scheduling according to claim 48, wherein the criterion between TC and TCPmax i the difference TCPmax - TC < a constant.
50. An arrangement for bandwidth scheduling according to claim 48, wherein the criterion between TC and TCPmax i e ratio TC/TCPmax < a constant.
51. An arrangement for bandwidth scheduling according to claim 41 , wherein each traffic class is guaranteed a bandwidth up to a limit (BWTCmin)-
52. An arrangement for bandwidth scheduling according to claim 51. wherein a counter TC (traffic class) is increased with the packet length when the traffic class accepts a packet and is updated each time unit by subtracting the configuration parameter BWTCmjn (bandwidth per traffic class minimum).
53. An arrangement for bandwidth scheduling according to claim 48. wherein a weight WTC (weight traffic class) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes.
54. An arrangement for bandwidth scheduling according to claim 53. wherein the counter TC (traffic class) is increased with the packet length multiplied by the configuration parameter WTC (weight traffic class), when the traffic class accepts a packet, and the counter TC is updated each time unit by subtracting a configuration parameter BWTCmin (bandwidth per traffic class minimum) multiplied by the configuration parameter WTC.
55. An arrangement for bandwidth scheduling according to claim 41. wherein, for each traffic class, a counter BL (backlogging) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more
SUBSΪIΪU I E SHEET (RULE 26) bandwidth to this traffic class.
56. An arrangement for bandwidth scheduling according to claim 55. wherein a variable BLPmax (backlogging port max) stores the maximum of the backlogging counters for the traffic classes of each port, and, for a traffic class where a relationship between BL and BLPmax meets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet.
57. An arrangement for bandwidth scheduling according to claim 56, wherein the criterion between BL and BLPmax is the difference BLPmax _ BL < a constant.
58. An arrangement for bandwidth scheduling according to claim 56. wherein the criterion between BL and BLPmax is the ratio BL/BLPmax < a constant.
59. An arrangement for bandwidth scheduling according to claim 55, wherein the counter BL is increased with the packet length multiplied by a configuration parameter WTC (weight traffic class), when the traffic class accepts a packet, and said counter BL is limited to a fixed upper value and a fixed lower value, and if one backlogging counter for a traffic class reaches the upper limit, all other counters are decreased in order to maintain the internal difference, and if one backlogging counter for a flow reaches the lower limit, this counter will remain at the lower limit and the counter BL is updated each time unit by subtracting a configuration parameter BWTCmin (minimum bandwidth per traffic class) multiplied by the configuration parameter WTC.
60. An arrangement for bandwidth scheduling according to claim 41, wherein, if one traffic class is particularly aggressive or active, it is forced to give up a part of its accepted bandwidth.
61. An arrangement for bandwidth scheduling according to claim 60, wherein, when a packet is accepted in a traffic class having the maximum accepted bandwidth (TC = TCPmax)> a charity function forces the packet to be discarded and a counter charity (CH) is increased with a configurable fraction of the accepted packet length (+packet length x give factor), and when a packet is rejected in one of the other traffic classes, the charity function forces the packet to be accepted and the charity counter (CH) is decreased with the packet length multiplied with the weight of the respective traffic class (-packet length x WTC), and the counter (CH) is updated each time unit by multiplication with a decay factor.
62. An arrangement for bandwidth scheduling according to claim 41. wherein: a limit (BWPmax) i set on the maximum accepted bandwidth per port, a virtual queue is associated with each port, and a flag is set in dependence of the port queue length; a limit (BWTCmaχ) i set on the maximum accepted bandwidth per traffic class, a virtual queue is associated with each traffic class, and a flag is set in
SUBSTITUTE SHEET ([, LE 26) dependence of the traffic class queue length; the bandwidth is distributed in accordance with the Max-Min algorithm; each traffic class is guaranteed a bandwidth up to a limit (BWTCmin); a weight (WTC) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes; for each traffic class, a backlogging counter (BL) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class; if one traffic class is particularly aggressive or active, it gives up a part of its accepted bandwidth.
63. An arrangement for bandwidth scheduling according to claim 62, wherein an added level is inserted between port level and traffic class level, said added level interfacing toward the port level as a traffic class, and interfacing toward the traffic class level as a port.
64. An arrangement for bandwidth scheduling according to claim 41 , wherein flows are grouped together by means of a hash function into a set of flow groups.
65. An arrangement for bandwidth scheduling according to claim 64, wherein a counter FG (flow group) is increased with the packet length when the flow group accepts a packet, and a variable FGmax (flow group maximum) is set to a value equal to the maximum of the FG counters for the traffic class in question, and wherein, for a flow group where a relationship between FG and FGmax meets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet, whereby the bandwidth is distributed in accordance with the Max-Min algorithm.
66. An arrangement for bandwidth scheduling according to claim 65, wherein the criterion between FG and FGmax is the difference FGmax " FG < a constant.
67. An arrangement for bandwidth scheduling according to claim 65, wherein the criterion between FG and FGmax i the ratio FG/FGmax < a constant.
68. An arrangement for bandwidth scheduling according to claim 65, wherein: a limit (BWPmax) is set on the maximum accepted bandwidth per port, a virtual queue is associated with each port, and a flag is set in dependence of the queue length; a limit (BWTCmax) is set on the maximum accepted bandwidth per traffic class, a virtual queue is associated with each traffic class, and a flag is set in dependence of the queue length; each traffic class is guaranteed a bandwidth up to a limit (BWTCmin); a weight (WTC) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes; for each traffic class, a backlogging counter (BL) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class; if one traffic class is particularly aggressive or active, it gives up a part of its accepted bandwidth.
69. An arrangement for bandwidth scheduling according to claim 68, wherein an added level is inserted between port level and traffic class level, said added level interfacing toward the port level as a traffic class, and interfacing toward the traffic class level as a port.
70. An arrangement for bandwidth scheduling according to claim 44, 47, 50, 52, 54, 59, or 61, wherein flows are grouped together by means of a hash function into a set of flow groups, and a counter FG (flow group) is increased with the packet length when the flow group accepts a packet, and a variable FGmax (flow group maximum) is set to a value equal to the maximum of the FG counters for the traffic class in question, and wherein, for a flow group where a relationship between FG and FGma meets a criterion, a flag is set to a value used by the algorithm in deciding to accept or reject a packet, whereby the bandwidth is distributed in accordance with the Max-Min algorithm.
71. An arrangement for bandwidth scheduling according to claim 70, wherein the criterion between FG and FGmax is the difference FGmax - FG < a constant.
72. An arrangement for bandwidth scheduling according to claim 70, wherein the criterion between FG and FGmax is the ratio FG/FGmax < a constant.
73. An arrangement for bandwidth scheduling according to claim 68, wherein the flags set by the algorithm logic are used in a decision sequence comprising: if port is switched off, then reject, otherwise; if Flow Groups are enabled and Flow Group is fair, then accept, otherwise; if queue (VQLP, VQLTC) longer than DiscardWanted (= desired maximum length), then reject, otherwise if Flow Groups are enabled and queue (VQLP, VQLTC) longer than DiscardPreferred (= preferred maximum length), and the most aggressive Flow Group, then reject, otherwise if Traffic Classes are enabled and Traffic Class is fair, then accept, otherwise; if queue (VQLP, VQLTC) longer than DiscardPreferred (= preferred maximum length), then reject, otherwise; accept.
74. An arrangement for bandwidth scheduling in a switch comprising a switching fabric, and a bandwidth scheduler located after output queues, the arrangement comprising: means for receiving a stream of data including identifiable data packets from the switching fabric; means for subjecting each data packet to a decision making algorithm in the bandwidth scheduler resulting in that the data packet is accepted or rejected, wherein a limit (BWPmax) is set on the maximum accepted bandwidth per port, and a virtual queue is associated with each port by means of a counter VQLP (virtual queue length of port) and the counter VQLP is increased with the packet length for each accepted packet and updated by subtracting the configuration parameter BWPmax (maximum accepted bandwidth per port) each time unit.
75. An arrangement for bandwidth scheduling according to claim 74, wherein: a flag is set in dependence of the port queue length; a limit (BWTCmaχ) is set on the maximum accepted bandwidth per traffic class, a virtual queue is associated with each traffic class, and a flag is set in dependence of the traffic class queue length; each traffic class is guaranteed a bandwidth up to a limit (BWTCmin); a weight (WTC) is associated with each traffic class, so that the algorithm automatically prioritises certain traffic classes; for each traffic class, a backlogging counter (BL) keeps track of how many packets are accepted in relation to the other traffic classes, so that if a previously idle traffic class becomes active, the traffic class is compensated by distributing more bandwidth to this traffic class; if one traffic class is particularly aggressive or active, it gives up a part of its accepted bandwidth.
76. An arrangement for bandwidth scheduling according to claim 75. wherein an added level is inserted between port level and traffic class level, said added level interfacing toward the port level as a traffic class, and interfacing toward the traffic class level as a port.
PCT/SE2001/000733 2000-04-10 2001-04-04 Method and apparatus for distribution of bandwidth in a switch WO2001078420A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2001575740A JP2003530792A (en) 2000-04-10 2001-04-04 Method and apparatus for distributing bandwidth in a switch
EP01918130A EP1277357A1 (en) 2000-04-10 2001-04-04 Method and apparatus for distribution of bandwidth in a switch
IL15214901A IL152149A0 (en) 2000-04-10 2001-04-04 Method and apparatus for distribution of bandwidth in a switch
AU4499601A AU4499601A (en) 2000-04-10 2001-04-04 Method and apparatus for distribution of bandwidth in a switch
AU2001244996A AU2001244996B2 (en) 2000-04-10 2001-04-04 Method and apparatus for distribution of bandwidth in a switch
CA002406074A CA2406074A1 (en) 2000-04-10 2001-04-04 Method and apparatus for distribution of bandwidth in a switch
NO20024882A NO20024882L (en) 2000-04-10 2002-10-09 Method and apparatus for distributing bandwidth in a switch

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/546,494 2000-04-10
US09/546,494 US7215678B1 (en) 2000-04-10 2000-04-10 Method and apparatus for distribution of bandwidth in a switch

Publications (1)

Publication Number Publication Date
WO2001078420A1 true WO2001078420A1 (en) 2001-10-18

Family

ID=24180685

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2001/000733 WO2001078420A1 (en) 2000-04-10 2001-04-04 Method and apparatus for distribution of bandwidth in a switch

Country Status (14)

Country Link
US (1) US7215678B1 (en)
EP (1) EP1277357A1 (en)
JP (1) JP2003530792A (en)
KR (1) KR20030001412A (en)
CN (1) CN1271830C (en)
AU (2) AU4499601A (en)
CA (1) CA2406074A1 (en)
EG (1) EG22898A (en)
IL (1) IL152149A0 (en)
MY (1) MY136305A (en)
NO (1) NO20024882L (en)
TW (1) TW525395B (en)
WO (1) WO2001078420A1 (en)
ZA (1) ZA200208608B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1328094A1 (en) * 2002-01-14 2003-07-16 Fujitsu Network Communications, Inc. Weighted credit-based arbitration using credit history
WO2004017650A2 (en) * 2002-08-19 2004-02-26 Soma Networks, Inc. Scheduler for a shared channel
CN1802815B (en) * 2003-06-06 2011-06-08 微软公司 Method and system for global routing and bandwidth sharing
US8341283B2 (en) * 2006-12-08 2012-12-25 Deutsche Telekom Ag Method and system for peer-to-peer content dissemination
CN114338523A (en) * 2014-12-30 2022-04-12 华为技术有限公司 Message forwarding method and device

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072353B2 (en) * 2000-06-15 2006-07-04 At&T Corp. Flexible bandwidth allocation in high-capacity grooming switches
US8370517B2 (en) * 2001-09-27 2013-02-05 International Business Machines Corporation Conserving energy in a data processing network
AU2003250509A1 (en) * 2002-09-13 2004-04-30 Passave Ltd. Operations method in an ethernet passive optical network that includes a network unit with multiple entities
DE60305040T2 (en) * 2003-10-21 2006-11-30 Alcatel Double-sided bandwidth allocation by detection of short-term traffic change
CN100359888C (en) * 2003-11-27 2008-01-02 华为技术有限公司 A data poll dispatching method
JP4419541B2 (en) * 2003-12-03 2010-02-24 株式会社日立製作所 Polishing equipment
FI118072B (en) * 2004-09-24 2007-06-15 Tellabs Oy A method and apparatus for scheduling transmission link capacity between packet switched communication networks maintaining retention characteristics
US7525962B2 (en) * 2004-12-27 2009-04-28 Intel Corporation Reducing memory access bandwidth consumption in a hierarchical packet scheduler
CN100450076C (en) * 2004-12-30 2009-01-07 中兴通讯股份有限公司 Method of shaping network flow in use for multiple inputs and single output, and of distributing bandwidth
DE602006001512D1 (en) * 2006-04-20 2008-07-31 Alcatel Lucent Method and apparatus for efficient weighted and fair data monitoring
JP4899961B2 (en) * 2007-03-19 2012-03-21 富士通株式会社 Communication apparatus and output control method
US7839864B1 (en) * 2007-05-21 2010-11-23 Cisco Technology, Inc. Priority propagation with a hierarchical asynchronous transfer mode (ATM) scheduler
CN101272348B (en) * 2008-04-30 2012-07-04 杭州华三通信技术有限公司 Bandwidth control method and system
US8593950B2 (en) * 2008-06-24 2013-11-26 At&T Intellectual Property I, L.P. Method and apparatus for providing a weighted bandwidth allocation for a network
KR200452223Y1 (en) * 2008-11-28 2011-02-14 주식회사골드라인 Folding type box
US9116893B2 (en) 2011-10-21 2015-08-25 Qualcomm Incorporated Network connected media gateway for communication networks
US9148381B2 (en) 2011-10-21 2015-09-29 Qualcomm Incorporated Cloud computing enhanced gateway for communication networks
US20130100955A1 (en) * 2011-10-24 2013-04-25 Qualcomm Incorporated Technique for prioritizing traffic at a router
US8285141B1 (en) * 2011-12-15 2012-10-09 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US8849112B2 (en) 2011-12-15 2014-09-30 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US9641438B2 (en) 2011-12-15 2017-05-02 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US10033657B2 (en) * 2016-06-30 2018-07-24 Juniper Networks, Inc. Generating automatic bandwidth adjustment policies per label-switched path
CN113194007B (en) * 2021-04-22 2023-03-28 西安交通大学 Method, system and equipment for measuring available bandwidth of network and readable storage medium
CN116800693A (en) * 2022-03-16 2023-09-22 华为技术有限公司 Queue scheduling method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748629A (en) * 1995-07-19 1998-05-05 Fujitsu Networks Communications, Inc. Allocated and dynamic bandwidth management
US5764641A (en) * 1995-09-08 1998-06-09 Cisco Systems, Inc. Early and integrated tail packet discard system
US5768257A (en) * 1996-07-11 1998-06-16 Xylan Corporation Input buffering/output control for a digital traffic switch

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381413A (en) 1992-12-28 1995-01-10 Starlight Networks Data throttling system for a communications network
US5432790A (en) 1993-09-17 1995-07-11 Motorola, Inc. Method for allocating internodal link bandwidth in a packet oriented communication network to guarantee delay quality-of-service
JP2928452B2 (en) 1994-03-17 1999-08-03 富士通株式会社 ATM switch and call receiving apparatus and method in ATM switch
AU6502496A (en) 1995-07-19 1997-02-18 Ascom Nexion Inc. Allocated and dynamic bandwidth management
GB9520807D0 (en) 1995-10-11 1995-12-13 Newbridge Networks Corp Fair queue servicing using dynamic weights
US5917822A (en) 1995-11-15 1999-06-29 Xerox Corporation Method for providing integrated packet services over a shared-media network
GB9606711D0 (en) 1996-03-29 1996-06-05 Plessey Telecomm Routing and bandwidth allocation
US5828653A (en) * 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US5742594A (en) 1996-06-13 1998-04-21 Motorola, Inc. Method and apparatus for allocating shared bandwidth among a plurality of users
JP3409966B2 (en) * 1996-06-21 2003-05-26 株式会社日立製作所 Packet switch and packet transfer control method
JP3525656B2 (en) * 1996-12-06 2004-05-10 株式会社日立製作所 Packet switch and congestion notification method
JP2970571B2 (en) 1997-01-30 1999-11-02 日本電気株式会社 Multiplexing method of virtual path connection group
JP2965070B2 (en) 1997-04-23 1999-10-18 日本電気株式会社 ATM device and port shaping method
US6292465B1 (en) * 1997-05-27 2001-09-18 Ukiah Software, Inc. Linear rule based method for bandwidth management
US6072800A (en) * 1997-08-18 2000-06-06 Nec Usa, Inc. Weighted longest queue first adaptive scheduling discipline for ATM networks
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6853638B2 (en) * 1998-04-01 2005-02-08 Cisco Technology, Inc. Route/service processor scalability via flow-based distribution of traffic
US6628609B2 (en) * 1998-04-30 2003-09-30 Nortel Networks Limited Method and apparatus for simple IP-layer bandwidth allocation using ingress control of egress bandwidth
ATE290743T1 (en) * 1998-07-31 2005-03-15 Cit Alcatel METHOD, SEQUENCER, INTELLIGENT BUFFER MEMORY, PROCESSOR AND TELECOMMUNICATIONS SYSTEM FOR DISTRIBUTING AVAILABLE BANDWIDTH
US6549938B1 (en) * 1998-12-10 2003-04-15 Nokia Corporation System and method for prioritizing multicast packets in a network service class utilizing a priority-based quality of service
US6570883B1 (en) * 1999-08-28 2003-05-27 Hsiao-Tung Wong Packet scheduling using dual weight single priority queue

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748629A (en) * 1995-07-19 1998-05-05 Fujitsu Networks Communications, Inc. Allocated and dynamic bandwidth management
US5764641A (en) * 1995-09-08 1998-06-09 Cisco Systems, Inc. Early and integrated tail packet discard system
US5768257A (en) * 1996-07-11 1998-06-16 Xylan Corporation Input buffering/output control for a digital traffic switch

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
DEBBIE ROBINSON: "Wire speed quality of service over ethernet", 19 May 2000 (2000-05-19), XP002957047, Retrieved from the Internet <URL:http://www.chipcenter.com/networking/techarch.html> *
GOYAL P. ET AL.: "Fair airport scheduling algorithms", PROCEEDINGS OF THE IEEE 7TH INTERNATIONAL WORKSHOP ON NETWORK AND OPERATING SYSTEM SUPPORT FIR DIGITAL AUDIO AND VIDEO, 19 May 1997 (1997-05-19) - 21 May 1997 (1997-05-21), pages 257 - 265, XP010251704 *
GUIJARRO L. ET AL.: "Guaranteeing fairness and protection in ABR by means of fair queueing", 2ND INTERNATIONAL CONFERENCE ON ATM, ICATM '99, 21 June 1999 (1999-06-21) - 23 June 1999 (1999-06-23), pages 22 - 31, XP010346195 *
HUI ZHANG: "Service disciplines for guaranteed performance service in packet-switching networks", PROCEEDINGS OF THE IEEE, October 1995 (1995-10-01), pages 1374 - 1396, XP000545667 *
RACZ A. ET AL.: "Weighted fair early packet discard at an ATM swtich output port", PROCEEDINGS. IEEE EIGHTEENTH ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES, INFOCOM '99, vol. 3, 21 March 1999 (1999-03-21) - 25 March 1999 (1999-03-25), pages 1160 - 1168, XP010323858 *
YIWEI THOMAS HOU ET AL.: "ATM ABR traffic control with a generic weight-based bandwith sharing policy: Theory and a simple implementation", IEICE TRANS. COMMUN., vol. E81-B, no. 5, May 1998 (1998-05-01), pages 958 - 972, XP000779502 *
YUAN WU ET AL.: "Improved virtual queueing and dynamic EPD techniques for TCP over ATM", PROCEEDINGS OF INTERNATIONAL CONFERENCE ON NETWORK PROTOCOLS, 28 October 1997 (1997-10-28) - 31 October 1997 (1997-10-31), pages 212 - 219, XP010258702 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1328094A1 (en) * 2002-01-14 2003-07-16 Fujitsu Network Communications, Inc. Weighted credit-based arbitration using credit history
US7324452B2 (en) 2002-01-14 2008-01-29 Fujitsu Limited Weighted credit-based arbitration using credit history
WO2004017650A2 (en) * 2002-08-19 2004-02-26 Soma Networks, Inc. Scheduler for a shared channel
WO2004017650A3 (en) * 2002-08-19 2004-05-06 Soma Networks Inc Scheduler for a shared channel
CN1330153C (en) * 2002-08-19 2007-08-01 索马网络公司 Scheduler for a shared channel
CN1802815B (en) * 2003-06-06 2011-06-08 微软公司 Method and system for global routing and bandwidth sharing
US8341283B2 (en) * 2006-12-08 2012-12-25 Deutsche Telekom Ag Method and system for peer-to-peer content dissemination
CN114338523A (en) * 2014-12-30 2022-04-12 华为技术有限公司 Message forwarding method and device

Also Published As

Publication number Publication date
EP1277357A1 (en) 2003-01-22
TW525395B (en) 2003-03-21
CN1428054A (en) 2003-07-02
NO20024882L (en) 2002-12-10
CN1271830C (en) 2006-08-23
AU4499601A (en) 2001-10-23
EG22898A (en) 2003-10-30
JP2003530792A (en) 2003-10-14
ZA200208608B (en) 2003-10-24
US7215678B1 (en) 2007-05-08
AU2001244996B2 (en) 2005-12-22
KR20030001412A (en) 2003-01-06
MY136305A (en) 2008-09-30
IL152149A0 (en) 2003-05-29
CA2406074A1 (en) 2001-10-18
NO20024882D0 (en) 2002-10-09

Similar Documents

Publication Publication Date Title
AU2001244996B2 (en) Method and apparatus for distribution of bandwidth in a switch
AU2001244996A1 (en) Method and apparatus for distribution of bandwidth in a switch
US7023856B1 (en) Method and system for providing differentiated service on a per virtual circuit basis within a packet-based switch/router
JP4394203B2 (en) Methods for sharing available bandwidth, processors implementing such methods, and schedulers, intelligent buffers, and communication systems including such processors
US7457313B2 (en) Hierarchical prioritized round robin (HPRR) scheduling
CA2365677C (en) Allocating buffers for data transmission in a network communication device
US7499454B2 (en) Pipeline scheduler with fairness and minimum bandwidth guarantee
JP3347926B2 (en) Packet communication system and method with improved memory allocation
US6795870B1 (en) Method and system for network processor scheduler
US20040151197A1 (en) Priority queue architecture for supporting per flow queuing and multiple ports
JP4163044B2 (en) BAND CONTROL METHOD AND BAND CONTROL DEVICE THEREOF
US6246687B1 (en) Network switching system supporting guaranteed data rates
CA2462793C (en) Distributed transmission of traffic streams in communication networks
WO2001024428A1 (en) Hierarchical prioritized round robin (hprr) scheduling
EP1526686A1 (en) Switching unit with scalable and QoS aware flow control
US7266612B1 (en) Network having overload control using deterministic early active drops
EP2063580B1 (en) Low complexity scheduler with generalized processor sharing GPS like scheduling performance
JP3783628B2 (en) Node device in communication system and operation control method thereof
KR100598342B1 (en) Multi-class quality of service control method for DiffServ-Enabled core router
US20070133561A1 (en) Apparatus and method for performing packet scheduling using adaptation round robin
KR100475783B1 (en) Hierarchical prioritized round robin(hprr) scheduling
JP4391346B2 (en) COMMUNICATION CONTROL METHOD, COMMUNICATION CONTROL DEVICE, CONTROL PROGRAM, AND RECORDING MEDIUM
Krachodnok et al. Buffer management for TCP over GFR service in an ATM network
Dastangoo Performance consideration for building the next generation multi-service optical communications platforms
JP2003023460A (en) Rate controller

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2001918130

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 152149

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: IN/PCT/2002/01004/DE

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 2001 575740

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020027013568

Country of ref document: KR

Ref document number: 2406074

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2001244996

Country of ref document: AU

Ref document number: 200208608

Country of ref document: ZA

WWE Wipo information: entry into national phase

Ref document number: 01809144X

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020027013568

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2001918130

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 2001244996

Country of ref document: AU