WO2000074432A1 - Fair discard system - Google Patents
Fair discard system Download PDFInfo
- Publication number
- WO2000074432A1 WO2000074432A1 PCT/US2000/014535 US0014535W WO0074432A1 WO 2000074432 A1 WO2000074432 A1 WO 2000074432A1 US 0014535 W US0014535 W US 0014535W WO 0074432 A1 WO0074432 A1 WO 0074432A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- local
- congestion
- source
- sources
- buffer
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5629—Admission control
- H04L2012/5631—Resource management and allocation
- H04L2012/5632—Bandwidth allocation
- H04L2012/5635—Backpressure, e.g. for ABR
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5629—Admission control
- H04L2012/5631—Resource management and allocation
- H04L2012/5636—Monitoring or policing, e.g. compliance with allocated rate, corrective actions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/568—Load balancing, smoothing or shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
- H04L2012/5682—Threshold; Watermark
Definitions
- This invention relates generally to information transfer systems that buffer information from multiple sources and particularly to a shared buffer architecture that dynamically allocates in a shared buffer pool a buffer size to each source depending on both the buffer pool utilization and the estimated offered load of each individual source.
- network communication systems interconnect many users in a network. Each user is connected to the network at a port. The network is formed by the interconnection of many nodes where information input at an input port from one user at a source is passed from node to node through the network to an output port and to another user at a destination. The information transferred from source to destination is packetized and each node switches incoming packets at incoming ports to outgoing packets at outgoing ports. For ATM (Asynchronous Transfer Mode) networks, the packets are further divided into cells.
- ATM Asynchronous Transfer Mode
- Each switch port is typically designed to transfer information at a rate from 50 Mbit/s to 2.4 Gbit/s for a broadband integrated service digital network (ISDN). Switch sizes range from a few ports to thousands of ports.
- ISDN broadband integrated service digital network
- fast packet switch includes switches capable of handling both variable length packets and fixed length packets. Use of fixed-length packets can simplify the switch design.
- Fast packet switches using short, fixed-length packets (cells) are referred to as ATM switches.
- Fast packet switches handle different types of communications services in a single integrated network where such services may include voice, video and data communications. Since voice and video services can tolerate only a limited amount of delay and delay variance through a network, ATM switches are suitable for such services.
- the ATM standard for broadband ISDN networks defines a cell having a length of 53 bytes with a header of 5 bytes and data of 48 bytes.
- the ATM Forum Traffic Management Specification has specified a number of Service Class Definitions as follows:
- CBR Continuous Bit Rate. For real-time applications requiring tightly constrained delay and delay variation such as voice and video.
- the CBR service class requires the consistent availability of a fixed quantity of bandwidth.
- RT-VBR Realtime Variable Bit Rate. For applications where sources transmit at a rate which varies with time (referred to in the art as "bursty"), yet still must receive service with tightly constrained delay and delay variation. NRT-VBR: Non-Realtime Variable Bit Rate. For bursty applications, having no service requirements related to delay or its variance, but having sensitivity to loss.
- UBR Unspecified Bit Rate.
- GFR Guaranteed Frame Rate.
- this service category provides loss guarantees for sources transmitting traffic at or below a contracted minimum rate. Once a source exceeds the contracted minimum rate, traffic above that rate does not receive any loss guarantees.
- ABR Available Bit Rate.
- Each node is an ATM switch which includes input controllers (IC's), a switch fabric (SF), output controllers (OC's) and a node control (C).
- the node control is used for functions including connection establishment and release, bandwidth reservation, buffering control, congestion control, maintenance and network management.
- the input controllers are typically synchronized so that all cells from input controllers arrive at the switch fabric at the same time and cells can be accepted or rejected according to their priority.
- the traffic through the switch fabric is slotted and the switch fabric delay equals the sum of the timeslot duration, pipeline delay and the queuing delay.
- the node control communicates with the input controllers and the output controllers either by a direct communication path which by-passes the switch fabric or via control cells transmitted through the switch fabric.
- External connections to the switch are generally bi-directional. Bidirectional connections are formed by grouping an input controller (IC) and an output controller (OC) together to form a port controller (PC).
- the input sequence of cells in a virtual channel is preserved across the switch fabric so that the output sequence of cells on each virtual channel is the same as the input sequence.
- Cells contain a virtual channel identifier (VCI) in the cell header which identifies the connection to which the cell belongs.
- VCI virtual channel identifier
- Each incoming VCI in the header of each cell is translated in an input controller to specify the outgoing VCI identifier. This translation is performed in the input controller typically by table look-up using the incoming VCI to address a connection table.
- This connection table also contains a routing field to specify the output port of the switch fabric to which the connection is routed. Other information may be included in the connection table on a per connection basis such as the priority, class of service, and traffic type of the connection. In an ATM switch, cell arrivals are not scheduled.
- a number of cells may arrive simultaneously at different input ports, each requesting the same output port. Operations in which requests exceed the output capacity of the output port are referred to as output contention. Since an output port can only transmit a fixed number (for example, one) cell at a time, only the fixed number of cells can be accepted for transmission so that any other cells routed to that port must either be discarded or must be buffered in a queue.
- Different methods are employed for routing cells through a switch module, for example, self-routing and label routing.
- a self-routing network operates with an input controller prefixing a routing tag to every cell. Typically, the input controller uses a table look-up from a routing table to obtain the routing tag.
- the routing tag specifies the output port to which the cell is to be delivered. Each switching element is able to make a fast routing decision by inspecting the routing tag.
- the self-routing network ensures that each cell will arrive at the required destination regardless of the switch port at which it enters.
- a label routing network operates with a label in each cell referencing translation tables in each switching element.
- the label is translated in each switching element and hence any arbitrary network of switching elements may be employed.
- Switches have two principal designs, time-division and space division.
- time-division switch fabric all cells flow through a single communication channel shared in common by all input and output ports.
- space division switch a plurality of paths are provided between the input and output ports. These paths operate concurrently so that many cells may be transmitted across the switch fabric at the same time.
- the total capacity of the switch fabric is thus the product of the bandwidth of each path and the average number of paths that can transmit a cell concurrently.
- congestion exceeds the available system resources in a network, congestion is present and performance degrades.
- all cells can be delivered so that the number of cells delivered equals the number of cells sent without congestion.
- Congestion can be brought about by several factors. If nodes in a network are too slow to perform the various tasks required of them (queueing buffers, updating tables, etc.), queues build up, even though excess line capacity exists. On the other hand, even if nodes are infinitely fast, queues will build up whenever the input traffic rate exceeds the capacity of the output traffic rate for any particular group of outputs. If a node has no free buffers for queueing cells, the node must discard newly arriving cells. For packet data traffic, when a cell is discarded, the packet from which the discarded cell came will be retransmitted, perhaps many times, further extending the congestion epoch.
- Buffers are used in an ATM switch to receive and store incoming cells.
- a certain (fixed) amount of buffer space is reserved for CBR, RT- VBR, and NRT-VBR traffic.
- the required amount of space is known in advance because traffic from these service categories is policed at the receive side.
- ABR and UBR traffic are not well regulated and may overflow the remaining buffer space, resulting in loss of cells and degrading the quality of other connections.
- the available art generally employs one of two buffer architectures.
- One buffer architecture uses a shared buffer space in which one high- volume connection can overflow the entire buffer leaving no buffer space for other connections.
- another buffer architecture an amount of buffer space is allocated for each connection so that it is often necessary to underutilize the buffer space to guard against overflow. This underutilization is costly since the allocated space is unused much of the time and is not used at all for connections that are not carrying traffic.
- the present invention comprises a shared buffer architecture that dynamically allocates buffer size to each of multiple sources depending on both buffer pool utilization and the estimated offered load of each individual source.
- each source When the buffer pool is almost empty, each source is allocated a large buffer space. When the buffer pool is more full, each source is allocated a reduced buffer space, proportional to the weight of the individual connection.
- the invention tracks the number of cells received per source and dynamically allocates a proportionate amount of buffer space in the buffer memory for that source. Dynamic allocation is made as a function of the fullness of the buffer memory allocation for all sources, in a manner that fairly allocates buffer space depending on the amount of traffic and the amount of buffer space taken up by each source, while providing some guaranteed buffer space for those connections which require explicit loss objectives.
- An advantage of the invention is therefore to provide an ability to control the relative fairness a given connection receives (relative to other connections within the same class of service). In operation, the memory allocation is readjusted depending on the total number of cells in the buffer memory.
- the method and system of the invention therefore achieves a more efficient allocation whenever the buffer is not full.
- the upper limit on buffer size (a totally full buffer) is the same as with a fixed buffer, but otherwise the invention is more efficient than static buffer allocation because the available buffer space is optimized to allow each source to use as much buffer space as possible. To each source, the buffer appears larger than is actually available for all sources combined.
- the invention also enforces requirements, leading to more efficient use of the network, by ensuring that compliant sources are isolated from the effects of misbehavior of non-compliant sources.
- a weighted fair discard operation is provided that is efficient over multiple hops. With fixed buffers the risk of discards in subsequent nodes increases exponentially with the number of hops. With dynamic allocation in the present invention, a decreased loss probability is achieved because the system tends to adjust to a steady-state condition, while retaining the ability to dynamically adapt to non-stationary loading patterns.
- the discard threshold can be changed to allocate different amounts of memory to the buffer depending on such factors as the quality of service desired, the relative weight within a given class of service, or the number of connections established within a given service class.
- EFCI forward congestion indication
- FIG. 1 depicts a schematic block diagram of a plurality of source/destination (S/D) users connected through a multinode network.
- FIG. 2 depicts a schematic representation of a circuit with one S/D user connected to another S/D user through a sequence of nodes in the network of FIG. 1 .
- FIG. 3 depicts a schematic representation of the FIG. 2 circuit with a virtual channel connection of the source (S) sending information in a forward direction (F) to a destination (D) and with a reverse direction (R) for transmitting control signals to the source (S).
- FIG. 4 depicts a schematic representation of a typical one of the nodes (N) in the FIG. 1 network.
- FIG. 5 depicts a schematic representation of the queuing unit in the
- FIG. 4 node.
- FIG. 6 depicts a representation of dynamic cell discard thresholds.
- FIG. 7 depicts a schematic representation of congestion indication and frame discard thresholds.
- FIG. 8 depicts a block diagram representation of the fair discard and congestion indication.
- FIG. 9 illustrates the relevant parameters for making descard decisions.
- FIG. 1 0 depicts a schematic representation of the pointer integrity verification.
- FIG. 1 Detailed Description of Preferred and Alternative Embodiments Overall Network - FIG. 1
- each S/D unit 4 connects through a multinode (N) network 1 .
- the network 1 includes many nodes (N) 5.
- the nodes are connected from node to node so that, in general, any particular one of the S/D units 4 can connect to any one of the other S/D units 4 by forming a chain of nodes 5 in the network 1 .
- the connections between the S/D units 4 and a node 5, and the connections between nodes 5, are by bi-directional links 8 which enable information to be transferred in both directions.
- N 5 the number of nodes (N) 5 shown is for clarity a relatively small number, but the network may include hundreds or more of nodes.
- the S/D units 4 include S users 4-0, 4-1 , 4-2, 4-3, 4-4, ..., 4-(S-2), 4- (S-1 ).
- the value of S can be any integer, although S is typically equal to hundreds or higher.
- the FIG. 1 communication system is an ATM network in which the unit of transfer of information is a cell.
- a plurality of cells form packets of information.
- the network I communicates cells and packets so as to support different types of information including images, voice and data.
- the S/D unit 4-x is typical of any of the S/D units 4 of FIG. 1 .
- the S/D unit 4-x may represent the S/D unit 4-2 in FIG. 1 .
- the S/D unit 4-y in FIG. 2 may represent any of the S/D units 4 in FIG. 1 .
- S/D unit 4-y may represent the S/D unit 4-4 in FIG. 1 .
- the nodes 5-0, 5-1 , ..., 5-(C-1 ) represent the C nodes in the network I of FIG. I which are used to connect the S/D unit 4-2 to the S/D unit 4-4.
- the bi-directional links 8-0, 8-1 , ..., 8-(C-1 ), 8-(C) connect from the S/D unit 4-x through the nodes 5-0, 5-1 , ..., 5-(C-1 ) to the S/D unit 4-y.
- information may be transferred from the source (S) in the S/D unit 4-x to the destination (D) in the S/D unit 4-y.
- information from the source (S) in the S/D unit 4-y can be transferred to the destination (D) in the S/D unit 4-x. While information may be transferred in either direction in FIG.
- FIG. 3 a schematic representation of the circuitry used for a source (S) to destination (D) transfer in the virtual channel of FIG. 2 is shown.
- the source unit 4-(S) in the S/D unit 4-x of FIG. 2 connects to the destination unit 4-(D) in the S/D unit 4-y of FIG. 2.
- each of the links 8-0, 8-1 , ..., 8-(C-1 ), 8-(C) includes a forward (F) channel for transferring information in the forward direction and a reverse (R) channel for transferring information in the reverse direction.
- the reverse channel in FIG. 3 is associated with the transfer of information from the source unit 4-(S) to the destination unit 4-(D).
- the reverse channel (R) is distinguished from the forward channel (F) used for the transfer of information in the forward direction from S/D unit 4-y to S/D unit 4-x, as discussed in connection with FIG. 2. Both the forward (F) and the reverse (R) channels are associated with the source unit 4-(S) transfer to the destination unit 4-(D).
- Each of the nodes in FIG. 3 includes forward (F) circuitry 6 and reverse (R) circuitry 7.
- the forward channels 8- OP, 8-IF, ..., 8-(C-1 )F connect as inputs respectively to the forward circuits 6-0, 6-1 , ..., 6-(C-1 ).
- the forward channel 8-(C)F connects from the node 6-(C-1 ) to the D unit 4-(D) .
- the reverse channels 8-OR, 8-1 R, ..., 8JC-1 )R connect from the reverse circuits 7-0, 7-1 , ..., 7-(C-1 ).
- the reverse channel 8-(C)R connects from the D unit 4-(D) to the reverse circuit 7-IC-1 ).
- each of the nodes 5 has a feedback connection 9 connecting from the forward (F) circuit 6 to the reverse (R) circuit 7.
- the feedback channels 9-0, 9-1 , ..., 9JC-1 connect from the forward (F) circuits 6 to the reverse (R) circuits 7 in the node 5-0, 5-1 , ..., 5-(C-1 ), respectively.
- a virtual channel connection is made along the forward channel setting up a communication path in the forward direction between the S unit 4-(S) and the D unit 4-(D). Because other virtual channels are also established in the network 1 of FIG. 1 , buffering is required at each node and destination including the nodes of FIG. 3.
- Simple Node Embodiment - FIG. 4 In FIG. 4, one typical embodiment of a node having the signal paths of FIG. 3 is shown. In FIG.
- the node 5 includes N links 1 8-0, 1 8-1 , ... , 1 8-n, ... 1 8JN-1 ).
- Each of the links 1 8 of FIG. 4 are analogous to the bidirectional links 8 of FIG. 2.
- the links 1 8-0, 1 8-1 , ..., 1 8-n, ..., 1 8JN-1 ) connect to port controllers 1 1 -0, 1 1 -1 , ..., 1 1 -n, ..., 1 JN-I).
- the node of FIG. 4 is used in connection with the information transfer of FIG. 3, for example, by having one of the links 1 8, for example, input link 1 8-0 in FIG.
- switch fabric 10 connect through switch fabric 10 to another one of the links 1 8, for example, link 1 8-n.
- the switch fabric 10 functions to connect the link 1 8-0 to the link 1 8-n.
- the link 8-1 in FIG.2 is the link 18-0 in FIG.4
- the link 8-2 in FIG.2 is the link 18-n in FIG.4.
- the node of FIG.4 connects information in one direction, for example, from link 18-0 to link 18-n, and connects information in the opposite direction from the link 18-n to the link 18-0.
- the links 18-0 and 18-n were arbitrarily selected for purposes of explanation. Any of the N links 18 might have been selected in the FIG.2 circuit for connection to any of the other links 18.
- FIG.3 with the source (S) on the left and the destination (D) on the right, then for purposes of explanation it is assumed that the link 18-0 is an input to the node 5 in the forward direction and the link 18-n is output from the node in the forward direction.
- port controllers (PC) 11-0, 11-1, ..., 11-n, ..., 11JN-1) have input controllers 14-0, 14-1, ..., 14-n, ..., 14JN-1), respectively and have output controllers (OC) 15-0, 15-1, ...15-n, ..., 15JN-1), respectively.
- forward information cells from the source 4-S of FIG.3 sent to the destination 4-(D) of FIG.3 connect from the bus 18-01 through the input controller 14-0 to the bus 20-nO through the switch fabric 10 to the bus 20-nl through the controller 15-n to the bus 18-nO.
- the port controllers share a common buffer storage located in shared queuing unit 51 and are bidirectionally connected to unit 51 over buses 41- 0, 41-41-n, ..., 41JN-1). Queuing -Unit - FIG.5
- the queuing unit 51 includes a data queue unit 52 and a queue control unit 53.
- the data queue unit 52 and the queue control unit 53 each connect to the bidirectional buses 41-0, 41-1, ..., 41 -n ....41JN-1).
- the control information on the buses 41 connect to the queue control unit 53 and the data on the buses 41 connect to the data queue unit 52.
- the queue control unit 53 includes a queue manager 54 which controls data queue unit 52 and the overall operation of the queueing unit 51 .
- the queue manager typically includes a processing unit capable of executing software.
- the queue manager 54 Upon detection that input information on the buses 41 requires storage in the data queue unit 52, the queue manager 54 detects an available buffer location from the free buffer list unit 59 and assigns the available data location in the data queue unit 52.
- the general function and operation of queue managers are well known. In addition to queuing, and in order to operate with the methods of the present invention, certain cells may need to be discarded from time to time to promote efficient operation of the overall communication network.
- the discard unit 55 under control of the queue manager 54 determines when to discard queue assignments previously allocated.
- the results of the queuing operation are stored in the per port queue unit 56, which in turn activates the de-queue unit 57, which in turn operates through the multicast server 58 to remove buffer locations that have been previously allocated. Once removed, the de-queued buffer locations are added back to the free buffer list in the unit 59 and are available for reassignment.
- Discard Unit 55 The discard unit 55 is composed of three units, FIFO unit 61 (including sub-units 61 -1 and 61 -2), discard unit 62, and pointer integrity unit 63. Discard unit 55 is responsible for:
- QoS Quality of Service
- Pointer integrity verification verify that no pointer duplication occurs).
- VCs virtual channels
- RT- VBR RT- VBR
- NRT-VBR NRT-VBR
- ABR and GFR traffic are policed only for the peak cell rate and not for the average and UBR is not policed at all.
- COS Class of Service
- various mechanisms are used to prevent delinquent ABR, GFR, or UBR sources (traffic contract violators) from filling the buffer pool, ultimately degrading the quality of other, better-behaved connections.
- a certain amount of buffering is reserved for the guaranteed traffic that cannot be used by non-guaranteed traffic.
- the exact amount to be reserved is found by adding the buffering needed by every CBR and VBR connection source. This reservation method implies that the number of ABR, GFR, and UBR cells present in the shared buffer is accounted for and that, when all the available buffer space has been used, any additional ABR, GFR, or UBR cells are dropped.
- non- guaranteed traffic does not cause loss of guaranteed traffic.
- This fair discard method discards traffic at a particular maximum rate per cell for a given maximum en-queuing rate in FIFO unit 61 of FIG. 5. If a specified size cell margin is reserved for the guaranteed traffic, it would take a proportional burst of non-guaranteed traffic coming from all ports at line rate to start affecting the guaranteed traffic. Such a burst of non- guaranteed traffic is not probable so that, as a practical matter, the fair discard mechanism is sufficient by itself. Additionally, use of an almost empty flag to indicate when the free buffer list is almost exhausted is used in a preferred embodiment as a "hard" limit against non-guaranteed traffic when major congestion occurs.
- the fair discard method employed in the common buffer pool provides efficient usage of the available buffering space and guarantees some protection between all of the sources.
- a dynamic threshold is changed as a function of the total number of cells queued, the estimated offered load of the source, and the total number of connections established within a given class of service.
- Each VP/VC connection source has its own cell counter. When a cell is received, the decision to keep the cell or not is made by comparing the number of cells of that connection source present in the shared buffer pool, with the maximum number of cells allowed per connection source, this last number being a function of the total buffer pool utilization at that instant.
- FIG. 6 The principle of the dynamic method of the present invention is represented in FIG. 6.
- the horizontal axis represents the total number of cells buffered
- the vertical axis represents the number of cells that can be buffered per connection source
- the gray shaded area represents the region where cells are kept. Since the discard function data is maintained in random access memory it is easy to modify, according to the traffic distribution. Different discard functions can be used for every type of bit, COS, QoS, CLR, CLP bits, for example.
- this dynamic discard method also establishes fairness between the UBR connection sources.
- each one attempts to get as much bandwidth as possible. The net effect of this attempt is to slowly fill the buffer.
- the maximum amount of buffering per connection source is decreased.
- the connection sources buffering cells at a level closest to their individual fair weighting are the first to be dropped and, eventually, the number of cells buffered for every UBR or GFR connection source within a given weight tends to become uniform.
- ABR control loops insure that the average bandwidth of all the connection sources is less dm the available bandwidth.
- FIFOs 61 -1 and 61 -2 in unit 61 When both FIFOs 61 -1 and 61 -2 contain data, the highest priority FIFO 61 -1 is always dequeued first. In one embodiment, within a period of 100nS, the cell discard mechanism reads the cell pointer and descriptor and decides if the cell is to be dropped or passed to the queue.
- the cell counter for its connection source and the total cell counter for all sources are incremented.
- the corresponding cell counter and total cell counter remain unchanged.
- the corresponding cell counter for that connection source and the total cell counter for all sources are both decremented. Per sub-class discard threshold.
- Different discard threshold functions can be used by the dynamic discard method to provide control over the cell loss ratio (CLR). Since the discard threshold is a function of the total cells buffered (of all types), the exact statistical relation between the total amount of cells buffered, the discard threshold, and the CLR is generally non-deterministic (unless the amount of traffic for every class is limited to known values). As a consequence, the discard threshold function in general does not guarantee a specific CLR. It does, however, control the relative behavior of the CLR between different sub-classes within a particular class. Having different discard thresholds is particularly useful for non-guaranteed traffic like ABR, GFR, and UBR as it can be used to control the relative behavior of the CLR between different sub-classes within a particular class.
- the CAC bit controls the amount of VBR traffic allowed in order to insure a Cell Loss Ration (CLR) approaching zero.
- CLR Cell Loss Ration
- the expected amount of buffering is always expected to be low so that multiple CBR discard thresholds are not useful.
- multiple discard thresholds are employed for RT-VBR connections in order to support both Cell Loss Priority (CLP)-transparent and CLP-nontransparent services.
- the congestion indication is obtained with operations analogous to the fair discard operations.
- a set of curves describes whether or not a connection source has reached the congestion level.
- the dequeue mechanism gets the congestion state of the corresponding connection source from the fair discard subsystem and sets the EFCI output bit accordingly.
- FIG. 7 represents the congestion indication values analogous to the FIG. 6 fair discard values.
- This packet discard function is implemented in the dynamic discard method of the present invention.
- ATM Adaptation Layer type 5 AAL5
- the connection source has passed the congestion indication threshold, but not yet reached the discard threshold, only complete frames are discarded.
- the discard threshold is passed, all the cells are dropped, regardless of their position in the frame.
- a flag is set to indicate that the remaining cells of the frame are to be discarded, regardless of the congestion level, until the last cell of the frame.
- FIG. 8 one schematic embodiment of the fair discard Unit 55 of FIG. 5 is shown along with a per connection congestion detection structure and flow.
- the three up/down counters 81 count the number of cells which are queued (up for enqueue, down for dequeue) for all sources of each class of service.
- the values from the up/down counters 81 are the total cell count per class of service in the buffer and are used as input into RAM 85 for obtaining the fair discard value and into the RAM 86 for obtaining the congestion indication value.
- RAM 87 stores a cell count for each cell source as a function of the cell source's connection number and provides an output N that is updated for each cell en-queued or dequeued.
- RAM 85 provides an output value representative of the Y axis based on the X axis input from one of the up/down counters 81 , as described in connection with FIG. 6.
- the output value is then compared in comparator 83 with the number N of cells buffer for the connection for a particular cell source obtained from RAM 87.
- the per source value of N is compared in comparator 83 with the Y-axis output from RAM 85 to provide the keep or discard signal for the fair discard method.
- the output N is also compared with the value from the y axis from the RAM memory 86 in comparator 84 to form a congestion indication if N is less than Y from memory 86.
- FIG. 9 there is provided a curve illustrating the four relevant parameters for making discard decisions according to the method and system of the present invention, including: the maximum number of cells allowed in a buffer for a connection at any given cell time; the number of established connections for a given CoS; the number of cell buffers guaranteed to a connection when operating under load; and the maximum number of cells allowed in the buffer for the corresponding CoS.
- Point 9-1 represents the y-axis maxima, preferably a function of traffic arrival intensity.
- cellRate comprises either the peak cell rate, or some value between the sustained and peak rates (e.g., the calculated equivalent capacity for VBR connections).
- egressRate represents the slowest physical port rate found on the MSU - a worst case loading scenario.
- Point 9-2 where the curve slope becomes negative, is applicable to curves in which the discarding of cells, due to congestion, is acceptable.
- CBR cells and CLP(O) cell flows of VBR connections (or CLP(0 + 1 ) of VBR.1 connections)
- discarding toe to congestion is undesirable (due to the CLR objectives).
- a negative slope (point 2) is appropriate, although the degree of slope will vary.
- the position of point 9-2 on the curve is best estimated by the number of connections generating the aggregate buffer load (per CoS), since the probability of congestion increases in relation to the number of connections admitted. Due to the general inability of available hardware to track the number of active connections, one embodiment simply look to the number of established connections as an approximation. In an adaptive curve management embodiment, the actual number of connections per MSU is tracked as the connections are established.
- Point 9-3 is particularly relevant to ABR connections, where it relates to the minimum cell rate. Of course, cells at or below the minimum cell rate should be provided some pre-determined loss guarantees. Thus, the "knee" in the discard curve of FIG. 9 at point 9-3 is particularly relevant for any service which allows guaranteed buffer space under load for a given connection (e.g., Guaranteed Frame Rate GFR). Point 9-2 can also be defined by substituting MCR for the term cellRate in equation (1 ).
- the greatest x- axis value for point 9-4 represents the shared buffer partition for that CoS, providing guaranteed buffer space for traffic having CLR objections.
- a static mode method of curve generation will estimate the shared buffer partitions based on the user-defined configuration values of each port found on the MSU.
- An adaptive mode of curve management will adjust these partition dynamically, adapting to the modulating call-level load.
- FIG. 10 further details of the pointer verification unit 63 of FIG. 5 are shown.
- the verification unit 63 is useful since parity detectors used to verify the integrity of cell descriptors are useless to detect problems like duplicated pointers, which could cause queues to merge together.
- the verification unit 63 detects duplicated pointers by monitoring and updating a set of "pointer in use” flags every time a pointer enters or leaves the queuing system. When a pointer is enqueued, the verification system first checks that the "in use" flag for that pointer is cleared in a pointer table 91 and then sets it.
- the verification system confirms that the "in use" flag of the dequeued pointer is set in table 91 and then clears it. Any error detected is immediately signaled to the main CPU (queue manager 54) with a CPI interrupt request (IRQ).
- IRQ CPI interrupt request
- the CPU initially performs a memory initialization on each of the RAM memory units: discard threshold memory; per connection cell count memory; and per connection cell dropped memory.
- the CPU then clears all the count memories and programs the various discard and congestion thresholds, and the three COS cell counters used in the discard subsystem are cleared. Reading the first counter returns the combined number of CBR and VBR cells buffered, the second counter returns the number of ABR cells and the third the number of UBR cells. The total number of cells queued is equal to the sum of the three counters.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU52934/00A AU5293400A (en) | 1999-05-28 | 2000-05-26 | Fair discard system |
EP00937811A EP1183900A1 (en) | 1999-05-28 | 2000-05-26 | Fair discard system |
IL14676600A IL146766A0 (en) | 1999-05-28 | 2000-05-26 | Fair discard system |
JP2001500600A JP4395280B2 (en) | 1999-05-28 | 2000-05-26 | Fair disposal system |
IL146766A IL146766A (en) | 1999-05-28 | 2001-11-27 | Fair discard system |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13695399P | 1999-05-28 | 1999-05-28 | |
US60/136,953 | 1999-05-28 | ||
US09/505,075 | 2000-02-16 | ||
US09/505,075 US6717912B1 (en) | 1999-05-28 | 2000-02-16 | Fair discard system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000074432A1 true WO2000074432A1 (en) | 2000-12-07 |
Family
ID=26834773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/014535 WO2000074432A1 (en) | 1999-05-28 | 2000-05-26 | Fair discard system |
Country Status (6)
Country | Link |
---|---|
US (1) | US6717912B1 (en) |
EP (1) | EP1183900A1 (en) |
JP (1) | JP4395280B2 (en) |
AU (1) | AU5293400A (en) |
IL (2) | IL146766A0 (en) |
WO (1) | WO2000074432A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2827996A1 (en) * | 2001-07-27 | 2003-01-31 | Canon Kk | Method and device for controlling a memory store comprising at least one First-In First-Out (FIFO) memory of variable size |
FR2827995A1 (en) * | 2001-07-27 | 2003-01-31 | Canon Kk | Method and device for controlling a memory store of type First-In First-Out (FIFO) |
EP1322074A1 (en) * | 2001-12-20 | 2003-06-25 | Siemens Aktiengesellschaft | Method of fair queueing of data packets |
WO2003056766A1 (en) * | 2001-12-28 | 2003-07-10 | Nokia Corporation | Packet scheduling method and apparatus |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7016301B1 (en) * | 1999-09-01 | 2006-03-21 | Cisco Technology, Inc. | Fair multiplexing scheme for multiple input port router |
US6744767B1 (en) * | 1999-12-30 | 2004-06-01 | At&T Corp. | Method and apparatus for provisioning and monitoring internet protocol quality of service |
JP3766259B2 (en) * | 2000-06-01 | 2006-04-12 | 株式会社日立製作所 | Packet transfer device |
FI109855B (en) * | 2000-08-25 | 2002-10-15 | Nokia Corp | Data stream filtering in a telecommunications network |
JP2002330166A (en) * | 2001-04-26 | 2002-11-15 | Fujitsu Ltd | Communication device and communication control method |
US6901593B2 (en) * | 2001-05-08 | 2005-05-31 | Nortel Networks Limited | Active queue management with flow proportional buffering |
US7215639B2 (en) * | 2001-08-31 | 2007-05-08 | 4198638 Canada Inc. | Congestion management for packet routers |
US20040179476A1 (en) * | 2003-03-10 | 2004-09-16 | Sung-Ha Kim | Apparatus and method for controlling a traffic switching operation based on a service class in an ethernet-based network |
US7420983B2 (en) * | 2003-03-13 | 2008-09-02 | Alcatel Lucent | Dynamic assignment of re-assembly queues |
US7974275B2 (en) * | 2004-01-09 | 2011-07-05 | Broadcom Corporation | Saturated datagram aging mechanism |
KR100736036B1 (en) * | 2005-06-16 | 2007-07-06 | 삼성전자주식회사 | Apparatus and method for providing QoS of AV stream |
CN100405786C (en) * | 2005-12-09 | 2008-07-23 | 清华大学 | Sharing cache dynamic threshold early drop device for supporting multi queue |
US8077610B1 (en) * | 2006-02-22 | 2011-12-13 | Marvell Israel (M.I.S.L) Ltd. | Memory architecture for high speed network devices |
US7773616B2 (en) * | 2006-11-08 | 2010-08-10 | Sicortex, Inc. | System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel |
US7773617B2 (en) * | 2006-11-08 | 2010-08-10 | Sicortex, Inc. | System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system |
US20080175152A1 (en) * | 2006-12-28 | 2008-07-24 | Nokia Corporation | Service differentiating and overload indication for downlink |
US8681807B1 (en) | 2007-05-09 | 2014-03-25 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for switch port memory allocation |
US7562168B1 (en) | 2008-05-29 | 2009-07-14 | International Business Machines Corporation | Method of optimizing buffer usage of virtual channels of a physical communication link and apparatuses for performing the same |
JP5673057B2 (en) * | 2010-12-10 | 2015-02-18 | 富士通株式会社 | Congestion control program, information processing apparatus, and congestion control method |
US8995265B2 (en) | 2012-01-28 | 2015-03-31 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Monitoring endpoint buffer occupancy to determine congestion in an ethernet network |
US10608943B2 (en) * | 2017-10-27 | 2020-03-31 | Advanced Micro Devices, Inc. | Dynamic buffer management in multi-client token flow control routers |
US11151150B2 (en) * | 2019-09-13 | 2021-10-19 | Salesforce.Com, Inc. | Adjustable connection pool mechanism |
US11636067B2 (en) | 2019-10-04 | 2023-04-25 | Salesforce.Com, Inc. | Performance measurement mechanism |
US11165857B2 (en) | 2019-10-23 | 2021-11-02 | Salesforce.Com, Inc. | Connection pool anomaly detection mechanism |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5457687A (en) * | 1993-09-02 | 1995-10-10 | Network Equipment Technologies, Inc. | Method and apparatus for backward explicit congestion notification (BECN) in an ATM network |
WO1997043869A1 (en) * | 1996-05-15 | 1997-11-20 | Cisco Technology, Inc. | Method and apparatus for per traffic flow buffer management |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546391A (en) * | 1993-03-04 | 1996-08-13 | International Business Machines Corporation | Central shared queue based time multiplexed packet switch with deadlock avoidance |
US5926459A (en) | 1996-06-27 | 1999-07-20 | Xerox Corporation | Rate shaping in per-flow queued routing mechanisms for available bit rate service |
US5912889A (en) | 1996-11-21 | 1999-06-15 | Xerox Corporation | ATM switch with output port clustering for dynamically allocating bandwidth between ports |
US6490251B2 (en) * | 1997-04-14 | 2002-12-03 | Nortel Networks Limited | Method and apparatus for communicating congestion information among different protocol layers between networks |
-
2000
- 2000-02-16 US US09/505,075 patent/US6717912B1/en not_active Expired - Lifetime
- 2000-05-26 WO PCT/US2000/014535 patent/WO2000074432A1/en not_active Application Discontinuation
- 2000-05-26 JP JP2001500600A patent/JP4395280B2/en not_active Expired - Lifetime
- 2000-05-26 EP EP00937811A patent/EP1183900A1/en not_active Withdrawn
- 2000-05-26 IL IL14676600A patent/IL146766A0/en active IP Right Grant
- 2000-05-26 AU AU52934/00A patent/AU5293400A/en not_active Abandoned
-
2001
- 2001-11-27 IL IL146766A patent/IL146766A/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5457687A (en) * | 1993-09-02 | 1995-10-10 | Network Equipment Technologies, Inc. | Method and apparatus for backward explicit congestion notification (BECN) in an ATM network |
WO1997043869A1 (en) * | 1996-05-15 | 1997-11-20 | Cisco Technology, Inc. | Method and apparatus for per traffic flow buffer management |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2827996A1 (en) * | 2001-07-27 | 2003-01-31 | Canon Kk | Method and device for controlling a memory store comprising at least one First-In First-Out (FIFO) memory of variable size |
FR2827995A1 (en) * | 2001-07-27 | 2003-01-31 | Canon Kk | Method and device for controlling a memory store of type First-In First-Out (FIFO) |
EP1322074A1 (en) * | 2001-12-20 | 2003-06-25 | Siemens Aktiengesellschaft | Method of fair queueing of data packets |
WO2003056766A1 (en) * | 2001-12-28 | 2003-07-10 | Nokia Corporation | Packet scheduling method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
US6717912B1 (en) | 2004-04-06 |
EP1183900A1 (en) | 2002-03-06 |
IL146766A (en) | 2006-12-31 |
IL146766A0 (en) | 2002-07-25 |
AU5293400A (en) | 2000-12-18 |
JP2003501912A (en) | 2003-01-14 |
JP4395280B2 (en) | 2010-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6717912B1 (en) | Fair discard system | |
US5629928A (en) | Dynamic fair queuing to support best effort traffic in an ATM network | |
KR100293920B1 (en) | Apparatus and method for controlling traffic of atm user network interface | |
US6151301A (en) | ATM architecture and switching element | |
US5583861A (en) | ATM switching element and method having independently accessible cell memories | |
CA2271883C (en) | Many dimensional congestion detection system and method | |
US5953318A (en) | Distributed telecommunications switching system and method | |
US6754206B1 (en) | Distributed telecommunications switching system and method | |
US6205118B1 (en) | Adaptive time slot scheduling apparatus and method for end-points in an ATM network | |
US6377583B1 (en) | Rate shaping in per-flow output queued routing mechanisms for unspecified bit rate service | |
JP3088464B2 (en) | ATM network bandwidth management and access control | |
US6768717B1 (en) | Apparatus and method for traffic shaping in a network switch | |
JP4652494B2 (en) | Flow control method in ATM switch of distributed configuration | |
US6246687B1 (en) | Network switching system supporting guaranteed data rates | |
Saito | Dynamic resource allocation in ATM networks | |
EP0973304A2 (en) | Apparatus and method for bandwidth management | |
EP0817433A2 (en) | Packet switched communication system and traffic shaping process | |
Blau et al. | AXD 301: A new generation ATM switching system | |
Cisco | ATM Connections | |
EP0817432B1 (en) | A packet switched communication system | |
Katevenis et al. | Multi-queue management and scheduling for improved QoS in communication networks | |
EP0817434A2 (en) | A packet switched communication system and traffic shaping process | |
JP4504606B2 (en) | Apparatus and method for shaping traffic in a network switch | |
Lorenz et al. | Cell–by–Cell Round Robin Service Discipline for ATM Networks | |
Pao et al. | Cell scheduling for ATM switch with delay-sensitive and loss-sensitive traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ CZ DE DE DK DK DM DZ EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR 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 SK SL TJ TM TR TT TZ UA UG 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 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) | ||
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 2001 500600 Kind code of ref document: A Format of ref document f/p: F |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2000937811 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2000937811 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2000937811 Country of ref document: EP |