Community discussions

MikroTik App
 
kirkian
just joined
Topic Author
Posts: 17
Joined: Thu Apr 07, 2011 9:36 pm

QoS Double Marking: Per connection and traffic

Thu Apr 07, 2011 10:48 pm

Hello Mikrotik forum!

I have small Wisp in Buenos Aires where iam implementing QoS. I have read all type of documents, manuals, videos, etc. Including "NetworkPro" and "Workshop QoS Best Practice".

Anyhow, i have found incomplete this documents. Or there is something that iam not understanding.

Theoretically i could assign differents rates per type of user and then priorize traffic.

This is a simplified configuration with only one type of user (so here, there is no priority for types of users, this works great!) and priorize only icmp traffic following the concepts of "Workshop QoS Best Practice".

First of all the firewall mangle:
[admin@Casa] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; Conexiones
     chain=forward action=mark-connection new-connection-mark=conexion 
     passthrough=yes src-address-list=prueba 

 1   chain=forward action=mark-packet new-packet-mark=trafico passthrough=yes 
     connection-mark=conexion 

 2   chain=prerouting action=mark-packet new-packet-mark=icmp passthrough=no 
     protocol=icmp 

 3   chain=prerouting action=mark-packet new-packet-mark=not imcp passthrough=n>
     protocol=!icmp 

Secondly, my unique PCQ type:
[admin@Casa] /queue type> print
 0 name="default" kind=pfifo pfifo-limit=50 

... others types.......

///////////////////////ATTENTION: MY RATES PER USERS ARE 2M FOR DOWNLOAD AND 1M FOR UPLOAD//////////////////////////////////
 5 name="UP" kind=pcq pcq-rate=1M 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 

 6 name="DW" kind=pcq pcq-rate=2M 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 

Finally, my Queue Tree:
[admin@Casa] /queue tree> print
Flags: X - disabled, I - invalid 

/////////////////Here is the per connection queues/////////////////////////
 0   name="Total Download" parent=local limit-at=0 priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

 1   name="Download" parent=Download packet-mark=trafico limit-at=0 queue=DW 
     priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

 2   name="Total Upload" parent=public limit-at=0 priority=8 max-limit=0 burst-limit=>
     burst-threshold=0 burst-time=0s 

 3   name="Upload" parent=Subida packet-mark=trafico limit-at=0 queue=UP 
     priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 


/////////////////Here is the traffic priozitation///////////////////////////////

//////////////////////ATTENTION: Max-limit=10M////////////////////////////

 4   name="global" parent=global-in packet-mark="" limit-at=0 priority=8 
     max-limit=10M burst-limit=0 burst-threshold=0 burst-time=0s 

 5   name="ICMP" parent=global packet-mark=icmp limit-at=0 
     queue=default-small priority=1 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

 6   name="NOT ICMP" parent=global packet-mark=not imcp limit-at=0 
     queue=default-small priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 
Well... where is the problem?

This is not priorizing icmp traffic with one to five users (2M*5=10M). Pings are delayed.

Why not?

Because HTB with Queue Tree only priorize traffic if the actual bandwidth have reached Max-Limit, wich is seted on the parent queue.

Only this model works if i had a more than five users that are demanding more than 10M in total. In that case, pings are okay.

So..while the net, is not reaching the max-limit there is no traffic priozation.

Could be solved this problem?

I hope i have been clear.
My apologies for my poor english.

Take care!
Mathew
 
akosenko
newbie
Posts: 48
Joined: Fri Aug 21, 2009 8:56 am
Location: Lipetsk, Russia

Re: QoS Double Marking: Per connection and traffic

Fri Apr 08, 2011 11:57 am

At first - sorry, maybe you're was read this presentation - HTB QoS by Valens Riyadi, Indonesia http://mum.mikrotik.com/presentations/U ... 009USA.pdf

I think you must set limit-at and max-limit parameters in your prioritization queue tree (sorry for my English), here is what i mean:
//////////////////////ATTENTION: Max-limit=10M////////////////////////////

4   name="global" parent=global-in packet-mark="" limit-at=0 priority=8
     max-limit=10M burst-limit=0 burst-threshold=0 burst-time=0s

5   name="ICMP" parent=global packet-mark=icmp limit-at=0
     queue=default-small priority=1 limit-at=128k max-limit=3M burst-limit=0
     burst-threshold=0 burst-time=0s

6   name="NOT ICMP" parent=global packet-mark=not imcp limit-at=0
     queue=default-small priority=8 limit-at=64k max-limit=6M burst-limit=0
     burst-threshold=0 burst-time=0s 
try this, maybe it help you, anyway - put your test results here, all of us will be interested to know.
 
kirkian
just joined
Topic Author
Posts: 17
Joined: Thu Apr 07, 2011 9:36 pm

Re: QoS Double Marking: Per connection and traffic

Fri Apr 08, 2011 5:00 pm

At first - sorry, maybe you're was read this presentation - HTB QoS by Valens Riyadi, Indonesia http://mum.mikrotik.com/presentations/U ... 009USA.pdf

I think you must set limit-at and max-limit parameters in your prioritization queue tree (sorry for my English), here is what i mean:
//////////////////////ATTENTION: Max-limit=10M////////////////////////////

4   name="global" parent=global-in packet-mark="" limit-at=0 priority=8
     max-limit=10M burst-limit=0 burst-threshold=0 burst-time=0s

5   name="ICMP" parent=global packet-mark=icmp limit-at=0
     queue=default-small priority=1 limit-at=128k max-limit=3M burst-limit=0
     burst-threshold=0 burst-time=0s

6   name="NOT ICMP" parent=global packet-mark=not imcp limit-at=0
     queue=default-small priority=8 limit-at=64k max-limit=6M burst-limit=0
     burst-threshold=0 burst-time=0s 
try this, maybe it help you, anyway - put your test results here, all of us will be interested to know.
Hello!

No, but now i read that document. Thanks!

But yes, i have set limit-at for my global queue and i had the same results. I try to set it for a value lower and higher than my pcq queues, and all its the same.

Set limit at for my leaf queues have no sense too, because limit-at with priority only will guarantee a rate of bandwitch. I dont want to guarantee nothing. Only priorize traffic when my pcq queue its full. Priorize traffic only works with max limit set on inner queue.

NetworkPro document say:
Make a note that priority only works:

for leaf queues - priority in inner queue have no meaning.
if max-limit is specified (not 0)
In other words , iam only priorizing traffic when my backone its full. But i want to do that when a client have reached the bandwitch thats he pay(Rate of PCQ queue).

Are you working with QoS?

Thanks for your help!

Who is online

Users browsing this forum: kurei3nei, miankamran7100 and 28 guests