[xcp] Can someone help explain a line in the specification?
Yuri Pryadkin
yuri at ISI.EDU
Tue Nov 29 11:32:56 PST 2005
On Monday 28 November 2005 01:45 pm, Leon Martin wrote:
> Hi all,
>
> I am reading the 2005 spec for XCP located at
> http://www.isi.edu/isi-xcp/docs/draft-falk-xcp-spec-01.html
>
> I have a question about Line 26, which is in Section
> 4.2.3.:
>
> 26. neg_fbk = min(residue_neg_fbk, neg_fbk +
> (feedback -
> Delta_Throughput))
>
> The explanation says that the term (feedback -
> Delta_Throughput) allows the router to capture
> feedback which is allocated by an upstream bottleneck.
>
>
> I don't understand why. The only information that is
> non-local is Delta_Throughput, and other variables
> here are all locally computed. Does it mean
> Delta_Throughput carry feedback information from the
> upstream bottleneck router?
>
> Also, if you substitute Line 22.
>
> 22. feedback = pos_fbk - neg_fbk
>
> into Line 26., you will get
>
> neg_fbk = min(residue_neg_fbk, pos_fbk -
> Delta_Throughput).
>
> What is the exact reason of doing this? Why not just
> use neg_fbk for the second term in the parenthses?
This branch is executed only when
Delta_Throughput < feedback.
This means that the queue controller (e.g. router) is willing to give
more feedback to this packet than the packet wants.
(feedback - Delta_Throughput)
thus constitutes the "excess feedback" that can be handed to other
packets. To accomplish this, it's added to the neg_fbk, so it appears
as if this packet got more negative feedback. The min() just takes
care so total negative feedback stays under the negative feedback
"pool" - residue_neg_fbk. The idea is: given excess of feedback,
drain the negative pool first, then start adding to positive pool.
That's what line 27 does.
-Yuri
More information about the xcp
mailing list