Skip to content

Instantly share code, notes, and snippets.

@TheSkorm
Created October 20, 2012 09:59
Show Gist options
  • Select an option

  • Save TheSkorm/3922835 to your computer and use it in GitHub Desktop.

Select an option

Save TheSkorm/3922835 to your computer and use it in GitHub Desktop.
Bandwidth quota for mikrotik with a freezone
/queue tree get number=queue1 value-name=bytes
print out the number of bytes
:put [/queue tree get number=queue1 value-name=bytes ]
:if ($bytesIn > 53687091200) do={
:global bytesIn;
:set bytesIn [/queue tree get number=queue1 value-name=bytes ];
:global date;
:set date [/system clock get value-name=date] ;
:global day;
:set day "";
:for i from=( [:len $date] - 1) to=4 do={
:if ( [:pick $date $i] = "/") do={
:set day ($day . [:pick $date 4 $i]);
}
}
:if ($day = "01") do={
:if ([:pick [/system clock get time] 0 5] = "00:00") do={
/queue tree disable queue2;
/queue tree reset-counters queue1,queue2;
}
}
:if ($bytesIn > 5365) do={
/queue tree enable queue2;
}
/system script
add name=bandwidth policy=read,write,policy,test,sniff source=":global bytesIn;\
\n:set bytesIn [/queue tree get number=queue1 value-name=bytes ];\
\n\
\n:global date;\
\n:set date [/system clock get value-name=date] ;\
\n:global day;\
\n\
\n:set day \"\";\
\n\
\n:for i from=( [:len \$date] - 1) to=4 do={ \
\n\t:if ( [:pick \$date \$i] = \"/\") do={ \
\n\t\t:set day (\$day . [:pick \$date 4 \$i]);\
\n\t} \
\n}\
\n\
\n:if (\$day = \"01\") do={\
\n:if ([:pick [/system clock get time] 0 5] = \"00:00\") do={\
\n/queue tree disable queue2;\
\n/queue tree reset-counters queue1,queue2;\
\n}\
\n}\
\n\
\n\
\n\
\n\
\n:if (\$bytesIn > 53687091200) do={\
\n/queue tree enable queue2;\
\n}"
/system scheduler
add disabled=no interval=15s name=bandwidth on-event="/system script run bandwidth" policy=\
read,write,policy,test start-time=startup
/interface bridge filter
add action=mark-packet chain=forward disabled=no dst-address=59.167.158.64/26 mac-protocol=ip \
new-packet-mark=internal src-address=59.167.158.64/26
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=queue1 \
packet-mark=no-mark parent=Erin priority=8
/queue simple
add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s direction=both disabled=no interface=Erin \
limit-at=0/0 max-limit=0/0 name=queue1 packet-marks="" parent=none priority=8 queue=\
default-small/default-small target-addresses="" total-queue=default-small
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=yes limit-at=128k max-limit=128k name=\
queue2 packet-mark=no-mark parent=queue1 priority=8 queue=default
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment