eclist matching question

Alexander Shikov a.shikov at dtel-ix.net
Mon Jun 15 14:53:46 CEST 2020


Hello!

I have some strange behavior of list matching operator applied to eclist
in v.1.6.3.

Example filter function:

function test (int peer_as)
{
        if net = 109.68.40.0/21 &&
           peer_as = 28773 then {
                print "DEBUG2: ", bgp_ext_community;
        }

        if (rt,65001,peer_as) ~ bgp_ext_community then {
                print "DEBUG: Adding one prepend: ", bgp_path.first;
                bgp_path.prepend(bgp_path.first);
        }
}

In log file I see bgp_ext_community attribute which includes
(rt,65001,28773) community:

Jun 15 15:37:52 <daemon.info> rs1 bird: DEBUG2: (eclist (rt, 65001, 13188) (rt, 65001, 28773) (ro, 31210, 25372))

But the later matching never succeeds, and I don't understand why.
Please advice. Thanks!

-- 
Alexander Shikov
Technical Staff, Digital Telecom IX
Tel.: +380 44 201 14 07
Mob.: +380 50 410 30 57
http://dtel-ix.net/


More information about the Bird-users mailing list