Rong,
That's a good rationale.
I withdraw my criticism of PIE on this point.
The code is OK, it's just the explanation that is misleading. it
shouldn't say it is measuring the average dequeue rate, and there's no
need to. It should describe the calculation as a moving average of the
time to dequeue a set amount of bytes, scaled by the queue size relative
to that number of bytes.
Cheers
Bob
On 26/05/17 19:29, Rong Pan (ropan) wrote:
Michael and Bob,
The depart_rate is inversed in calculation delay….
Delay = queue_length/depart_rate;
Hence, current_qdelay = queue_.byte_length() * PIE- >avg_dq_time_/DQ_THRESHOLD;
Basically the average dq_time for dequeueing DQ_THRESHOLD is PIE->dq_time; What
is the approximate time to deque the current_qlen?
Current_qlen/DQ_THRESHOLD(what portion is current queue length relative to
DQ_THRESHOLD)? * avg_dq_time.
That is the rationale behind it.
Thanks,
Rong
>> (EWMA) of the rate should be:
>>
>> ewma(depart_rate) = DQ_THRESHOLD ∗ ewma(1/t1,1/t2,1/t3,...)
>> != DQ_THRESHOLD / ewma(t1,t2,t3,...)
>> "
>> PIE uses the second (incorrect) formula. In the review, I discuss how
>> wrong this could be, with an example.
> Thanks, Bob, for pointing this out to me.
>
> Rong, is PIE doing this by intent (if so, what's the reason?) or is this
> a flaw?
>
_______________________________________________
aqm mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/aqm
--
________________________________________________________________
Bob Briscoe http://bobbriscoe.net/
_______________________________________________
aqm mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/aqm