QoS, Queues: Specific theory questions

I’ve read quite a lot about QoS and Queues here in the forum, the wiki and the 2011 Vegas TikTube on QoS - however there are several issues not answered by these sources.

I’m sorry if I’ve missed something, but here’s what I have questions on.


  1. I assume, but don’t know that if you don’t handle all the traffic in the queue, it obviously won’t follow the rules. [But I don’t know what will happen, or how it will be handled.]

For example: Lets just say there’s four (4) classes of traffic.
For simplicity, T1, T2 T3 and T4. [Don’t worry about what kind of traffic, just know it’s different somehow.]

You mark the packets for T1, T2 and T3, and you generate a Queue tree for them.
But you don’t mark T4, and you don’t have a Queue tree “rule” that handles that traffic.

So, what happens?
[Recap: T1, T2 and T3 is marked and there are queue rules to handle those packets. T4 isn’t marked and thus does not have a queue rule to manage that traffic. What happens in the interaction between the queue handled traffic and the non-queue handled traffic.]

Does it allocate the Limit-at amounts, priorities, max-limits etc for T1, T2 and T3, and then handle T4 traffic.
[T4 is the traffic that is unmarked and and not specified in any queue?]
Or will the T4 traffic get handled first, without limits and then the remainder of traffic T1-T3 following the rules in the Queue tree?
Or will nothing work?
Or, perhaps is the results “undefined” - as in “we don’t know what will happen, but nothing like you really want…”


Next: I assume the “limit-at” traffic can be borrowed from a higher priority queue to satisfy a lower priority queue that needs it, and it is not being currently used in the higher priority queue - I assume that - but I don’t know that’s the case. [I believe this because of the “borrows” statistics in the queue stats. But perhaps I misunderstand that…]

[I know in the TikTube they claim that limit-at is always fulfilled first, regardless of priority - but I’m asking what happens if that bandwidth is not consumed at the moment - is it “locked” to that queue and unavailable elsewhere, “just in case” - or will it borrow it for another queue, based on priority.]

EG. Max limit for the parent is 10M.
T1, T2, T3 [in order of priority] all have 3M as “limit-at” - but at the current moment, T1 and T2 are not using any bandwidth.

Is there only 1M of additional bandwidth available for T3, or can it use all 10M until T1 and T2 need some of all of their “limit-at” amounts?


I think that is the scope of my question at the moment.
I’ll probably have follow-up questions depending on the answers to these.

TIA!
-Greg

Bump.

Can MikroTik address these questions? Or someone who knows [please, no guessing, unless you explicitly say you’re guessing.]


One other question I have, though this one isn’t nearly as important as the ones above.

Is there some particular reason to use GlobalIn vs GlobalOut?

Certainly if you wanted to shape at both ends - then obviously that would be a reason, but outside of wanting to get a crack at shaping packets twice as they pass through the router, why use GIn vs GOut?

-Greg

I submitted these to MikroTik to answer, and here is the general response.

If you don’t account for all the traffic passing an HTB, then shaping may well be useless or undesired.
[ie. If you mark and shape traffic classes 1, 2 and 3, but leave class 4 traffic unshaped, then how any of the traffic will get shaped is undefined. (At least MTK wouldn’t/didn’t define how it would occur.) My assumption is that classes 1-3 will all get shaped and handled but class 4 will simply bypass the shaping, and if any packets get dropped, it would be packets from classes 1-3 and not 4.]


The limit-at bandwidth is NOT held in reserve for any queue if it’s not using it.
[So the statements I’ve heard that “the limit-at traffic is given first” is somewhat misleading, or can at minimum be misunderstood.]

The limit-at traffic is available to borrow for other queues, as long as it’s not being currently used.

[One permutation I’m not sure of is: does “limit-at” traffic respect priority, if there’s too much aggregate “limit-at” traffic to be handled by the outgoing interface. This probably doesn’t matter if you set “limit-at” values that are floor limits and are reasonable.]


Finally a reason to use “global-in” vs “global-out”
If the traffic is “forward” traffic, it will traverse both global-in and out. So, unless you want to shape that traffic twice, there’s no reason to pick one vs the other.

However traffic TO the router will only pass “Global-in” and traffic FROM the router will only pass “Global-out.”

Hope that is useful to someone. Also, realize this is not my answer, but MikroTik’s - provided by email.

-Greg

Excellent. I have modified this stuff http://wiki.mikrotik.com/wiki/NetworkPro_on_Quality_of_Service to represent the actual truth while having relevant useful information.

High five!