Community discussions

MUM Europe 2020
 
rviteri
Frequent Visitor
Frequent Visitor
Topic Author
Posts: 84
Joined: Fri Nov 18, 2011 5:53 pm

:len fails to count after 4095

Wed May 02, 2012 4:24 pm

Hi I am following this script to add routes to an address-list:

http://www.mikrotik-routeros.com/2010/0 ... -mikrotik/

The script downloads a text fiel and then uses the function :len to count the characters in the file. I noticed that :len works up to 4095 beyond that it returns 0 instead of the actual number.

Is this a Mikrotik limitation?

PS: I am using a RB751u-2HnD
PS2: I tested using :len on a separate script pointing to the downloaded file.

Thanks,
 
jandafields
Forum Guru
Forum Guru
Posts: 1514
Joined: Mon Sep 19, 2005 6:12 pm

Re: :len fails to count after 4095

Wed May 02, 2012 6:09 pm

4096 is the limit of a 12-bit integer, so that would be a hardcoded limitation of the mikrotik software.

If you really need to go above this, use a second counter to count the number of times it "rolls-over", and then calculate it that way.

So, for example, if $a is your rollover counter, and $b is your regular counter, then:

$a=5
$b=500

$total = ($a * 4096) + $b = 20980

This would give you a total number of 24-bits, which is over 16 million.
 
rviteri
Frequent Visitor
Frequent Visitor
Topic Author
Posts: 84
Joined: Fri Nov 18, 2011 5:53 pm

Re: :len fails to count after 4095

Wed May 02, 2012 7:58 pm

I am trying to use the :len function. How can I resolve this using this function?
 
jandafields
Forum Guru
Forum Guru
Posts: 1514
Joined: Mon Sep 19, 2005 6:12 pm

Re: :len fails to count after 4095

Wed May 02, 2012 9:29 pm

With some creative scripting based on the approach I gave above... you will have to do something to monitor the value of len so you know how many times it rolls over.
 
rviteri
Frequent Visitor
Frequent Visitor
Topic Author
Posts: 84
Joined: Fri Nov 18, 2011 5:53 pm

Re: :len fails to count after 4095

Thu May 03, 2012 4:07 am

Alright, thanks. I'll give it a shot.
 
User avatar
omega-00
Forum Guru
Forum Guru
Posts: 1167
Joined: Sat Jun 06, 2009 4:54 am
Location: Australia
Contact:

Re: :len fails to count after 4095

Fri May 11, 2012 2:08 pm

Unfortunately if you are trying to read a file longer than this size you're not going to have much luck. If it's just variables on the router you're working with the there's ways to break these up however drawing in content from a file requires being able to read the thing; which is not possible without the reintroduction of LUA which was originally proposed for v4 but pulled before release.


http://wiki.mikrotik.com/wiki/Manual:Lua
brightwifi.com | mikrotik-routeros.com | MTCNA,MTCWE.MTCTCE | Give karma where due

Who is online

Users browsing this forum: gazdaboza, pcdave and 18 guests