PCQ / Queue Tree & Mangle Rules - IPs all limited to shared speed
Posted: Wed Nov 22, 2017 6:26 pm
I don't know if it's my lack of understanding or I'm just overlooking something simple, but I cannot get a pcq / queue tree to give each IP the desired speed, rather it shares the speed with all the IPs.
What I'm looking to do:
Queues:
Parent - 30M download
Child 1 - 4M download
Child 2 - 3M download
Child 3 - 2M download
There are multiple IPs for each child speed, and they are being specified in an appropriate address list (3M, 2M, etc). I'd like each IP address to be limited to the speed specified by their list but within the limits of the Parent rule.
What is happening:
Packets appear to be marked fine and parent / child appear to be working, but when multiple IP addresses are added to the address list, 3Mbps speed is shared by all IPs rather than getting 3Mbps for each IP address.
Thank you for any help.
Here is the config:
> ip firewall mangle print
> queue type print
> queue tree print
What I'm looking to do:
Queues:
Parent - 30M download
Child 1 - 4M download
Child 2 - 3M download
Child 3 - 2M download
There are multiple IPs for each child speed, and they are being specified in an appropriate address list (3M, 2M, etc). I'd like each IP address to be limited to the speed specified by their list but within the limits of the Parent rule.
What is happening:
Packets appear to be marked fine and parent / child appear to be working, but when multiple IP addresses are added to the address list, 3Mbps speed is shared by all IPs rather than getting 3Mbps for each IP address.
Thank you for any help.
Here is the config:
> ip firewall mangle print
Code: Select all
;;; 3M upload
chain=forward action=mark-packet new-packet-mark=3M-upload passthrough=no src-address-list=3Mbps
out-interface=ether1-WAN log=no log-prefix=""
;;; 3M download
chain=forward action=mark-packet new-packet-mark=3M-download passthrough=no
dst-address-list=3Mbps in-interface=ether1-WAN log=no log-prefix=""
Code: Select all
name="pcq-3M-download" kind=pcq pcq-rate=3M pcq-limit=50KiB pcq-classifier=dst-address
pcq-total-limit=2000KiB 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
name="pcq-3M-upload" kind=pcq pcq-rate=1M pcq-limit=50KiB pcq-classifier=src-address
pcq-total-limit=2000KiB 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
Code: Select all
name="3M Download" parent=30M Download packet-mark=3M-download limit-at=0 queue=pcq-3M-download
priority=8 max-limit=3M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
name="30M Download" parent=global packet-mark="" limit-at=0 queue=pcq-download-default priority=8
max-limit=30M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1