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: 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."