:foreach i in=[/ppp active find] \
do= { \
:set sName [/interface get $i name]
:set sTotalBytes [/queue simple get $sName total-bytes] ; \
:set sUptime [/ppp active get $i uptime]
:set mLimit [/queue simple get $sName max-limit]
:set slashpos [:pic [:find $mLimit "/"]]
:set mdSize [:pic $mLimit [:tonum(([:tonum($slashpos)] +1))] 30]
:set mPart ([:pic $mLimit [:tonum(([:tonum($slashpos)] +1))] 30] / 4)
:set muSize [:pic $mLimit 0 $slashpos]
:if ($sUptime < 30m && $sTotalBytes >10240000) \
do={ \
:set NewSpeed ($muSize . "/" . ($mdSize - $mPart))
:log info ("SPEED " . $sName . " exceeds 10 Mega Bytes and has
been online for " . $sUptime . " reducing speed to " . $NewSpeed )
/queue simple set $sName limit-at=$NewSpeed max-limit=$NewSpeed
:log info ("SPEED " . $sName . " Total Download:" .
[:tostr($sTotalBytes)] . " and has been online for " . $sUptime )
}
:if ( $sUptime >30m && $sUptime < 1h && $sTotalBytes >15360000) \
do={ \
:set NewSpeed ($muSize . "/" . ($mdSize - $mPart))
:log info ("SPEED " . $sName . " exceeds 15 Mega Bytes and has
been online for " . $sUptime . " reducing speed to " . $NewSpeed )
/queue simple set $sName limit-at=$NewSpeed max-limit=$NewSpeed
:log info ("SPEED " . $sName . " Total Download:" .
[:tostr($sTotalBytes)] . " and has been online for " . $sUptime )
}
:if ( $sUptime >1h && $sUptime < 5h && $sTotalBytes > 51200000) \
do={ \
:set NewSpeed ($muSize . "/" . ($mdSize - $mPart))
:log info ("SPEED " . $sName . " exceeds 50 Mega Bytes and has
been online for " . $sUptime . " reducing speed to " . $NewSpeed )
/queue simple set $sName limit-at=$NewSpeed max-limit=$NewSpeed
:log info ("SPEED " . $sName . " Total Download:" .
[:tostr($sTotalBytes)] . " and has been online for " . $sUptime )
}