RE: [RPRWG] Questions about alladin draft.
Ping,
Please find the answers to your questions below. Please let us know if
you need more detail to any question.
Regards,
Adisak
-----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.
Hi,
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
node
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
source.
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.
@calcInterval
/* 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
congestion
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
destination?
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
draft.
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
destination)
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)
@Tupdate
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;
return;
}
}
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.
-Ping