CS 4594 Broadband ATM GCRA and Leaky Bucket
Jan 30, 2016
CS 4594 Broadband
ATM GCRA and Leaky Bucket
From the ATM Forum
• The GCRA is used to define conformance to the traffic contract. For each cell that arrives at the specified point, the GCRA determines whether the cell conforms to the traffic contract of its connection.
Generic Cell Rate Algorithm
• GCRA = Generic Cell Rate Algorithm
• Defined by two equivalent methods– Virtual Scheduling– Leaky Bucket
GCRA – Virtual Scheduling
Arrival of cell k at t =ta(k)
TAT<ta(k)
TAT>ta(k)+L
TAT=TAT+I
TAT=ta(k)
Discard nonconforming cell
Yes
No
Yes
No
Accept conforming cell
k=k+1
Initially:
TAT=ta(1)
GCRA - Virtual Scheduling
Arrival of cell k at t =ta(k)
TAT<ta(k)
TAT>ta(k)+L
TAT=TAT+I
TAT=ta(k)
Discard nonconforming cell
Yes
No
Yes
No
Accept conforming cell
k=k+1
TAT-L TAT
fasttoo fast slow(slow)
(fast)
(too fast)
(not too fast)
CGRA(I,L)
TAT = Theoretical Arrival Time
TATTAT-LTATTAT-L
time
II
slowfasttoo fast
I I
)()()(),(
)()()()(,)(
)()()(,)(
)1(
fasttooLkTATktifkTAT
fastkTATktLkTATifIkTAT
slowktkTATifIkt
kTAT
a
a
aa
Burst Size
T
N 1
• GCRA(T, τ)• N = maximum number of contiguous conforming cells• T = targeted average time in GCRA• τ = limit tolerance in GCRA• δ = actual average arrival time
Leaky Bucket
• Smoothes traffic
• Regulates traffic
• Overflow = nonconforming
• Nonconforming can be tagged or discarded
GCRA – Leaky Bucket (Equiv to Virtual Scheduling)
Arrival of cell k at t =ta(k)
X’<0
X’>L
X=X’+ILCT=ta(k)
X’=0
Discard nonconforming cell
Yes
NoYes
No
Accept conforming cell
k=k+1
(slow)
(fast)
(too fast)
(not too fast)
X’=X-(ta(k)-LCT)
Initially:
X=0
LCT = ta(1)
Meanings:
X = Value of counter
X’ auxiliary variable
LCT = Last Conformance Time
L = bucket size
Explanation
• X is value of the counter.• When a cell arrives at time ta(k), X’ is set to the value of
what the counter would be: X’ = X – (ta(k) – LCT) (This is the value of previous counter X minus the amount would have leaked.
• If X’ is negative (bucket would be empty), the cell is compliant, X’ is set to 0, X is set equal to X’ + I, and LCT = ta(k).
• If X’ is nonnegative, check if bucket is full. If not full, cell is compliant and do as above.
• If bucket is full, the cell is not compliant, and nothing is updated.
Leaky (token) bucket as a gate
• ir = information rate• bs = burst size
?yes
bs
ir
Let token escape as cell goes by
Tokens enter at given rateCell goes through if bucket has enough tokens
no
input output
Double Leaky BucketInput
Overflow
output
Overflow
Double Leaky Bucket(another arrangement)Input
Overflow
output
Overflow
Double leaky buckets as a pair of gates
• pir = peak information rate• pbs = peak burst size• cir = committed information rate• cbr = Committed burst size
yes yes
cbspbs
pircir
no no
LBP schemes
• LBP=Leaky Bucket Policy
LBP Scheme type 1
Token pool
serverarriving cells
droppedcells
departing cells
• Arriving cells are dropped when no token is present in the token pool
LBP Scheme type 2
Token pool
serverarriving cells departing cells
• Arriving cells are tagged if not complient.
tagged cells
LBP Scheme type 3
Token pool
serverarriving cells
droppedcells
departing cells
• Arriving cells are placed in the queue if no token is present in the token pool
buffer
LBP Scheme type 4
Token pool
serverarriving cells departing cells
• Arriving cells are placed in the queue if no token is present in the token pool. Nonconforming cells are tagged.
buffer
tagged cells
GCRA and ATM Services
• GCRA is used to define usage parameters• CBR (Class A) (one GCRA)
– GCRA(1/PCR, CDVT)• rt-VBR (Class B) (two GCRAs)
– GCRA(1/PCR, CDVT)– GCRA(1/SCR, CDVT+BT)– ATM Forum defines 3 variations based on how the
CLP bit is used.• ABR
– uses GCRA with changing values for parameters.
ATM Conformance Definitions
• VBR.1 – Leaky bucket 1 sends CLP(0+1) compliant cells to leaky bucket 2 and discards the noncompliant cells. Leaky bucket 2 sends CLP(0+1) compliant cells to the network and discards noncompliant cells.
• VBR.2 – Leaky bucket 1 sends CLP(1) compliant cells to the network, sends CLP(0) compliant cells to leaky bucket 2, and discards CLP(0+1) noncompliant cells. Leaky bucket 2 sends CLP(0) compliant cells to the network and discards noncompliant cells.
• VBR.3 – Leaky bucket 1 sends CLP(1) compliant cells to the network, sends CLP(0) compliant cells to leaky bucket 2, and discards CLP(0+1) noncompliant cells. Leaky bucket 2 sends CLP(0) compliant cells to the network and tags noncompliant cells and sends them to the network.