Deleting unallowed communities

Alexander Shikoff minotaur at crete.org.ua
Mon Sep 6 19:18:06 CEST 2010


On Mon, Sep 06, 2010 at 07:00:58PM +0200, Ondrej Zajicek wrote:
> On Mon, Sep 06, 2010 at 07:45:15PM +0300, Alexander Shikoff wrote:
> > Hello,
> > 
> > is it possible in filter to delete all communities except ones which
> > are stored in pre-defined list?
> 
> It is possible to do that, but you have to manually invert the list
> of communities. For example instead of a list of allowed communities:
> 
> [(123,100), (456,200), (789,300)]
> 
> you would use a list of rejected communities:
> 
> [(0,0)..(123,99), (123,101)..(456,199), (456,201)..(789,299),
>  (789,301)..(65535,65535)]
> 
> in bgp_community.delete().

Ondrej, thank you for reply.

I tried the following code:

function check_community (clist c)
clist wrong;
{
        wrong = [
                (0,0)..(0,25371),
                (0,25373)..(0,31209),
                (0,31211)..(31209,65535),
                (31210,0)..(31210,25371),
                (31210,25373)..(31210,65535),
                (31211,0)..(65535,65281),
                (65535,65283)..(65535,65535)
        ]; 
        c.delete(wrong);
}

But bird reports error:
bird> configure
Reading configuration from /usr/local/etc/bird.conf
/usr/local/etc/bird.conf, line 37: syntax error

Line 37 is:

c.delete(wrong);

I tried both c.delete(wrong) and delete(c,wrong) - the result is the same:
syntax error.

-- 
MINO-RIPE



More information about the Bird-users mailing list