Barry, thanks a lot, I appreciate the feedback. In the meantime, we have altered the syntax a bit and it seems to work this snippet. (The issue still persists with the pair errors I sent in my previous email) filter bgp_in_AS39180_4 prefix set allnet; { include "/etc/bird/prefix-lists/AS39180-v4"; if (is_martian4()) then reject; if ! (net ~ allnet) then reject; if (roa_check(r4, net, bgp_path.last_nonaggregated ) = ROA_INVALID ) then{ bgp_large_community.add((49624,1000,4)); accept; print "Invalid ROA ", net, " for ASN ", bgp_path.last_nonaggregated, "from AS39180" ; } if (roa_check(r4, net, bgp_path.last_nonaggregated ) = ROA_VALID ) then{ bgp_large_community.add((49624,1000,1)); accept; } if (roa_check(r4, net, bgp_path.last_nonaggregated ) = ROA_UNKNOWN ) then{ bgp_large_community.add((49624,1000,2)); accept; } } regards, Irene On 9/25/19 12:36 PM, Barry O'Donovan wrote:
Hi Irene,
looks like you're trying to put together a route server config?
First thing that jumps out at me is you have "roa check" but it should be "roa_check".
We have full working sample configs that are used in our continuous integration tests for IXP Manager - here's a v4 version which includes RPKI:
https://github.com/inex/IXP-Manager/blob/master/data/travis-ci/known-good/ci...
Loads of info on this on https://docs.ixpmanager.org/ and presentations with videos from 2019 at:
https://www.ixpmanager.org/presentations
Hope that helps, - Barry
Irene Lalioti wrote on 25/09/2019 09:58:
Hello all,
Can you please let me know where is the syntax error in my snippet , or if it is wrong how else I should integrate it in a way bird doesn't complain? Thanks in advance!
#RPKI Check
filter bgp_in_AS1234 prefix set allnet; { include "/etc/bird/prefix-lists/AS2589-v4"; if (is_martian4()) then reject; if ! (net ~ allnet) then reject; rpki_result = roa check(r4, net, bgp_path.last_nonaggregated ); if ( rpki_result = ROA_INVALID ) then{ bgp_community.add((1234:1000:4)); reject; print "Invalid ROA ", net, " for ASN ", bgp_path.last_nonaggregated, "from AS1234" ; } if ( rpki_result = ROA_VALID ) then{ bgp_community.add((1234:1000:1)); accept; } if ( rpki_result = ROA_ UNKNOWN ) then{ bgp_community.add((1234:1000:2)); accept; print "Unknown RPKI ", net, "for ASN ", bgp_path.last_nonaggregated, "from AS1234 "; } }
-- Irene Lalioti Network Engineer Fondation RESTENA 2, avenue de l'Université L-4365 Esch/Alzette
Tel: +352 424409 1 Fax: +352 422473
-- Irene Lalioti Network Engineer Fondation RESTENA 2, avenue de l'Université L-4365 Esch/Alzette Tel: +352 424409 1 Fax: +352 422473