Simple Queue with Parent / Priority question.

Hi, just a little question.
As far as i know, simple queues are served in the order, top to bottom, so the first queue will be served first than the second and so on..

so for an example:

i set a Parent queue with 50mbits, and 100 child simple queues 80 with priority 8, 10 child simple queues with priority 7 , 7 with priority 6 and 3 with priority 5.

they are set in the following order:
#0 Parent queue
#1 Child priority 8

#81 child priority 7

#90 child priority 6

#97 priority 5

In that way, whem the parent queue gets full ( 50mbits in use) witch child simple queues will be served first? the ones with higher priority ( priority 5) or the ones on the top of the simple queues list( priority :sunglasses: ?

Thanks!

The Queue with Highest Priority (priority=1) serves first, I think the Order of the Q don’t matter.

i dont exactly thing so.. becouse from the manual " simple queues have strict order - each packet must go through every queue until it will meet conditions. (In case of 1000 queues, packet for last queue will need to proceed through 999 queues before it will reach the destination) {{{…}}} "

thats is why i´m really dont know if the child with higher priority will really be server first..

Order of queues applies only to process in which traffic is matched to be put in particular queue - so logically queue consists of 2 parts - “matching” part - this is where order matters, and “scheduling” part that specifies how traffic will be scheduled for transmission from queue. Priority (as well as limits settings) affects how queues are scheduled. Order of queues does not affect scheduling.

Thanks !!! that exactly the explanation i was looking for !

another question that complements the later one..

i have about 200mbits from my upstream provider, and i set my parent queue with unlimited max and limit-at settings.. and set the speeds on the child queues.. will the parent queue ever know if theres spare bandwitdh to child queues if it( parent queue) is set as unlimited? or i should set limit at and max limit in parent queue to it perceives when my total bandwidh is running out?

I’m not sure I understand your question completely, perhaps you could explain it with an example.

In general - if your parent class is not limited, it will behave as if it was limited to full link bandwidth (because of hardware flow control - underlying network hardware will simply not take from queue more data than it can send). So e.g. if you have 1Gbps Ethernet link to your provider, but provider limits traffic received from that link to 200Mbs, it is better to configure parent queue with 200Mbps limit - this way bandwidth control moves to your queues where you can apply your policies (prioritizing, limits, distribution of excess bandwidth and such), instead of just sending everything to upstream provider where you can not control what will get dropped.

Mplsguy thanks again , you really understood my question!

the case you pointed is exactly my case. but with lower bandwitdh (150mbps).

Thanks!

hi just complementing this topic..

if in my some of my child queues i dont set the limit-at ( limit-at=unlimited) and set only the max limits.. and in in other child simple queues i set the limit-at value


will the limit-at = unlimited be the same as max-limit or will be equal 0 ( no cir)?

For Queue Tree, Someone said it would be 0, and as far as I have tested, it acts like it’s 0, e.g. no committed information rate. Anyone from MikroTik can confirm this?

It is true for any child queue (including simple queues)

yes