Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

RE: [RPRWG] Questions about alladin draft.


Please find the answers to your questions below. Please let us know if 
you need more detail to any question.


-----Original Message-----
From: Ping Yuan [mailto:pyuan@xxxxxxxx]
Sent: Tuesday, January 08, 2002 3:48 PM
To: stds-802-17@xxxxxxxx
Subject: [RPRWG] Questions about alladin draft.


I have some questions about the "Media Access Control (Bandwidth Management
and Transit-Path)" in alladin draft.

1. What does the "link bandwidth monitor entry" measures exactly? Does it
measure per-ingress based sending rate?

Ans: The link bandwidth monitor entity measures traffic from each source
     by using per-source leaky buckets to track the traffic and at the same
time monitor
     rate conformance (police transit traffic) of transit traffic from each
     Conceptwise, this is simple a generic credit based rate pacer.
     The bandwidth allocation is done based on the state of the buckets at
line xx
     yy in the following pseudo-code.

    /* initialization */
    sum_R = 0;
    sum_W = 0;

    /* do for each source node */
    for (i = 0; i < 256; i++) {
        /* drain the bucket for node i */
        bucket[i] -= calcInterval * (Ri + Wi * RCF_new);
        if (bucket[i] <= 0) { /* flow is inactive */
            bucket[i] = 0;
        } else {              /* do only for active flows */
            sum_R += R[i];
            sum_W += W[i];
line xx   AvailableRingBW = link_capacity - sum_R;
line yy    RCF_sampled = min((AvailableRingBW / sum_W), link_capacity);


2. Is it true that every ring node will send a RCM message periodically?

ans: Yes, each node send RCM periodically every 10ms interval, but if the
      is imminent a node can send out RCM immediately too.

3. Is it true that ever node will keeps the RCM information from all the
down stream nodes so as to police the transmitting rate to different

Ans: Yes, 

4. How to calculate the policing rate for traffic to different destination
based on the RCM information? Is it true that a node will pick the minimum
RCM along the path to destination as the transmitting rate? I didn't find
pseudo code about that. It would be helpful if you can let me know where to
find more pseudo code about the bandwidth management algorithm in Alladin

Ans: The Pseudo code on page 15 and 16 of C8_MAC_V0_6.doc are for two
     type of policers. The one on page 15 is all destinations (per
     The one on page 16 is a single rate policer (one choke point).

     Both are credit based policers that translate rates (RCMs) into 
     credits. In doing so the policer, in effect, meets minimum RCM,
     i.e. logically performs min (RCM) function (at line zz) 

    for each (link segment j on the ring) {
        /* calculate the allowable bandwidth for this node */
        F[j] = R[j] + W[local_node] * RCF[j];
        /* accumulate credits for each segment */
        segment_credit[j] += F[j] * Tupdate;
        segment_credit[j] = MIN(segment_credit[j], MAX_CREDIT);
line zz if (segment_credit[j] < 0) { /* client has exceeded credit for
segment */
            segment_paused[j] = TRUE;
            assert PAUSE.indicate for segment j;
        } else {
            segment_paused[j] = FALSE;
            clear PAUSE.indicate for segment j;

@DATA.request from client
    for each (link segment j between source and destination) {
        if (segment_paused[j] == TRUE) {
            reject DATA.request;
    accept DATA.request;
    for each (link segment j between source and destination) {
        /* deduct segment credit */
        segment_credit[j] -= packet_length;

I will highly appreciate any response from you.