Strange behaviour on filtering bgp_large_community ...
Tim Weippert
weiti+bird-users at weiti.org
Sat May 20 10:21:22 CEST 2023
Hi Ondrej,
On Fri, May 19, 2023 at 01:43:48AM +0200, Ondrej Zajicek wrote:
> On Mon, May 15, 2023 at 12:59:11PM +0200, Tim Weippert via Bird-users wrote:
> > Hi List,
> >
> > maybe i'm doing something wrong, but if i use some quick and dirty
> > filter on the CLI all is working as expecting:
> >
> > show route where bgp_large_community ~ [(65000, 0, 1001)]
> > show route where (65000, 0, 1001) ~ bgp_large_community
[ ... ]
> Hi
>
> Set expressions like [...] in BIRD are static and created in parse-time.
> Therefore [(65000, 0, 1001)] is valid, while [(65000, 0, TestID)] is
> valid only if TestID is constant (like with 'define TestID = 100;').
>
> In your case of filter_large() the TestID is a local variable, so
> [(65000, 0, TestID)] should fail during configuration parsing as
> non-constant expression. It seems it is not checked, so it is probably
> just evaluated TestID to zero or some random value and used that.
Understood, so it depends if it is a static text like in my CLI tests or
an "variable which are changed in runtime". But the usage of
'(65000, 0, TestID) ~ bgp_large_community' will work with both
expressions. So for my use case it would be good to stick with one
variant which works in both situations.
thanks & regards,
tim
--
Tim Weippert
http://weiti.org - weiti at weiti.org
GPG Fingerprint - E704 7303 6FF0 8393 ADB1 398E 67F2 94AE 5995 7DD8
More information about the Bird-users
mailing list