simple Priority Queue problem

Hello,

My aim is very simple, you do it with Priority Queue using Cisco Gears, in ROS I am not sure why its nor giving the proper result ..

I want to give one type of communication high priority for the packets that leaves my router, port #13001, any thung goes to that port should Go directly with no delay at all.

I made the mangle and it takes hits, all the packets will be remarked with “SL” tag, then from the Queue Tree this is my Configs :

[admin@MikroTik] /queue tree> print
Flags: X - disabled, I - invalid 
 0   name="queue1" parent=queue3 packet-mark=no-mark limit-at=0 queue=queue-download priority=8 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s 

 1   name="queue2" parent=queue3 packet-mark=SL-packet limit-at=0 queue=queue-download priority=1 max-limit=3500k burst-limit=0 
     burst-threshold=0 burst-time=0s 

 2   name="queue3" parent=global-in limit-at=0 priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

 3   name="queue4" parent=ether1-gateway limit-at=0 priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

 4   name="queue5" parent=queue4 packet-mark=no-mark limit-at=0 queue=queue-upload priority=8 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s 

 5   name="queue6" parent=queue4 packet-mark=SL-packet limit-at=0 queue=queue-upload priority=1 max-limit=0 burst-limit=0 burst-threshold=0 
     burst-time=0s

The Queue Types :

5 name="queue-download" kind=pcq pcq-rate=4M pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 pcq-burst-rate=0 
   pcq-burst-threshold=0 pcq-burst-time=10s pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=64 pcq-dst-address6-mask=64 

 6 name="queue-upload" kind=pcq pcq-rate=300k pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 pcq-burst-rate=0 
   pcq-burst-threshold=0 pcq-burst-time=10s pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=64 pcq-dst-address6-mask=64

Tried to make the priority “1” for the important packets, but still no real prioritization ..
SL-Queue.png
Dont worry all the packets get proper hits and makes something in the average rate ..
what did I mess ? when the download starts the delay for the packets going to 13001 goes very high as there is no priortization at all ..

Best Regards

What you want to say with this screenshot, where’s the priority realization here?

And yes, current prioritization implementation in ROS isn’t working as expected or do not working completely - it’s clearly a ROS problem. I don’t know how everyone on this forum make statements that “it works fine”, that not true, it (prioritization) works like crap…

hmmm,

I made the priority for the “SL-packets” tag = 1, and the other packets to 8 !

I guess it should work like that or I don’t understand the idea completely ..

Any clarifications ?

regards,

I want to give one type of communication high priority for the packets that leaves my router, port #13001, any thung goes to that port should Go directly with no delay at all.

RouterOS (well, HTB) doesn’t have the concept of strict priority queuing. There simply is no way to say “packets in this queue always go on the wire first”. That’s a restriction of the implementation. There’s nothing you can do about it. Your quoted request is impossible to do in RouterOS.

That said, you can somewhat prioritize packets, but there are caveats. You can find them here: http://wiki.mikrotik.com/wiki/Manual:HTB

Priority
We already know that limit-at (CIR) to all queues will be given out no matter what.

Priority is responsible for distribution of remaining parent queues traffic to child queues so that they are able to reach max-limit

Queue with higher priority will reach its max-limit before the queue with lower priority. 8 is the lowest priority, 1 is the highest.

Make a note that priority only works:

for leaf queues - priority in inner queue have no meaning.
if max-limit is specified (not 0)

You do not have limit-at defined in your queues (which governs the CIR every queue will get regardless), and you do not have max-limit defined. Priority works on the packets that are above the CIR, packets that would fall in a stream running between limit-at and max-limit. Therefore there’s nothing to prioritize in the configuration you posted.