I'm trying to access qdisc statistics (mainly the current queue length)
from a queueing discipline.
Tc provides some statistics, but unfortunately not the current queue

So I tried to access the information from a kernel module via printk.

Even though a I am completely saturating (100Mbit/s UDP traffic) the
(wireless) network interface with iperf, the queue length (qlen and
backlog) always remains 0.

It tried this with a number of queue disciplines, including red and
pfifo, all with the same result.

When looking at the code, the queueing disciplines (red) seem to update
the statistics (qlen, backlog) correctly when packets are enqueued and
dequeued. However, I never saw a packets building up in the queue, no
matter how heavy the load.

Statistics regarding the number of packets and bytes sent seem to be

Here is an example of what my kernel module prints:

dev->qdisc->q.qlen: 0
dev->qdisc->stats.backlog: 0
dev->qdisc->stats.packets: 155794
dev->qdisc->stats.bytes: 39876188

I don't understand why the backlog and qlen parameters remain 0.
Any help would be appreciated.