Patent Publication Number: US-5898671-A

Title: Transmitter controlled flow control for buffer allocation in wide area ATM networks

Description:
RELATED CASE INFORMATION 
     Priority is claimed to U.S. Provisional Application Ser. No. 60/003,761, entitled COMMUNICATION METHOD AND APPARATUS, filed Sep. 14, 1995. 
    
    
     FIELD OF THE INVENTION 
     The present invention is related to ATM network switches, and more particularly to a technique for implementing flow control in a wide area ATM network to allow reduced buffer size while assuring no cell loss. 
     BACKGROUND OF THE INVENTION 
     Flow control is required for Asynchronous Transfer Mode (&#34;ATM&#34;) networks which provide best effort type service such as Available Bit Rate (&#34;ABR&#34;) service. An ABR connection competes for shared buffers with a number of other connections, and consequently no single ABR connection is typically guaranteed a particular amount of buffer space. It is therefore important to have knowledge of how many buffers are available in order to control flow such that the buffers do not overflow. If the number of cells transmitted exceeds the number of available buffers, some cells will be lost. 
     It is known to reduce the possibility of cell loss by providing feedback from a receiving switch to a transmitting switch to indicate how many buffers are available in the receiving switch. In such a system the delay between the time at which the transmitter sends a cell and a complementary feedback message can be received by the transmitter, i.e., the round trip time (&#34;RTT&#34;) between transmitter and receiver, becomes a factor in determining minimum buffer size for allowing efficient utilization of network trunks. More particularly, for a link of N flows and bandwidth B, the buffer may be sized to be the product of N, B and RTT, which is large enough for a &#34;worst case scenario.&#34; 
     Such buffer sizing techniques become problematic, however, in the case of Wide Area Networks (&#34;WANs&#34;). Because of the larger physical distances covered by WANs, RTT becomes relatively large in WAN implementations, e.g., approximately 50 msec for the case of eastern United States and western United States. The buffer sizing using the &#34;worst case scenario&#34; dictates a buffer size (N×B×RTT) which is impractically large for such values of RTT. 
     The worst case scenario buffer size can be reduced by forwarding information from the receiver to the transmitter regarding availability and usage of buffers, and permitting transmissions from the transmitter to the receiver based upon such feedback information. However, in such a system in which transmissions are permitted based solely upon such feedback information from the receiver, undesirable oscillations in buffer utilization may occur due to the latency associated with the feedback information. Additionally, such latency can result in overallocation of buffers or underallocation of buffers. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention, allocation of buffers in a receiver switch is controlled by a transmitter switch. Control within the transmitter switch is executed according to an allocation technique which both avoids cell loss and allows use of buffers of practical size in the receiver switch. The receiver switch periodically transmits feedback messages to the transmitter switch indicative of the state of fullness of buffers in the receiver switch. Such feedback messages could contain, for example, the number of available buffers, the number of cells held for each connection, or the number of buffers freed. The transmitter switch maintains a record of the number of cells transmitted to the receiver in a previous time period, typically since the last feedback message was generated in the receiver and sent to the transmitter. The transmitter switch then calculates an updated receiver buffer state and transmits cells accordingly. The updated receiver buffer state is calculated based upon the latest feedback message and the number of cells transmitted from the transmitter switch to the receiver switch since the latest feedback message was generated in the receiver, as indicated by the record in the transmitter switch. The transmitter thus calculates maximum buffer fullness, not accounting for draining which may have occurred since the latest feedback message was generated. 
     Once the updated receiver buffer state is calculated, transmission of cells from the transmitter switch to the receiver switch is controlled in the transmitter switch based upon an allocation technique. The technique may be a roll-off technique in which the number of buffers available to each flow in the transmitter switch is reduced as the updated receiver buffer state is calculated to be more full. Each flow may be more aggressively reduced as the updated receiver buffer state is calculated to be more full in order to compensate for feedback delay and stale information regarding receiver buffer drainage. In the above described manner, allocation of buffers in the receiver switch is controlled by the transmitter switch. 
     The transmitter controlled flow control technique permits fast ramp-up for new flows or previously quiescent flows, and allows lossless operation with a reduced receiver buffer size in WANs. Since receiver buffer fullness is not accurately represented by the feedback message due to information staleness, the transmitter switch determines how many cells may be sent to the receiver switch based upon more accurate information available only at the transmitter. Such information obviates the need for the worst case size receiver buffer employed in some prior art networks. Further, buffer usage oscillations can be controlled by operating according to progressively more conservative fullness calculations in accordance with the roll-off technique. 
     As the receiver buffer becomes more full, progressive roll-off provides better performance for a given buffer size. More particularly, for a given buffer size and RTT, as the number of supported connections increases, there is no discontinuity in performance. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     The invention will be more fully understood in view of the following detailed description in conjunction with the drawing in which: 
     FIG. 1 illustrates a portion of a WAN wherein transmitter switch control of receiver resources is implemented; 
     FIG. 2 illustrates a technique for controlling transmission of cells from the transmitter switch of FIG. 1; 
     FIG. 3 illustrates an alternative technique for controlling transmission of cells from the transmitter switch; 
     FIG. 4 illustrates the organization of a table and a zone pointer employed to implement the technique illustrated in FIG. 2; and 
     FIG. 5 illustrates another alternative technique for controling transmission of cells from the transmitter switch of FIG. 1. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 illustrates an Asynchronous Transfer Mode (&#34;ATM&#34;) network in which allocation of buffer resources in a receiving switch 10 is controlled by a transmitting switch 12. The transmitting switch and the receiving switch are in communication via a connecting link 14 of bandwidth &#34;B&#34; through which data cells 16 are sent from the transmitting switch to the receiving switch while traveling from source 18 to destination 20 within the network. Cells in a connection between the source and the destination travel within a flow 22, and the link may include a plurality of flows. Each received data cell is temporarily placed in a buffer pool 24 (the state of fullness of which is shown as viewed from the perspective of the transmitter) upon entering the receiving switch. The data cell may then be transmitted from the receiving switch to another switch through another flow and another link. As such, the data cell travels from the source to the destination through a plurality of switches and interconnecting links. 
     To support switch flow control each switch includes an allocation controller 26 and a feedback controller 28, each buffer pool 24 is divided into a plurality of zones 30, and each flow is associated with a virtual buffer 32 according to which zone 30 is active. The feedback controller 28 of the receiving switch functions to provide feedback data to the allocation controller of the transmitting switch. The feedback data includes a credit cell which indicates the state of fullness of the buffer pool. Such credit cell could contain, for example, the number of available buffers, the number of cells held for each connection, and the number of buffers freed. The zones of the buffer pool fill and drain sequentially, and hence the feedback data is also indicative of which zone is actively being utilized. Knowledge of any zone structures need be maintained only in the transmitter switch. The allocation controller in the transmitter switch maintains a record of the number of cells transmitted to the receiver over a previous time period, typically since the latest feedback message was generated in the receiver and sent to the transmitter by the receiver. When the feedback message is received, the allocation controller calculates an updated receiver buffer state which indicates the state of the receiver buffer when cells transmitted to the receiver from the transmitter since the feedback data was generated are taken into account. The updated receiver buffer state is calculated based upon the feedback message and the number of cells transmitted from the transmitter switch to the receiver switch since the feedback message was sent as indicated by the record maintained by the allocation controller. The allocation controller then implements a buffer allocation technique based upon the updated state information. These techniques are applicable to all connections within the link, and to the link itself. 
     Referring now to FIGS. 1 and 2, the allocation technique may be a roll-off technique which decreases arithmetically, geometrically or otherwise such that the change in the maximum number of data cells that can be transmitted divided by the change in buffer fullness, i.e., the slope, decreases as buffer fullness increases. The zones 30 represent in the transmitter the portion of the physical buffer 24 in the receiver currently holding unforwarded cells. As cells are received in the physical buffer, buffer occupancy crosses thresholds (t 1 , t 2 , t 3  etc.), moving into successively more restrictive zones wherein each flow has a successively smaller virtual buffer (l 1 , l 2 , l 3  etc.) such that the absolute magnitude of (l i  -l i+1 )/(t i  -t i+1 ) is greater than the absolute magnitude of (l i+1  -l i+2 )/(t i+1  -t i+2 ). When cells drain out of the physical buffer, occupancy crosses thresholds in the opposite direction, moving into successively more permissive zones wherein each flow has a successively larger virtual buffer. The roll-off technique is thus credit based rather than rate based, and although the average rate of an individual flow has a ceiling imposed thereon, the flow can burst at the full link bandwidth. 
     In an exemplary roll-off technique a set of N flows share the link between the transmitter switch and the receiver switch. Each time the receiver switch 10 has forwarded &#34;N2&#34; cells, where N2 is a positive integer, a feedback message may be transmitted from the receiver switch to the transmitter switch indicating the fullness of the receiver switch buffer 24. The receiver switch buffer is divided, for example, into eight zones: Z(0), Z(1), Z(2), Z(3), Z(4), Z(5), Z(6), Z(7). The zones decrease in size by a linear, geometric or similar progression such that the sum of the zones has a reasonable upper bound which is a small integer multiple of a value &#34;N3.&#34; A round trip delay (&#34;RTT&#34;) is defined to be the delay between the time at which the transmitter sends a cell and a complementary feedback message can be received by the transmitter. Letting &#34;N3max&#34; be the maximum N3 value used, such as the full link rate times the round trip delay (B×RTT), and letting, for example, Z(0)=2×N3max with each successive Z(i) geometrically reduced by 7/8: Z(1)=7/8×2×N3max, Z(2)=(7/8) 2  ×2×N3max, Z(3)=(7/8) 3  ×2×N3max, and so on such that ΣZ(i)=8×2×N3max. Hence, the size of each zone is the product of a reduction factor and 2×B×RTT. 
     In an alternative embodiment zone size is based on a larger multiple of B×RTT. When a given zone 30 becomes half full, for example when Z(0) contains N3max cells, the receiver switch 10 modifies the feedback message to provide only 7/8 as much credit. When the physical buffer 24 drains down to a beginning edge of a zone 30, the receiver switch modifies the feedback message to provide 8/7 as much credit. Such thresholds provide a hysteresis mechanism. When the physical buffer is in the Z(0) zone, the switch operates in standard fashion. However, when the receiver switch moves into zone Z(1) credit updates sent to any flow contain a MinC value (current zone&#39;s ceiling), rather than a &#34;C&#34; value (C=number of free cells per flow, which is ≦N2+N3max). In such a case the receiver is in zone Z(1), and the ceiling is N2+7/8×N3max, so the credit ceiling is lowered by a factor of 7/8. 
     In order to assure that quiescent flows, i.e., those flows which are not sending and not getting credit updates every N2 cell times, adjust to changes in the credit ceiling, all flows receive credit updates. However, such credit updates may be provided as background updates at a frequency less than every N2 cell times, e.g., every K×N2 cell times, and these background updates may be staggered in order to smooth the processing load. Thus, the transmitter switch updates its credit count based on the last value received in the credit cell. The receiver switch also sends the credit update, given that the flow is actually draining. 
     This quiescent flow technique presents one complication since the receiver switch may cross a zone boundary at the same time as the transmitter receives feedback for a particular quiescent flow. If the receive buffer is filling up, a quiescent flow that then starts sending may have an estimate of the credits available that is temporarily high, and if the receive buffer is draining the flow may have an estimate that is temporarily low. However these differences are temporary since credit updates are periodically sent on all flows regardless of whether the flow is draining or not. Hence, within about K×N2 cell times any flow should be current. 
     Referring to FIG. 3, in an alternative embodiment the zones decrease geometrically based upon a different reduction factor. More particularly, through roll-off each successive zone Z(i) is successively reduced as: Z(0)=2×N3max, Z(1)=1/2×2×N3max, Z(2)=1/4×2×N3max, Z(3)=1/8×2×N3max, Z(4)=1/16×2×N3max, and so on such that ΣZ(i)=2×2×N3max. Other zone sizing techniques and reduction factors may also be implemented as will be apparent to those skilled in the art to achieve desired performance characteristics. Further, although models with discreet zones have been illustrated, it would be possible to implement a single zone which changes continuously with fullness. 
     To avoid a deadlock condition, an additional check may be implemented. More particularly, if the sum of the buffer usage by the connections exceeds a threshold 50, then the transmitter enters a &#34;halt &amp; go&#34; mode in which each &#34;protected&#34; connection can transmit up to a fixed number of cells (k), and must wait for feedback before further transmitting. This check is implemented in addition to the control described above. Thus, a connection with a limit less than k does not receive a net buffer gain as a result of buffer usage exceeding the threshold. 
     As shown in FIGS. 1 and 4, the zones can be table driven, with each switch including a table 40. Each table includes entries which contain limits defining the beginning and ending points of the respective zones. In the present embodiment the limits are selected such that subsequent zones are progressively smaller. The table is indexed by a zone pointer which indicates the active zone. Table entries are predetermined when the network is configured, but the tables are preferably reconfigurable to allow for network reconfiguration and fine tuning. 
     Given the following data structures and definitions, buffers are allocated in accordance with the pseudocode below: 
     
         ______________________________________
BLT i,p!: Buffer Limit Table Arrays
where i = index, p = profile
Index i!: Index Array
where i = connection ID and Index i! has an integer
        value that may be increased or
        decreased as required
BAPQ: Buffer Access Priority Queue
Deficit c!: Deficit Array
        where c = connection ID
BSU: Buffer State Update
BFS: Buffer free space
B.sub.-- Max: Buffer space available
TX.sub.-- i: Cells transmitted for connection i
Fwd.sub.-- i: Cells forwarded by receiver for connection i
N: Upper bound on the value of the Index Array
where N represents the Number of Zones - 1 that the
          shared buffer is divided into.
Deficit i!: Deficit, a positive integer that starts at
          zero and may be incremented and
          decremented
N2: Receiver sends a new update upon receipt of N2
          cells
RTT: Round Trip Travel Time of Link
B: Bandwidth of Link
N3: B*RTT
Management
Buffer free space is calculated as:
BFS = B.sub.-- Max - Sum .sub.over 1 connections (TX.sub.-- i
- Fwd&#39;.sub.-- i)
where Fwd&#39;.sub.-- i is the most recent value of Fwd.sub.-- i supplied
          by receiver to transmitter
Index is calculated as:
Index i! = least integer containing (N*(TX.sub.-- i - Fwd&#39;.sub.--
i)/B.sub.-- Max)
Buffer Usage Control
If (TX.sub.-- i - Fwd&#39;.sub.-- i) &lt; BLT i,p!
THEN IF technique prevents transmission based on prior
          usage, e.g., Deficit i! &gt; 0
THEN record transmitter-local technique
information, e.g., decrement
          Deficit i!
Insert this request in BAPQ at priority =
          Deficit i!
Allow transmission from top of BAPQ
ELSE allow transmission for this request, based on
prior usage, e.g., when Deficit i! = 0)
ELSE record transmitter-local technique information,
e.g., increment Deficit i!
Pool Apportioning
IF a new connection arrives
THEN B.sub.-- Max = B.sub.-- Max + N2
Increase the indices to provide more conservative
              operation if needed
Note: It may not be possible to accept the connection if
              indices cannot be
              increased
If a connection leaves
THEN B.sub.-- Max = B.sub.-- Max - N2
Decrease the indices to provide more aggressive
              operation if desired
Deadlock Avoidance
IF Sum .sub.over 1 connections (Tx.sub.-- l- Fwd&#39;.sub.-- l) &gt; B.sub.--
Max
THEN go into Halt-and-Go mode, where a connection can
          transmit only a bounded number
          of cells (k) and must wait for
          additional BSUs before further
          transmission
Note: This check is in addition to BLT controls
______________________________________
 
    
     With regard to the pseudocode, Tx --  Count and Fwd --  Count are maintained in free running counters and hence the flow control technique is tolerant to loss of control information. More particularly, Fwd --  Count is maintained in a free running counter in the receiver and is incremented each time a buffer is freed, and Tx --  Count is maintained in a free running counter in the transmitter and is incremented each time a cell is transmitted. The difference, Tx --  Count-Fwd --  Count, can then be compared to a limit for implementation of the flow control technique without requiring knowledge of when the credit cell was generated in the receiver. 
     Referring to FIG. 5, in an alternative embodiment the roll-off technique encompasses the broad class of functions to limit buffer size. There exists adjacent intervals &#34;i&#34; and &#34;j&#34;, where interval &#34;i&#34; contains one or more lower-numbered zones, and interval &#34;j&#34; contains one or more higher-numbered zones, such that the average reduction in limits over interval &#34;i&#34; is greater than the average reduction in limits over the interval &#34;j&#34;. That is, the absolute magnitude of &#34;slope i  &#34; is greater than the absolute magnitude of &#34;slope j  &#34;. 
     It will be understood that various changes and modifications to the above described method and apparatus may be made without departing from the inventive concepts disclosed herein. Accordingly, the present invention is not to be viewed as limited except as by the scope and spirit of the appended claims.