Hello!
Queue priority only works if you have defined limit-at and max-limit values. Ok.
But here: https://wiki.mikrotik.com/wiki/DSCP_based_QoS_with_HTB#Set_up_the_queue_tree there is an example where all the child queues have limit-at=0 and max-limit=0 and some priority defined.
It’s something like this:
/queue tree add limit-at=0 max-limit=5000000 name=ether1 parent=ether1
/queue tree add limit-at=0 max-limit=0 packet-mark=p8 parent=ether1 priority=8
/queue tree add limit-at=0 max-limit=0 packet-mark=p7 parent=ether1 priority=7
/queue tree add limit-at=0 max-limit=0 packet-mark=p6 parent=ether1 priority=6
…
So, does it work or not?
If not, Is the example in this article wrong? https://wiki.mikrotik.com/wiki/DSCP_based_QoS_with_HTB#Set_up_the_queue_tree
Thanks!
It works…packets marked with p6 have greater priority in the queue list than those with priority 7 or 8 etc…
So highest priority is served first…
And the total limit is defined at the parent level, all children “borrow” from parent:
/queue tree add limit-at=0 max-limit=5000000 name=ether1 parent=ether1
And the total limit is defined at the parent level, all children “borrow” from parent:
/queue tree add limit-at=0 max-limit=5000000 name=ether1 parent=ether1
Thanks!
And priority acts only when the parent max-limit is reached, right?
priority is always active: queue tokens are used for packets from highest to lowest prio. Once pipe is full / tokens are exhausted and priority queues are full, new packets get dropped
In effect, if bandwidth is not scarce, all packets are transmitted and one could say that priority is irrelevant, and only becomes apparent once there is a bottleneck / scarce bandwidth.