BIRD 2.x and arrays

Ondrej Zajicek santiago at crfreenet.org
Wed Jun 27 17:23:37 CEST 2018


On Wed, Jun 27, 2018 at 04:36:44PM +0200, Carlo Rengo wrote:
> Using "[ 192.168.60.0/24+ ]” works, however from the documentation I read the following regarding the `include` operator: 
> 
> 	Special operators include (~, !~) for "is (not) element of a set" operation - it can be used on […] on prefix and prefix (returning true if first prefix is more specific than second one)

Yes, that is true for "prefix ~ prefix" expression, not for "prefix ~
set" expression. When the second argument is set, then it has basic
meaning "is element of a set'.

> In my case I have "import where net ~ [ 192.168.60.0/24 ] ;”, which should be true because prefix 192.168.60.10/32 is more specific than 192.168.60.0/24.

No, this should be true if the net is a member of set [ 192.168.60.0/24 ],
which is true only for 192.168.60.0/24.

Such behavior is intentional, so people can specify exact prefixes in
prefix sets and match against the sets.

> That statement, in fact, is true on Bird 1.6.x. and, without the array ("import where net ~ 192.168.60.0/24 ;”), on Bird 2.0.x. 

No, the behavior is the same for v2.0.x and v1.6.x, see:

BIRD v2.0.2-26-g1771f70d-x ready.
bird> eval  192.168.60.10/32 ~ [ 192.168.60.0/24 ]
FALSE
bird> eval  192.168.60.10/32 ~ [ 192.168.60.0/24+ ]
TRUE


BIRD 1.6.3 ready.
bird> eval  192.168.60.10/32 ~ [ 192.168.60.0/24 ]
FALSE
bird> eval  192.168.60.10/32 ~ [ 192.168.60.0/24+ ]
TRUE

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at 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."



More information about the Bird-users mailing list