> On 11 Jan 2016, at 22:43, Daniel Melameth <dan...@melameth.com> wrote: > > On Sun, Jan 10, 2016 at 7:58 AM, Marko Cupać <marko.cu...@mimar.rs> wrote: >> On Sat, 9 Jan 2016 11:11:27 -0700 >> Daniel Melameth <dan...@melameth.com> wrote: >>> You NEED to set a max on your ROOT queues. >> I came to this conclusion as well. But not only on root queues. For >> example, when max is set on root queue but only bandwidth on child >> queues, no shaping takes place... > > This works for me. > >> Or, to cut the long story short, if someone can paste queue definition >> which accomplishes 'give both queues max bandwidth, but throttle >> traffic from first queue when traffic from the second one arrives', I >> will be more than happy to quit bothering misc@ list readers with my >> rants and observations. > > I would expect this to be possible with prio alone, but I've never > been able to get it to work. Perhaps I'm misunderstanding how prio > works.
prio is basically an array of lists of packets to be transmitted. high priority packets go on a different list to low priority packets. the problem is the way packets go on and off these lists. basically as soon as a packet is queued on one of these lists for transmission, we call the driver immediately to send it. generally as soon as a packet is queued on the interface, it immediately gets dequeued by the driver and transmitted on the hardware. it is only when you build up a backlog of packets that priq can come into effect. the only way you can build up a backlog of packets is if your hardware is slower at transmitting packets than the thing that generates these packets to send. in your case you're probably getting packets from a relatively slow internet connection and transmitting them on a high speed local network. the transmit hardware is almost certainly going to be faster than your source of packets, so you'll never build up a queue of backlogged packets, so prio is effectively a nop. dlg