Different Queuing structure for simple queues.

I’d like to request some changes be made to how simple queues are handled, specifically how dynamic and static queues are created.

Currently I help run a number of hotspot systems that have dynamic user queues created on each login (in the user profiles section where you set the speeds or a burstable queue) but also have a couple of locations (local servers etc) I want to allow unlimited speed to using static queues placed above the dynamic user queues.

The only way I have to do this at the moment is to use on-login scripts given by mikrotik staff to relocate the the queues back to the top of the list each time a user logs in. It also means that while the queues are being moved they are inactive (if even for a 10th of a second) and data rates climb above the allowed queue speed.

Doesn’t really make sense to me why dynamic queue rules are generated above or why we can’t make the decision a checkbox or similar.

Does anyone else have this problem and have anything further to suggest or add?

Hi,

I am also using the login scripts when a hotspot user logs in to move the static scripts above the dynamic ones. Its works fine, although as you say ALL the queues stall for a miniscule amount of time.

I personally would like it if things were done the way you suggest but I have another question that I havent been able to work out for myself. When a user logs in as far as I can tell, the queue is created (causing the above mentioned queue stall) and then the login script activates causing another stall of the queues.

Do you find it works the same way?

I dont really have a problem except that my customers who operate the hotspots are accusing me of the system not working properly because they see all traffic on the queues temporarily reset to zero as all queues are enabled again.

Rgds,

Alex

Instead of using simple queues to known servers, use queue tree. It should solve your problem.

I would like to see improvements:

  • it would be nice to be able to dynamically expand already created “named” queues, so we would be able to group all computers of particular client into one simple queue dynamically [maybe via radius attributes, add queue-name?] now i have to do it manually.
  • specifing parent queue via radius attribute for dynamic queue

So what about it, MikroTik team?

ayufan I’ve attempted to use the queue tree before but need to know how it works in conjunction with the simple queues (which all the hotspot user queues are created under)

Is there any documentation you know of that lists how these 2 function together?

I suppose that we should really be discussing like this:

Mikrotik Usermanager is creating dynamic simple queues. This would apply to PPPoe users as well as hotspot users. Also the hotspot usermanager with user profile is creating these simple queues.

How does the queue tree interact with these simple queues? I want to use the usermanager to allocate speed and volume to the user and so if I do that it creates the simple queue by itself.

Your help appreciated ayufan,

Rgds

Alex

Queue tree is handled before simple queues.
In my test lab I have 1 simple queue based on target ip, and 2 tree queues based on packet marks.
Also in Mangle → Pre/Postrouting i added packet marks to interface from packets will be comming

/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=0 name=queue1 packet-mark=test parent=global-in priority=8 \
    queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=0 name=queue2 packet-mark=test parent=global-out priority=8 \
    queue=default

/queue simple
add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s comment="" \
    direction=both disabled=no dst-address=0.0.0.0/0 interface=local.11 \
    limit-at=0/0 max-limit=1000000/1000000 name=LocalQueue parent=none \
    priority=8 queue=LocalQueueType/LocalQueueType target-addresses=\
    192.168.11.0/24 total-queue=default-small

/ip firewall mangle
add action=mark-packet chain=prerouting comment="" disabled=no in-interface=\
    local.11 new-packet-mark=test passthrough=no src-address=192.168.11.209
add action=mark-packet chain=postrouting comment="" disabled=no dst-address=\
    192.168.11.209 new-packet-mark=test out-interface=local.11 passthrough=no

In this particular example all traffic to 192.168.11.209 goes thru queue tree (queue1, queue2) and remaining traffic goes thru simple queue (LocalQueue).

does it work?

This seems to be working fine for me.

using an address list, mangle rule connection tagging and the queue tree rules I’ve been able to shift my un-speed limited sites over to the queue tree instead.

you have to configure everything correctly for simple queues to work together with queue-tree.

study this page very carefully:
http://wiki.mikrotik.com/wiki/Queue

and you should be able to create configuration, because if you are configuring mangle for queue tree in wrong place, it wont work.