<span style="font-family: courier new,monospace;">Hi. I'm trying to get a traffic shaper like this:</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ------</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> VoIP pkts --> | |_|</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">
------ \ |</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">
---O -></span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">
------ /</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Data pkts --> |</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ------</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">In this shaper voip
packets are in a different queue than any other kind of packet. I want
a data packet to be served only when no packets are in the voip queue
(when voip queue is empty).</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">Furthermore the total
traffic that leaves this shaper needs to be limited to a specific (and
precise) value of bandwidth, like a token bucket.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">I can't use something
like this (PRIO + TBF) because in this way when "data congestion"
happens, voip packets may be lost too(packet drop appens on the TBF
queue):</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ------</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> VoIP
pkts -->
|
|_|</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">
------ \ ----- |</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">
O ---> |---O -></span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">
------ / -----</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> Data pkts --> |</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ------</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">I also can't use HTB
because it doesn't provide a priority mechanism like my needs, and CBQ
because his bandwidth limiting algorithm isn't very precise (according
to the documentation).</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">How can I solve this problem using tc qdiscs?</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">Thanks</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">--</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">Emanuele</span>