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@weiti.org GPG Fingerprint - E704 7303 6FF0 8393 ADB1 398E 67F2 94AE 5995 7DD8