[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