************************************************************************
ATM Forum Document Number: ATM_Forum/98-0406
************************************************************************
TITLE: GFR Implementation Options
************************************************************************
SOURCE: Rohit Goyal, Raj Jain, Sonia Fahmy, Bobby Vandalore
The Ohio State University, Department of Computer and Information Science, 2015 Neil Ave, DL 395, Columbus, OH 43210 Phone: 614-688-4482 {goyal,jain}@cse.wustl.eduThis work is partially sponsored by the NASA Lewis Research Center Under Contract Number NAS3-97198
************************************************************************
DISTRIBUTION: ATM Forum Technical Committee
Traffic Management Working Group
************************************************************************
DATE: July, 1998 (Portland)
************************************************************************
ABSTRACT: Section VII.2 of the baseline text contains two example implementations of the GFR service. Several other GFR implementations have been proposed in the past meetings and in recent literature. This contribution provides text to enhance section VII.2 by providing the various design options for GFR.
************************************************************************
NOTICE: This document has been prepared to assist the ATM Forum. It is offered as a basis for discussion and is not binding on the contributing organization, or on any other member organizations. The material in this document is subject to change in form and content after further study. The contributing organization reserves the right to add, amend or withdraw material contained herein.
************************************************************************
Section VII.2 of the baseline text describes two sample implementations of the GFR service. We propose the following text to be added to modify section VII.2.
The following text should be used a replacement for section VII.2 in the baseline text document:
VII.2 Example Designs and Implementations of the GFR Service
There are three basic design options that can be used by the network to provide the per-VC minimum rate guarantees for GFR -- tagging, buffer management, and queueing:
Table 1 lists the various options available for queuing, buffer management and support for tagged cells. A switch could use any of the available options in each category for its GFR implementation.
Table 1 GFR Options
|
Queuing |
FIFO |
Per-VC |
|
Buffer Management |
Global Threshold (No per-VC accounting) |
Per-VC Threshold (per-VC accounting) |
|
Tag Sensitive Buffer Management |
Supported |
Not Supported |
The following subsections list some sample GFR implementations based on this framework. Section VII.2.1 presents an implementation that uses Per-VC queuing with per-VC thresholds for untagged cells, as well as support for treating tagged cells separately from untagged cells. Section VII.2.2 presents a sample implementation with FIFO queuing and two global thresholds, i.e., it is sensitive to tags, but does not employ per-VC buffer management. Section VII.2.3 describes the Differential Fair Buffer Allocation Policy that uses FIFO queuing, per-VC thresholds and supports tagging by the source or the network.
VII.2.1 GFR Implementation using Weighted Fair Queuing and per-VC accounting
(Unchanged)
VII.2.2 GFR Implementation Using Tagging and FIFO Queue
(Unchanged)
VII.2.3 GFR Implementation Using Differential Fair Buffer Allocation
Differential Fair Buffer Allocation (DFBA) uses the current queue length as an indicator of network load. The scheme tries to maintain an optimal load so that the network is efficiently utilized, yet not congested. In addition to efficient network utilization, DFBA is designed to allocate buffer capacity fairly amongst competing VCs. This allocation is proportional to the MCRs of the respective VCs. The following variables are used by DFBA to fairly allocate buffer space:
DFBA tries to keep the total buffer occupancy (X) between L and H. When X falls below L, the scheme attempts to bring the system to efficient utilization by accepting all incoming packets. When X rises above H, the scheme tries to control congestion by performing EPD. When X is between L and H, DFBA attempts to allocate buffer space in proportional to the MCRs, as determined by the W
i
for each VC. When X is between L and H, the scheme also drops low priority (CLP=1) packets so as to ensure proportional buffer occupancy for CLP=0 packets.
The figure above illustrates the four operating regions of DFBA. The graph shows a plot of the current buffer occupancy X versus the normalized fair buffer occupancy for VC i . If VC i has a weight W i , then its target buffer occupancy should be X*W i /W. Thus, the normalized buffer occupancy of VC i is X i *W/W i . The goal is to keep this normalized occupancy as close to X as possible, as indicated by the solid line in the graph. Region 1 is the underload region, in which the current buffer occupancy is less than the low threshold L. In this case, the scheme tries to improve efficiency. Region 2 is the region with mild congestion because X is above L. As a result, any incoming packets with CLP=1 are dropped. Region 2 also indicates that VC i has a larger buffer occupancy than its fair share (since X i > X*W i /W). As a result, in this region, the scheme drops some incoming CLP=0 packets of VC i , as an indication to the VC that it is using more than its fair share. In region 3, there is mild congestion, but VC i ’s buffer occupancy is below its fair share. As a result, only CLP=1 packets of a VC are dropped when the VC is in region 3. Finally, region 4 indicates severe congestion, and EPD is performed here.
In region 2, the packets of VC i are dropped in a probabilistic manner. This drop behavior is controlled by the parameter Z i , whose value depends on the connection characteristics. This is further discussed below.
The probability for dropping CLP=0 packets from a VC when it is in region 2 depends on several factors. The drop probability has two main components – the fairness component, and the efficiency component. Thus, P{drop} = fn(Fairness component, Efficiency component). The contribution of the fairness component increases as the VC’s buffer occupancy X i increases above its fair share. The drop probability is given by

The parameter a is used to assign appropriate weights to the fairness and efficiency components of the drop probability. Z i allows the scaling of the complete probability function based on per-VC characteristics.
The following DFBA algorithm is executed when the first cell of a frame arrives at the buffer.
BEGIN
IF (X < L) THEN
Accept frame
ELSE IF (X > H) THEN
Drop frame
ELSE IF (L < X < H) AND (X i < X*W i /W)) THEN
Drop CLP1 frame
ELSE IF (L < X < H) AND (X i > X*W i /W)) THEN
Drop CLP1 frame
Drop CLP0 frame with

ENDIF
END
VII.2.4 Evaluation Criteria
(From VII.2.3 in the baseline text document.)