Help with PCQ queue... wiki is dated

I was trying to follow the wiki example when I got to this section:

/queue tree add parent=> global-in > queue=PCQ_download packet-mark=client_download
/queue tree add parent=> global-out > queue=PCQ_upload packet-mark=client_upload

I’m new to RouterOS, so I’m guessing a little that something’s changed since this document was written. There is no “global-in” or “global-out”. Google tells me the same, as I found a few references that they have been replaced with “global”, but I’ve found no detailed example an their use. I trudged ahead simply replacing both with “global” but when I test it, the download is by no means shared equally. I set one PC to download a large file and then started another to do the same (using a different prototcol just for fun). The latter trounced the former, chewing up nearly all the available bandwidth. The rules were obviously doing something because, without them, one would grind to a halt and that’s not the case. That leads me to believe that perhaps the upload is effectively shared to some extent, allowing the download to be shared to some functional, but not fair, degree.

It isn’t good enough. I want that which is advertised :slight_smile: Fair sharing.

Please help.

Below is my full config, but please note that the pertenent bits are exactly as the afformentioned example except with “global” in place of both “global-in” and “global-out”

Thank you.

ps - I also believe there is a typo on that WIKI entry. In step “1” it says:

(lets constider that ether1-> L> AN is public interface to the Internet and ether2-LAN is local interface where clients are connected

but then goes on to say:

/ip firewall mangle add chain=prerouting action=mark-packet \
   in-interface=ether1-LAN new-packet-mark=client_upload
/ip firewall mangle add chain=prerouting action=mark-packet \
   in-interface=ether2-WAN new-packet-mark=client_download

Surely the first paragraph should have ether1-WAN and the 2nd paragraph has LAN and WAN swapped. Let’s not mention the spelling of “constider” :slight_smile: Mistakes like these really confuse us noobs. Perhaps intentional.

# may/28/2016 22:39:23 by RouterOS 6.35.2
# software id = 48GP-CXP0
#
/interface bridge
add admin-mac=E4:8D:8C:22:42:40 auto-mac=no comment=defconf name=bridge
/interface ethernet
set [ find default-name=ether1 ] name=01-WAN
set [ find default-name=ether2 ] name=02-OfficePC
set [ find default-name=ether3 ] master-port=02-OfficePC name=03-Server
set [ find default-name=ether4 ] master-port=02-OfficePC name=04-WAP
set [ find default-name=ether5 ] master-port=02-OfficePC name=05-Switch
set [ find default-name=ether6 ] name=06-VoIP-Master
set [ find default-name=ether7 ] master-port=06-VoIP-Master name=\
    07-RainForest
set [ find default-name=ether8 ] master-port=06-VoIP-Master name=08-Sprinkler
set [ find default-name=ether9 ] name=09-Slow3
set [ find default-name=ether10 ] name=10-Slow4
/ip neighbor discovery
set "01-WAN" discover=no
set bridge comment=defconf
/ip pool
add name=dhcp ranges=192.168.1.10-192.168.1.254
/ip dhcp-server
add address-pool=dhcp disabled=no interface=bridge name=defconf
/queue type
add kind=pcq name=pcq-download pcq-classifier=dst-address \
    pcq-dst-address6-mask=64 pcq-rate=13M pcq-src-address6-mask=64
add kind=pcq name=pcq-upload pcq-classifier=dst-address \
    pcq-dst-address6-mask=64 pcq-rate=700k pcq-src-address6-mask=64
/queue simple
add disabled=yes name=test queue=pcq-upload/pcq-download target=bridge
/queue tree
add name=queue1 packet-mark=client_download parent=global queue=pcq-download
add name=queue2 packet-mark=client_upload parent=global queue=pcq-upload
/interface bridge port
add bridge=bridge comment=defconf interface=02-OfficePC
add bridge=bridge comment=defconf interface=06-VoIP-Master
add bridge=bridge comment=defconf interface=sfp1
/ip address
add address=192.168.1.1/24 comment=defconf interface=02-OfficePC network=\
    192.168.1.0
/ip dhcp-client
add comment=defconf dhcp-options=hostname,clientid disabled=no interface=\
    01-WAN
/ip dhcp-server lease
add address=192.168.1.104 client-id=1:68:7f:74:5b:39:b8 comment=\
    "Linksys PAP2T" mac-address=68:7F:74:5B:39:B8 server=defconf
add address=192.168.1.103 comment=Server mac-address=94:DE:80:E2:EF:C4 \
    server=defconf
add address=192.168.1.106 client-id=1:d8:d5:b9:0:22:0 comment=\
    "RainForrest Smart Meter" mac-address=D8:D5:B9:00:22:00 server=defconf
add address=192.168.1.105 client-id=1:0:1e:c0:d7:1e:43 comment=OpenSprinkler \
    mac-address=00:1E:C0:D7:1E:43 server=defconf
/ip dhcp-server network
add address=192.168.1.0/24 comment=defconf gateway=192.168.1.1 netmask=24
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.1.1 name=router
/ip firewall filter
add chain=input comment="defconf: accept ICMP" protocol=icmp
add chain=input comment="defconf: accept established,related" \
    connection-state=established,related
add action=drop chain=input comment="defconf: drop all from WAN" \
    in-interface=01-WAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related disabled=yes
add chain=forward comment="defconf: accept established,related" \
    connection-state=established,related
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf:  drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface=01-WAN
/ip firewall mangle
add action=mark-packet chain=prerouting in-interface=01-WAN new-packet-mark=\
    client_download
add action=mark-packet chain=prerouting in-interface=bridge new-packet-mark=\
    client_upload
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    out-interface=01-WAN
add action=masquerade chain=srcnat comment="Hairpin NAT" dst-address=\
    192.168.1.0/24 out-interface=bridge src-address=192.168.1.0/24
add action=dst-nat chain=dstnat comment="Server Webmin1" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8081 protocol=tcp \
    to-addresses=192.168.1.103 to-ports=8081
add action=dst-nat chain=dstnat comment="Server Webmin2" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8082 protocol=tcp \
    to-addresses=192.168.1.103 to-ports=8082
add action=dst-nat chain=dstnat comment="Server Webmin3" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8083 protocol=tcp \
    to-addresses=192.168.1.103 to-ports=8083
add action=dst-nat chain=dstnat comment="Server Webmin4" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8084 protocol=tcp \
    to-addresses=192.168.1.103 to-ports=8084
add action=dst-nat chain=dstnat comment="Server Webmin5" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8085 protocol=tcp \
    to-addresses=192.168.1.103 to-ports=8085
add action=dst-nat chain=dstnat comment="PAP2T Webmin" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8086 protocol=tcp \
    to-addresses=192.168.1.104 to-ports=80
add action=dst-nat chain=dstnat comment="OpenSprinkler Webmin" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8087 protocol=tcp \
    to-addresses=192.168.1.105 to-ports=80
add action=dst-nat chain=dstnat comment="RainForest Webmin" dst-address=\
    !192.168.1.1 dst-address-type=local dst-port=8088 protocol=tcp \
    to-addresses=192.168.1.106 to-ports=80
/system clock
set time-zone-name=America/Vancouver
/system routerboard settings
set protected-routerboot=disabled
/tool mac-server
set [ find default=yes ] disabled=yes
add interface=bridge
/tool mac-server mac-winbox
set [ find default=yes ] disabled=yes
add interface=bridge

Other than updating the wiki… feel free to ignore this thread. I found my answer in this post.