Hi, Line 21 is : if ( (100,101) ~ bgp_community ) then { myc = add(myc, (100,101)); }
I tried defining allow_communities as a clist also but it did not work either. In the end i changed everything to bgp_community.delete ( <pair set > ), but we have a huge list of peers and the <pair set> to define them is huge and hard to maintain. Now i have a script in python to generate the <pair set> from a file containing the ASN of our peers. By the way, is there a way to call an external script from filters ? To be more explicit i would like to filter according to RIPE route objects. Best Regards, Mihai Claudiu Capatina Managing Partner Vector Communications SRL Address : Aleea Cetatuia, Nr. 4, Bl. M22, Sc. 5, Et. 2, Ap. 276, Sect. 6, Bucuresti, 060834 Romania Phone: +40-729-087003 Fax: +40-318-146297 www.vector-communications.net On Jun 16, 2011, at 3:11 PM, Ondrej Zajicek wrote: > On Wed, Jun 15, 2011 at 04:09:13PM +0300, Mihai Claudiu Capatina wrote: >> >> Hi, >> >> We are trying to filter unwanted communities that our peering partners have >> forgot to remove in order not to send them to other peering parties. >> In order to do this we add the communities we want to a clist parameter, >> empty bgp_community, then add the clist back to bgp_community. >> > ... >> The problem appears in the log fie : >> >> Jun 15 15:59:59 jls bird: filters, line 21: Can't add/delete to non-clist >> Jun 15 15:59:59 jls last message repeated 4 times >> Jun 15 15:59:59 jls bird: ... >> >> We are running BIRD 1.3.1 on FreeBSD 6.2. >> >> Can you please point me in the right direction ? > > Which line in your config file is line 21? > I am not sure what is a default value of local variable myc, > perhaps you could init it using 'myc = - empty -;' > (undocumented syntax for empty clist). > > One obvious problem is here: > > allow_communities = check_allow_communities(); > > Because allow_communities has a type pair set, but > check_allow_communities returns clist) > > I thing that problem is that bgp_community.add cannot add clist, > just a pair of pair set (but it is true that extending add operation > to handle clist is natural). > > But even if bgp_community.add worked with clist, it probably wouldn't > do what you wanted. > > The simplest way to remove unwanted communities is just: > > bgp_community.remove( [set of unwanted communities] )' > > -- > 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."