On Fri, Nov 08, 2013 at 01:37:49PM +0100, Milan Kocian wrote:
> hi,
> 
> I tried set up private 4b AS number (4200000000-4294967294). And I've 
> discovered
> that my filters using int datatype doesn't work with these numbers. The reason
> is 'int' size (from -2000000000 to +2000000000).

Hello

It kind of works. Although arithmetic operations and print handles such
numbers as signed, they are read as unsigned and could be used and
compared without much problems. Numbers higher than 2147483647 are just
mapped (overflow) to negative numbers.

Therefore expressions like these works:

i = 4200001234;
if bgp_path.last = i then ...
if bgp_path.last >= 4200000000 && bgp_path.last <= 4294967294 then ...

Although users have to be a bit careful (e.g. 4000000000 < 1 returns true).

-- 
Elen sila lumenn' omentielvo

Ondrej 'SanTiago' Zajicek (email: santi...@crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."

Attachment: signature.asc
Description: Digital signature

Reply via email to