Hi Yang,
>I had a linux wireless router. I would like to monitor the queue lengh
>of the wireless interface. By default, the wifi0 interface is with
>pfifo_fast qdisc which does not report backlog packet.
Actually it does:
# tc -s -d qdisc list dev eth1
qdisc pfifo_fast root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 256404346 bytes 246076 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 27092b 26p requeues 0
^^^^^^^^^^^^^^^^^^
If the counters are set to 0 it is probably because there is no backlog
(i.e., you transmit faster than you queue).
>I replaced
>pfifo_fast with pfifo:
>''tc qdisc replace dev wifi0 root pfifo''
>Then I use iperf to send UDP pkts faster than the interface can handle
>but when I read the qdisc, the result is like:
>
>qdisc pfifo 8007: limit 10p
>Sent 46249560 bytes 30600 pkts (dropped 0, overlimits 0)
>
>It is really strange, because over 80% of packets lost is observed by
>application layer but by qdisc, there is no packet dropped at all
>and no backlog. Any hints for this result?
Are you sure it is not the application that drops the packets?
Did you check the "bytes/pkt" counters on the tx and rx hosts?
Regards
/Christian
(http://benve.info)