<p dir="ltr">There is some subtlety of terminology here...</p>
<p dir="ltr">Fq_codel has many queues, but they are not a priori assigned as "low latency" or otherwise. There is a dynamic sense of whether each queue is handling sparse or bulk traffic, with the sparse queues being serviced first. This is a type of priority queuing which is difficult to game (and completely ignores Diffserv).</p>
<p dir="ltr">Cake does the same thing, and additionally divides the queue using Diffserv. Etcetera.</p>
<p dir="ltr">Both fq_codel and cake deliver one packet at a time. This is a feature of the qdisc API within the kernel. They have no visibility of what aggregation might be happening at the hardware level, only that the driver is requesting a packet.</p>
<p dir="ltr">Wi-Fi hardware implementing 802.11e tends to have four queues, each of which is a dumb FIFO, and services only one of them per TXOP (probably the highest priority one). It doesn't even do the "naive" thing you mention - which goes some way to illustrate the point of view of the typical hardware engineer.</p>
<p dir="ltr"> - Jonathan Morton<br>
</p>