[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[altq 77] Re: When a class is delayed (undertime)



Hi Kenjiro/Fulvio,

	I am a newbie to CBQ (as a result what I am going to write may be
wrong).

> But... I'm always confused.
> Does it make sense using ifnow_ to compute the agvide, and nowp to compute the suspension time?
> By the way, nowp does not include the pkt_time. Shoud this value be added to tidle?

	1. I also feel that pkt_time should be added to tidle (since the next 
time a overlimit class is allowed to send is the pkt_time + suspension time).
(From Appendix B "Regulating overlimit classes: the details" of Experimental 
results for class based queueing). Will I be correct if the earlier
calculation is retained with the modification suggested by Fulvio (in the
discussion [altq 22] and Fulvio got better results)

	2. Regarding the following code (in the patch Kenjiro posted on June
18): (My comments are below the code)

@@ -1532,10 +1530,6 @@
 #else /* BORROW_OFFTIME */
                TV_ADD_DELTA(&cl->undertime_, cl->offtime_, &cl->undertime_);
 #endif /* BORROW_OFFTIME */
-               /* this code cancels the undertime set in rmc_update_class_util.
 */
-               TV_ADD_DELTA(&cl->undertime_,
-                            -((1 - RM_POWER) * cl->avgidle_) >> RM_FILTER_GAIN,
-                            &cl->undertime_);
                cl->sleeping_ = 1;
                cl->stats_.delays++;

	When a class is overlimit & cannot borrow from the ancestors (ie)
when the class is regulated, it needs to wait offtime (to maintain the steady
state burst). The overlimit handler (rmc_delay_action) is invoked for this 
class (which adds offtime to undertime).

	But when it gets here, the estimator would have already added the 
suspension time to undertime when the class was found overlimit. So the 
overlimit handler just cancels the suspension time (which was added by the 
estimator in the previous run(?)) since for a regulated class, the suspension 
time is not to be added (Appendix A1 of "Link sharing and resource management 
models for packet networks)

	So I feel that this code needs to be retained.

	Please correct me if I am wrong.

Regards,
Muthu