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."
signature.asc
Description: Digital signature