Bugzilla – Bug 2389
Internal queues need to notify their queue disc of packet drops
Last modified: 2016-05-11 06:25:48 UTC
Created attachment 2400 [details] Proposed fix If we had a Queue subclass that may drop packets in DoDequeue or we added the possibility to remove elements from a queue (see below), the statistics (in particular, packet and byte count, number of dropped packets) kept by a queue disc having such a queue as internal queue would not be correct in case packets are dropped in the context of dequeue or remove operations on the queue. The proposed fix follows the same logic as that followed to fix bug #2384, i.e., a callback is set when an internal queue is added to a queue disc so that the internal queue can notify the queue disc of dropped packets. This fix (and that of bug #2384), along with code review [1], are required by fq-codel to correctly keep statistics. Code review [1] adds a Remove method to the Queue base class, which is needed by fq-codel to remove the packet from the queue with the largest backlog in case the fq-codel limit is exceeded. More details in the upcoming fq-codel code review. [1] http://codereview.appspot.com/292540043
Looks OK to me.
Fixed by changeset 12109:550aaa2b2767