[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[altq 19] When a class is delayed (code)
Hello Kenjiro.
Can I try to make some questions/suggestions about the steady state behaviour of CBQ?
In rmc_delay_action there is:
==============================================
/* 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_);
==============================================
I think this is referred to the previous setting of the cl->undertime_, done in rmc_update_class_util:
==============================================
pkt_time += (1 - RM_POWER) * avgidle >> RM_FILTER_GAIN;
TV_ADD_DELTA(&ifd->ifnow_, pkt_time, &cl->undertime_);
==============================================
Now, I have two question.
1. The rmc_update_class_util updates the undertime according the ifd->ifnow_, that is the expected finishing time for a packet in that queue. Isn't it better to update the undertime variable according to the ifd->now_, that is the "real" time into the system?
In fact, if I'm understanding well the CBQ paper,
time when you have to send the next packet= now + offtime
2. The code into rmc_delay_action does not cancel completely the previous setting into the rmc_update_class_util. In fact, the rmc_update_class_util adds to the untertime BOTH the packet time and the agvidle (timed by (1-RM...).
Vice versa, the code into rmc_delay_action subtracts only the "agvidle" component, and not the pkt_time.
Is that of any help?
fulvio
> -----Original Message-----
> From: Kenjiro Cho [mailto:kjc@csl.sony.co.jp]
> Sent: Friday, June 04, 1999 4:35 PM
> To: Fulvio Risso
> Cc: altq@csl.sony.co.jp
> Subject: Re: [altq 15] When a class is delayed
>
>
>
> Fulvio,
>
> >> Could you explain, maybe with pseudo-code, what is happening in the
> >> function rmc_delay_action (altq_rmclass.c)?
>
> Please send the output of "cbqstat". It would be helpful to
> understatnd what's going on.
>
> -Kenjiro