Our QoS expert wrote this about your discussion:
OK, lets now imagine the situation, that you are loading trailers with boxes (blocks of data sent out by HTB)
Requirements are:
- you need to load trailer as fast as possible (first and main objective - make latency as low as possible)
- one kind of boxes have higher priority than another
- you do not know how much boxes will come in (amount of traffic in next millisecond is unpredictable)
- 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