BBN Notes From Lecture 17 on 4/7/97
next previous contents
Complex Leaky Bucket Regulator
(or Token Bucket with Leaky Bucket Regulator)


Last time we discussed the Leaky Token Bucket Regulator and showed how controls the rate (the steady state average) number of cells accepted, while M controls the burst size allowed.

Still, the network may not want the burst allowed in, in consecutive slots.

So, add a Simple Leaky Bucket with leak rate C to the output of the Leaky Token Bucket Regulator:






Flow Regulation in ATM

The Generic Cell Rate Algorithm -- GCRA(I, L)

is used in several ways in ATM Traffic Management. We will discuss these later. First, let explore the mechanism itself.

GCRA has 2 parameters:

The goal of GCRA is to send a cell every I sec subject to an allowed variability of L.

There are 2 versions of GCRA(I, L):
  1. Virtual Scheduling (VS) Version of GCRA

    Define the internal variable TAT = "Theoretical Arrival Time"

    First, assume 1st cell arrives at some time t1 and initialize TAT = t1. Next, given that the nth arrival occurs at time tn, follow the following algorithm:

    • Case I:
        If (tn >= TAT) then
          tn is "compliant";
          TAT = tn + I;
          [next cell is expect at least I after this one]



    • Case II:
        If (TAT > tn >= TAT - L) then
          tn is "compliant";
          TAT = TAT + I;
          [next cell is expect at least I after when this one was expected]



    • Case III:
        If (tn < TAT - L) then
          tn is "non-compliant";
          TAT = TAT (unchanged);
          [next cell is expect at the same time it was before]



    Note: I have moved the (tn = TAT - L) case from Case III to Case II. This is different from the way I presented it in class, but consistent with the ATM Forum standard. Conceptually it makes no difference.

  2. (Continuous State) Leaky Bucket version of GCRA

    Internal variables: X = bucket level; LCT = Last Compliant Time.

    Assume tn = nth arrival time, n = 1, 2, 3, . . .

    Initialize X = 0 and LCT = t1.

    Follow algorithm:

    Let X = X - (tn - LCT)
    [The time elapsed since the last compliant time is "drained" from the bucket.]

    • Case I:
        If (x <= 0) then
          tn is "compliant";
          x = I; [The empty bucket is refilled with I units.]
          LCT = tn;
    • Case II:
        If (0 < x <= L) then
          tn is "compliant";
          x = x + I; [I units is added to what remains in the bucket.]
          LCT = tn;
    • Case III:
        If (x > L) then
          tn is "non-compliant";
          [Nothing is added to the bucket.]

These 2 versions of GCRA are equivalent, i.e. yield the same output.


Traffic Descriptors for ATM Connections


These descriptors can be applied at a UNI or NNI and for a VPC or VCC. We will show next time how to do this using the GCRA algorithm.

  1. Peak Cell Rate (PCR)
    • Denoted Rp in cells/sec, this is the maximum rate for sending ATM cells on a connection.
    • PCR is mandatory for all ATM connections.
    • Could be enforced using a simple leaky bucket with = Rp.
    • PCR is (in theory) the only parameter needed to specify a CBR (Constant Bit Rate) connection.

  2. Cell Delay Variation (CDV)
    • ATM components may introduce some variability even for CBR connections, e.g., due to multiplexing or OAM cell insertion.

    • An example of when one would want to use a nonzero CDVT is when a source produces proper CBR traffic, but then the traffic must cross a LAN before entering the ATM Network. We don't want to penalize the source just cause the LAN introduces some variability.

    BBN Notes From Lecture 17 on 4/7/97
    next previous contents
    Notes taken by Elliot Piatetsky, from a lecture by Prof. Kenneth S. Vastola, vastola@networks.ecse.rpi.edu, on April 7, 1997.