Hi Jonathan <div>Thank you for your response. I think did not describe my setup well in the first email. So here it goes:</div><div><br></div><div>I have an ubuntu virtual machine on my laptop that sends/receives data from remote iperf servers. My laptop is connected by a 100Mbps Ethernet cable to a router, and the router has two cellular antennas and an LTE SIM. The router routes all the incoming and outgoing traffic to/from the VM from/to remote iperf servers using the cellular link. The cellular link is thus my bottleneck link, and I am looking for queue buildup at the router’s egress interface, i.e., the cellular interface. I am looking into uplink mostly, and the uplink rate of LTE is both limited and has errors. The uplink rate I see is around 10 Mbps on a good received signal strength condition. </div><div><br></div><div>So based on the dumbbell topology you described, I should see queue buildup at the egress cellular interface of the router, right?</div><div> But when I periodically (once every second) run tc -s qdisc ls, the backlog is consistently zero. Am I looking at the wrong information? Or am I missing something even bigger?</div><div><br></div><div>Thanks a lot </div><div>Azin</div><div><br><div><br><div class="gmail_quote"><div>On Fri, Nov 30, 2018 at 10:14 PM Jonathan Morton <<a href="mailto:chromatix99@gmail.com">chromatix99@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> On 1 Dec, 2018, at 12:05 am, Azin Neishaboori <<a href="mailto:azin.neishaboori@gmail.com" target="_blank">azin.neishaboori@gmail.com</a>> wrote:<br>
> <br>
> I do not know if this backlog is indeed queue length or not. It seems strange to be queue length, because even when I flood the network with high UDP data rates over capacity, it still shows 0b of backlog. Am I looking at the wrong parameter? If so, could you please point out the tool that shows the instantaneous queue length?<br>
<br>
There are two potential points of confusion here:<br>
<br>
1: Linux throttles both TCP and UDP at the application socket level to prevent queues building up in the qdiscs and HW devices.  If it's your machine producing the packets, that's probably the effect you're seeing; there'll be a few packets queued in the HW (invisibly) and none in the qdisc.  That's approximately true regardless of which qdisc is in use, though with a shaping qdisc you might see a few packets collect there instead of in the HW.<br>
<br>
2: If your traffic is coming from outside, it won't be queued upon receipt unless you introduce an artificial bottleneck.  There are ways of doing that.<br>
<br>
For queuing experiments, we normally set up a "dumbbell" topology in which two different machines act as source and drain of traffic, and a third machine in the middle acts as a network emulator with artificial delays, losses and bandwidth limits.  That middlebox is where you would then observe the queuing.<br>
<br>
 - Jonathan Morton<br>
<br>
</blockquote></div></div></div>