Question about global in queue tree V6.x

I believe if we put a Queue Tree on the LAN interface for Download customers max-limit, one Queue Tree on the WAN interface for upload customers max-limit we will still have the Global to put two more Queue Trees - one for upload QoS and one for Download QoS. (separate upload/download packet marks needed)

But macgaivers example is cooler I think - move the QoS to each customer’s “Simple Queue” turning the Simple Queue to a HTB structure with QoS per customer. Now that this is optimised in v6.
/queue tree
add max-limit=450k name=UP-TOTAL parent=WAN
add max-limit=3900k name=DW-TOTAL parent=LAN
add max-limit=457k name=USLUGI_ALL_UP parent=global
add max-limit=3800k name=USLUGI_ALL_DW parent=global
add limit-at=150k max-limit=720k name=n1d packet-mark=1d parent=USLUGI_ALL_DW priority=1 queue=default
add limit-at=600k max-limit=3700k name=n3d packet-mark=3d parent=USLUGI_ALL_DW priority=3 queue=default
add limit-at=90k max-limit=200k name=n1u packet-mark=1u parent=USLUGI_ALL_UP priority=1 queue=default
add limit-at=80k max-limit=300k name=n3u packet-mark=3u parent=USLUGI_ALL_UP priority=3 queue=default
add max-limit=3700k name=DW_reszta parent=USLUGI_ALL_DW
add max-limit=450k name=UP_reszta parent=USLUGI_ALL_UP
add limit-at=200k max-limit=2M name=n5d packet-mark=5d parent=DW_reszta priority=5 queue=default
add limit-at=50k max-limit=400k name=n5u packet-mark=5u parent=UP_reszta priority=5 queue=default
add limit-at=1M max-limit=3800k name=Reszta-D packet-mark=ludzie-d parent=DW-TOTAL priority=4 queue=pcq-download-default
add limit-at=100k max-limit=440k name=Reszta-U packet-mark=ludzie-u parent=UP-TOTAL priority=5 queue=pcq-upload-default
add limit-at=400k max-limit=3600k name=dopal-d packet-mark=dopal-d parent=DW-TOTAL priority=2 queue=wireless-default
add limit-at=100k max-limit=440k name=dopal-u packet-mark=dopal-u parent=UP-TOTAL priority=2 queue=wireless-default
add max-limit=3200k name=n6d packet-mark=6d parent=DW_reszta priority=6 queue=wireless-default
add limit-at=50k max-limit=400k name=n6u packet-mark=6u parent=UP_reszta priority=6 queue=wireless-default
add max-limit=3700k name=n8d packet-mark=8d parent=DW_reszta queue=wireless-default
add max-limit=400k name=n8u packet-mark=8u parent=UP_reszta queue=wireless-defaultBut the stuff attached to global is Invalid in the current 6.0rc2 dev build ? :neutral_face:
QueueTreeInvalid.png

macgaivers example isn’t cooler for me I don’t want to penetration of a single client bandwidth,
No self-respecting network (and network that respecting their customers) does not doing this.
this is a customer choice what he’s doing with his bandwidth
our goal is to carry of whole network bandwidth (when we have a many customers online we have to carry that all services must work on the same good level)

macgyver’s solution has another big problem when I create tree for everyone customers separately, I can’t use PCQ for limitation.
now for example we have 10Mbit/5Mbit
and for example 10 customers (friends ;p) and no one wants strict 1Mbit max..
so we create for example pcq type queue with rate 7Mbit so if on-line is only 1 client he has 7Mbit … if 2 clients are on-line they have 5Mbit and…
PCQ works in this situation perfectly ! and very fast modifies the rate of customer (this is on-line :slight_smile: )

So PCQ with global tree (whole network) services prioritization we have good solution …

with trees in simple queue for everyone customers separately this is impossible

maybe is possible but I can’t imagine what complicate must be simple queues and how many queues we have to creates (and we now that if queues are more complicated and we have many of queues we have worse “ping”, jitter, delay for services … we must have more efficient hardware etc…

so if I can’t do this in V6, I will don’t buy MT in the future and this will by one more reason to choose for example EdgeRouter (UBNT) with open linux when I can do what I want …

We have this choice I agree with having freedom to choose.

The Simple Queues have a parent setting so all client’s SQs will be under one parent, this way they should reach the max-limit of their parent.

This is just again HTB “Queue Tree” structure but it was called “Simple Queue” to make us think it is easy to accomplish what we want :laughing:

As for “client chooses what to do with their bandwidth” this is not a pragmatic view because the client says " why u no prioritise my game traffic, I go to other ISP now!".

I only want use pcq for client limitation (grouping customers in they rates for big networks, and dynamicaly limits in smal networks like my previous post) and global prioritization (whole network)
I don’t want use one queue for one client… this is a reason why I use pcq

if developers from mikrotik abandoned idea with Dual Queue-ing/shaping this is very disappointing

mayby remarking is unnecessary for Dual Queue-ing/shaping in V6 … but for this moment I don’t now how do this without remarking and two places for queues

Jānis Meģis would be handy in this topic :smiley:


As for “client chooses what to do with their bandwidth” this is not a pragmatic view because the client says " why u no prioritise my game traffic, I go to other ISP now!".

I use this view for several small networks with ADSL, for several with about 30-80Mbit and a several with 500-1200Mbit and everyone working fine (of course, each requiring individual optimization) but the idea of queue-ing is the same. and in the commercial networks with this idea customers are happy and there are more and more customers :slight_smile: so I think this is good road to go ;p

I just like simple and effective solutions :slight_smile:

+1

We can use SQ for a subnet with queue type PCQ.

and I must use on one AP’s a several subnets (subntes as much as tariffs I sell to customers on each ap’s ) because each commercial networks are… with routing of corse ;p… no thanks I’m using address-lists for grouping that, this is scalable solution

but I known in v6…If I use mangle for traffic … and use it in tree for services then I can’t mark it agin for … limitation …and the circle is closed :frowning:

Test this when stable v6 gets out. :wink:

one more thing about

what about this… (typical situation) …for example we have 20 routers/AP’s they are connected to backbone network, on each router/AP’s we has subnet /24 for clients… of course on each router we have different subnet… and of course on each router/AP clients have different tariffs (couple have 2/2Mbit couple have 3/1Mbit …), but they are in the same subnet on AP :slight_smile:

so how to use

in this situation …this is … useless … for grouping we have address-lists

PCQ as we known works good if we grouping to one group as many as possible the same type of traffic (tarffis etc…)
queues where we have couple the same groups but in different queue and every queues is pcq is … meaningless

We can use address-list to mark packets and use the packet mark for SQs :smiley:

so we have to wait for stable V6

do You known why you have INVALID state in tree ? it’s look like BUG in system

its a dev build I’ve asked them via e-mail if they do not reply I assume they are working on it.

I’m not sure I understand the problem… if you were using global-in and global-out with different packet marks, then changing parent to just ‘global’ should not change anything - you will mark in prerouting, packets will go to necessary queues, then you will remark in forward/postrouting, and packets will go to another queues for second stage of double-qos. that’s how global-total works, according to manual )))

moreover (if you mark all traffic in both steps, so packet marks are changed between prerouting and postrouting), in v5 you should be able to change global-in/out to global-total, and everything should still work as earlier

no Chupaka … Currently (v6) double QoS is not possible
I tested it ( I was thought the same as you at start)..but it doesn’t work is possible in v5 (and earlier) but not in v6

but you miss something ..in v6 you dont have two places for queues… only one on the end of chain…
not two places (in the beginning ..global-in + prerouting for mangle, and second on the end global-out with forward for mangle)
we can’t use two politics in one time …if you do this …you just lose yors mark from prerouting … (remark without queueing)
in old politic you mark then queueing then second mark and second queueing

I corresponded with Janis Megis and he confirmed it.
currently they have some of directions, and are waiting for more feedback from customers and then they will decide on what to do

I’m watching that presentation, and… it sucks. I don’t know why they say that ‘global’ is like ‘global-total’, the only similarity they have is that they both are in HTB %) ‘global’ has nothing to do with ‘-total’, actually…

so, MT deceived me, I deceived you - I’m sorry :slight_smile:

Thanks for your suggestions guys, we have addressed it:
http://forum.mikrotik.com/t/double-qos-for-v6-is-possible/60963/1

Could someone show how to do now qos the example given by bawolek?

Look at the posts, I agree with bawolek’s view.

‘queue tree’ of V6.x is very different with V5.x .

Dear macgaiver
Your example doesnt work for me. When I create parent simple queue. Taget ip is limited, but whenever I create child queue with packet marks option. Only packet mark option traffic limited, Other traffic unlimited :open_mouth: :frowning: :frowning:

Configuration:
[admin@MikroTik] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=prerouting action=mark-connection new-connection-mark=icmp_conn
passthrough=yes protocol=icmp

1 chain=prerouting action=mark-packet new-packet-mark=icmp passthrough=no
connection-mark=icmp_conn

[admin@MikroTik] /queue simple> print
Flags: X - disabled, I - invalid, D - dynamic
0 name=“main” target=217.11.178.60/32 parent=none packet-marks=“”
priority=8/8 queue=default-small/default-small limit-at=0/0
max-limit=256k/512k burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s

1 name=“icmp” target=217.11.178.60/32 parent=main packet-marks=icmp
priority=1/1 queue=default-small/default-small limit-at=0/0
max-limit=240k/500k burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s
total-priority=1

Could you check my configuration ?

In above configuration only ICMP traffic is limited other traffic is unlimited
I really need help

version 6.2rc1

You need to add another child queue for rest of the traffic and all will be OK