community features request

Oleg lego12239 at yandex.ru
Mon Mar 19 21:37:51 CET 2012


On Mon, Mar 19, 2012 at 12:43:40PM +0100, Ondrej Zajicek wrote:
> On Fri, Mar 09, 2012 at 12:53:32AM +0400, Oleg wrote:
> > >   The code:
> > >   comm = filter(bgp_community, allowed);
> > >   bgp_community.delete([(myas,*)]);
> > >   bgp_community.add(comm);
> > > 
> > >   could be done if comm would be clist and adding clist to clist would
> > >   be implemented (which i could add, this is simple).
> > 
> > This would be nice! I'm ready to git-pull :-).
> 
> Implemented in commit 0888a737b045b48106edbd28ba3cd62fcc8c191e,
> 
> Also allows number ~ bgppath match.

It works! Now my function is:

function filter_communities(pair set allowed)
clist comm;
pair set def_allowed;
{
        def_allowed = [(myas,1000), (myas,1001), (myas,1002)];
        if ( (0,0) ~ allowed ) then
                allowed = def_allowed;
        comm = filter(bgp_community, allowed);
        bgp_community.delete([(myas,*)]);
	bgp_community.add(comm);
	if ! ( comm ~ [(0,0)..(65535,65535)] ) then
	   if ( (myas,1000) ~ allowed ) then
	      bgp_community.add((myas,1000));
}

One question. Is "! ( comm ~ [(0,0)..(65535,65535)] )" construction fast?



More information about the Bird-users mailing list