<p dir="ltr">> If dequeue rate is predictable (true for some links, less so for others) then the NotCodel approach can be designed such that it will drop (or mark) *the same packets* that the CoDel approach would.</p>
<p dir="ltr">In other words, in certain specific cases it is possible to behave as though you were head-dropping even though you actually aren't. And that's fine, as long as you don't forget that head-drop is the gold standard and you're just faking it. It's a general technique used in all sorts of hardware and software.</p>
<p dir="ltr">But as soon as conditions change from that fairly ideal situation, you start having to genuinely do the work at the head of the queue in order to obtain the accurate sojourn times. Given the audience that I wrote that explanation for (you have seen the calibre of their questions...), I thought it best to keep away from gritty implementation details in order to keep it conceptually simple.</p>
<p dir="ltr">And even on switched Ethernet - one of the more obvious candidates for the technique - the line rate can vary unexpectedly. Pause frames are the most likely cause, and one possible source of pause frames is a cable or DSL modem signalling its own link rate back to the host. But until the link is unpaused, the head packet can't be dequeued, and the sojourn time of it and any other packets behind it increases, throwing off any estimates that might have been taken at enqueue time. The likely symptoms would be similar to running normal Codel on an overbuffered Ethernet device without BQL.</p>
<p dir="ltr"> - Jonathan Morton<br>
</p>