Hi folks! I have played with extended communities with some of my peers, and have written this function below to facilitate my checks.
On the examples found on github (https://gitlab.labs.nic.cz/labs/bird/wikis/Route_server_with_community_based_filtering_and_multiple_RIBs and https://gitlab.labs.nic.cz/labs/bird/wikis/Route_server_with_community_based_filtering_and_single_RIB) I have noticed that RO are used : if (ro,myas,peeras) ~ bgp_ext_community then return true; bgp_ext_community.delete([(ro,0,*)]); But according to my tests, RT should be used. Did anybody made the same ascertainment? ----- ### Chek if the community or ext_community is present function is_community(int left; int right) { if right > 65535 then { #Check of the extended community for 32b ASN if (rt,left,right) ~ bgp_ext_community then return true; } else { #Check of the extended (and not ext) community for 16b ASN if ((left,right) ~ bgp_community) || ((rt,left,right) ~ bgp_ext_community) then return true; } return false; } ---- Cheers, -- Arnaud Fenioux Network Engineer - FranceIX