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 aqm@ietf.org https://www.ietf.org/mailman/listinfo/aqm
-- ________________________________________________________________ Bob Briscoe http://bobbriscoe.net/ _______________________________________________ aqm mailing list aqm@ietf.org https://www.ietf.org/mailman/listinfo/aqm