Код: Выделить всё
:local wanInterfaceName "wan0"
:local uploadBandwidth 4200k
:local queueName ("DSCP_" . $wanInterfaceName)
:local dscpClass [:toarray "Network Control,Internetwork Control,Critical,Flash Override,Flash,Immedate,Priority,Routine"]
:local dscp 64
:for thisDscp from 63 to 00 do={
/ip firewall mangle add action=mark-packet chain=postrouting comment=("dscp_" . $thisDscp) \
disabled=no dscp=$thisDscp new-packet-mark=("dscp_" . $thisDscp) passthrough=no
}
/queue tree add max-limit=$uploadBandwidth name=$queueName parent=$wanInterfaceName priority=1
:for thisDscp from=0 to=7 do={
:local subClass ([:pick $dscpClass $thisDscp] . " (" . $wanInterfaceName . ")")
/queue tree add \
name=($thisDscp+1 . ". " . $subClass ) parent=$queueName priority=($thisDscp+1) queue=ethernet-default
:for thisQueue from=0 to=7 do={
:set dscp ($dscp-1)
/queue tree add name=($subClass . " (Pri: " . $thisQueue+1 .")") \
parent=($thisDscp+1 . ". " . $subClass) priority=($thisQueue+1) \
packet-mark=("dscp_" . $dscp) queue=ethernet-default comment=("dscp_" . $dscp)
}
}