Well, I read it. And watched the movie too. This phrase ("priority doesn't work without limitation") is present in both places, but that's all, nothing more.read this topic: http://forum.mikrotik.com/viewtopic.php?f=2&t=27555
and watch this video: http://www.tiktube.com/?video=214
color have nothing to do with 'limit-at' value:A queue in green state means that it has not yet reached the "limit-at" level.
oops =) ...until 'limit-at' is reachedAnd that NO PRIORITISATION happens until Max-limit has been reached.
so from 0 to 1900prioritization works between 'limit-at' and 'max-limit'.
Yes it will work with only max-limit on the parent queue, and just priority for the child queue. Priority does work with no max-limit on on the child queues.This slightly contradicts what was said above. Apears that "limit-at" has nothing to do with priority.
I still want to ask, in this case, priority will work or not:
no, in that case remaining traffic is unlimitedSo, if we don't have limit in parent queue, we have no remaining traffic in it too.
any confirming screenshots?..Yes it will work with only max-limit on the parent queue, and just priority for the child queue. Priority does work with no max-limit on on the child queues.
OK, lets now imagine the situation, that you are loading trailers with boxes (blocks of data sent out by HTB)
Requirements are:
1) you need to load trailer as fast as possible (first and main objective - make latency as low as possible)
2) one kind of boxes have higher priority than another
3) you do not know how much boxes will come in (amount of traffic in next millisecond is unpredictable)
4) you do not know maximum amount of specific type boxes you are allowed to put in (no max-limit)
So how will you fill up trailer so that fulfill 1) and 2) at the same time? Will you load 2nd priority boxes as they come and hope that there will space for all remaining 1st priority boxes? or will you delay 2nd priority boxes until you will be sure that all 1st priority get in??? Ether way you can't get 1) and 2) requirement 100% at the same time.
With "max-limit" you give a specification of how much packets of specific type can be in same trailer.
With "limit-at" you give the amount of specific type boxes you can load without even thinking.
So it is never the question "does the priority work?" it is question - "have you given out all the required values to get it working as you desired?".
And line in manual "Make a note that priority only works if max-limit is specified (not 0)" is correct as most clients are expecting QoS to work the way it can work only with limits specified
Well said edmidor; You hit the nail on the head were it only gave me a feeling that example is not what macgaiver had in mind to explain.That example describes a different situation - child queues explicitly exceed totals on parent queues, router is aware of that and can make educated decision how to recalculate limits to keep them in proportion.
In the case I mentioned teh router doesn't know about the problem as totals on child queues match parent queue, it's just physical interface that bottlenecks here. My understanding is that QoS will simply break, as the router, assuming it has 1M up, will let both parties to fill interface queue buffer, whoever comes first, thus unable to provide neither guaranteed rate, nor to preserve the proportion.
Setting max-limit to the lowest possible rate would restore QoS but is very inefficient. I would expect router to gradually auto-adjust the queue parameters when the queue buffer is overloaded for some period of time (user could provide the threshold) - that would resolve the problem.
So the question then - what is the best strategy for unstable links?
I agree!I would say this feature is worth adding into RouterOS core, IMHO.
Well, is that true? How does the router know? I don't even know!Router knows the actual bandwidth going through WAN interface,
wrong?.. if your modem is connected to your router via 100 Mbps link, all packets are sent to the modem. and then the modem can drop packets in case of ADSL become congested. router doesn't know about dropped packetsIt doesn't know your available bandwidth, but it knows how much data is being passed through its WAN interface at every moment of time.
If top queue buffer is full for some period of time, and you're dropping packets, it means WAN interface passes as much as it can - and at that moment this is the max physical bandwidth available to you from ISP.
I am not limiting on my lines. The limits are for each child. Each child represents a service type. This is QoS.WirelessRudy, why do you use total limiting for all your lines? maybe you should limit per ADSL line? so then if one link is down - this queue is simply not used =)
?? As far as I know adsl modems usually (not by default and only possible in more advanced types) are not queuing. And in case they are just functioning as bridge (what is preferred option for ISP) definitely that option is not there.. at least not in the range of modems I have seen so far, even so called ´professional´adsl routers.The point is that the queue will reside on the DSL modem and not on the MikroTik router...
Sorry, but this makes not a lot of sense to me.You need visibility as to the queued packets inside the modem. The MikroTik will not be the one dropping packets, it could probably figure it out with TCP but UDP will have no indicator.
Even if you have all this, you only get QoS for outgoing/upload.
You can set a script to ping some remote IP and when ping times go up that means packets are being queued somewhere. Then you need to figure out if the packets are being queued on upload or download. In any case this is a complicated proposition.
I red the article. To me it looks they are doing nothing more then a good configured QoS in ROS can do. Their so called "Dynamic QoS" is what you can do by setting proper limit-at and max-limit values with the right priorities for different queues. I am not saying mine is the ultimate but so far I am pretty happy with it.Something like this perhaps would be interesting:
http://www.scanditek.dk/Admin/Public/DW ... e_DQoS.pdf
Why would it matter? You still have your real time WAN interface throughput at one hand, and max-limit on that queue in the other hand. Assuming they initially set to match, if you see actual throughput dips for more then X seconds - then router could temporarily lower max-limit to keep everything in proportion...wrong?.. if your modem is connected to your router via 100 Mbps link, all packets are sent to the modem. and then the modem can drop packets in case of ADSL become congested. router doesn't know about dropped packets
I used that example to show what happens to traffic if your HTB pass more traffic than your interface can handle.That example describes a different situation -
Correction - it will not work as you expected, but it still works as you configure it, so I disagree with "breaks" part.My understanding is that QoS will simply break
Only way this can happen is if you employ this guy: http://en.wikipedia.org/wiki/NostradamusRouter knows the actual bandwidth going through WAN interface, and it also knows the max-limit on the queues chaining from/to this interface. There should be not a big deal to make it to auto-adjust the limit-at and max-limit accordingly on all downstream queues where 'auto-adjust' enabled.
That implies it's technically possible to configure the router QoS to handle sudden bandwidth dips without manual intervention.Correction - it will not work as you expected, but it still works as you configure it, so I disagree with "breaks" part.
You don't need to predict future here - all you need is some stats, and look into recent history - and ROS can do it perfectly.Only way this can happen is if you employ this guy: http://en.wikipedia.org/wiki/Nostradamus
All traffic is already gone trough the HTBs when it reaches possible bottleneck (outgoing interface, or next device)