Upgrade from v4.17 -> v5.5 breaks PCQ Queues

I set up QoS and PCQ user queues recently on the same router (RB433 v4.17). I tested it and it was working without any problems. I didn’t implement it though, because I wanted to allow bursting for individual users and so I had to upgrade to v5.x first.

But after the upgrade to v5.5 my PCQ user queues stopped limiting the traffic. The packets still get marked correctly and they flow through the correct queues in the tree, but their speed is no longer limited at all. i.e. each user has maximum speed.

I have not tested to see if QoS is still working.

What is the difference between PCQ queues on v4.x and v5.x?

Just added functionality. I took PCQ from 4.17 on RB1000s to 5.3 (I think?) on x86 via copy/paste and it worked fine.
Is it possible you added bursting in a fashion that makes it appear as if you’re not policing the rate because everyone is constantly bursting? Can you post your relevant configuration? It is kinda hard to guess at a root cause with only a vague description to go on.

Just to make sure I wasn’t going mad, I downgraded to v4.17 and it worked fine. Then I upgraded to v5.5 again and it stopped working.

Sorry about that. Forgot rule #1! :slight_smile:

Here are the relevant settings:

Before upgrade

/ip firewall mangle print

78   ;;; Mark Basic User Profile Traffic
     chain=forward action=mark-packet new-packet-mark=basic_ul passthrough=no 
     src-address-list=basic 

79   chain=forward action=mark-packet new-packet-mark=basic_dl passthrough=no 
     dst-address-list=basic



/queue type print
 5 name="PCQ_down_256k" kind=pcq pcq-rate=256000 pcq-limit=50 
   pcq-classifier=dst-address pcq-total-limit=2000 

 6 name="PCQ_up_192k" kind=pcq pcq-rate=192000 pcq-limit=50 
   pcq-classifier=src-address pcq-total-limit=2000



/queue tree print
 0   name="Total_download" parent=ether3-LAN limit-at=0 priority=3 max-limit=4>
     burst-limit=0 burst-threshold=0 burst-time=0s 

 1   name="Total_upload" parent=ether2-WAN limit-at=0 priority=3 max-limit=512>
     burst-limit=0 burst-threshold=0 burst-time=0s 

 7   name="basic_download" parent=Total_download packet-mark=basic_dl 
     limit-at=384k queue=PCQ_down_256k priority=8 max-limit=4M burst-limit=0 
     burst-threshold=0 burst-time=0s 

11   name="basic_upload" parent=Total_upload packet-mark=basic_ul limit-at=0 
     queue=PCQ_up_192k priority=8 max-limit=512k burst-limit=0 
     burst-threshold=0 burst-time=0s

Directly after upgrade (I haven’t changed any settings)

/ip firewall mangle print
78   ;;; Mark Basic User Profile Traffic
     chain=forward action=mark-packet new-packet-mark=basic_ul passthrough=no 
     src-address-list=basic 

79   chain=forward action=mark-packet new-packet-mark=basic_dl passthrough=no 
     dst-address-list=basic



/queue type print
 5 name="PCQ_down_256k" kind=pcq pcq-rate=256k 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=128 
   pcq-dst-address6-mask=128 

 6 name="PCQ_up_192k" kind=pcq pcq-rate=192k 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=128 
   pcq-dst-address6-mask=128



/queue tree print
 0   name="Total_download" parent=ether3-LAN limit-at=0 priority=3 max-limit=4>
     burst-limit=0 burst-threshold=0 burst-time=0s 

 1   name="Total_upload" parent=ether2-WAN limit-at=0 priority=3 max-limit=512>
     burst-limit=0 burst-threshold=0 burst-time=0s 

 7   name="basic_download" parent=Total_download packet-mark=basic_dl 
     limit-at=384k queue=PCQ_down_256k priority=8 max-limit=4M burst-limit=0 
     burst-threshold=0 burst-time=0s 

11   name="basic_upload" parent=Total_upload packet-mark=basic_ul limit-at=0 
     queue=PCQ_up_192k priority=8 max-limit=512k burst-limit=0 
     burst-threshold=0 burst-time=0s

I’ve been at it all day but I can’t get this to work.

I’ve disabled every mangle rule and queue, except for the ones posted above, and I still have the same problem. The only thing I’ve discovered is that the user does not actually have maximum d/l speed, but rather around 3 times the speed of what the queue type’s rate is set at. e.g. When pcq-rate is set at 256k, then user can download at between 600-800k. If I change pcq-rate to 64k, then user download speed will between 150-200k.

I can also confirm that the problem is definitely with the pcq queue type.

I just changed both the limit-at and max-limit values for the “basic_download” queue, to 256k. I tested again and found that it limited the user correctly. e.g.

 7   name="basic_download" parent=Total_download packet-mark=basic_dl 
     limit-at=256k queue=PCQ_down_256k priority=8 max-limit=256k 
     burst-limit=0 burst-threshold=0 burst-time=0s

This doesn’t help me of course, because I have more than 1 basic user. :confused:

I’ve also tried deleting the pcq queue types and creating them again, but that doesn’t help either.

Please can anyone help me?

I don’t see what’s wrong with that configuration - looks like it should work.

Have you tried emailing support@mikrotik.com?

That’s what I thought. I’ve been searching the forums and re-reading the wiki all day, but but I just can’t see where the problem could be.

Nope, but but I’ll give them a buzz now and post back here when I know more.

Thanks fewi

Hi Gareth

After upgrading to V5.6 we are experiencing a similar problem with the pcq as you described here.

Has there been a resolution to that problem and, if so, could you provide more info?

maybe this is also tied to the 5.x versions showing incorrect totals for interfaces when queried via snmp. I have one router than shows 1/2 of the total, and another than shows about 1/4 of the total…