Hello,
I believe I have found a problem with the Mikrotik bandwidth control. When the 'average rate' goes over max-limit / 2, the state turns Yellow. However the docs say the class should go yellow when actual rate goes over limit-at, and is less than max-limit. Is this a bug or documentation problem? If the docs are wrong, can someone please explain how classes in queue tree actually transition?
I have a test connection generating a constant 80kbps. A firewall rule marks the packet, and I have a queue tree defined to queue the flow as such:
apr/05/2008 17:52:37 by RouterOS 3.6
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=704000 max-limit=704000 name="0-INET-Root" packet-mark="" parent=0-INET-TEKSAVVY priority=8
queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=10000 max-limit=140000 name="0-INET-Out-Voip" packet-mark=m-0-INET-voip parent=0-INET-Root priority=3
queue=default-small
I am monitoring the statistics in winbox. When the average rate hits 70kps or more, the state goes Yellow. It should be going yellow when it hits 10kbps. If I raise the max-limit to 161kbps (rate*2 + 1), the state never goes Yellow.
http://www.mikrotik.com/testdocs/ros/3.0/qos/queue.php:
Each HTB class can be in one of 3 states, depending on data rate that it consumes:
- green - a class the actual rate of which is equal or less than limit-at. At this state, the class is attached to self slot at the corresponding priority at its level, and is allowed to satisfy its CIR limitation regardless of what limitations its parents have. For example, if we have a leaf class with limit-at=512000 and its parent has max-limit=limit-at=128000, the class will still get its 512kbps! All CIRs of a particular level are satisfied before all MIRs of the same level and any limitations of higher levels.
- yellow - a class the actual rate of which is greater than limit-at and equal or less than max-limit (or burst-limit if burst is active). At this state, the class is attached to the inner slot of the corresponding priority of its parent's inner feed, which, in turn, may be attached to either its parent's inner slot of the same priority (in case the parent is also yellow), or to its own level self slot of the same priority (in case the parent is green). Upon the transition to this state, the class 'disconnects' from self feed of its level, and 'connects' to its parent's inner feed.
- red - a class the actual rate of which exceeds max-limit (or burst-limit if burst is active). This class cannot borrow rate from its parent class.
Any help would be greatly appreciated.
/Chris