I have two rout maps which I apply to a BGP import, the first is responsible for setting informational communities and the second one does the actual filtering. However it still allows RPKI invalid routes to pass.
The accept/deny decision is in the caller. The call only runs the callee for side affects, (matches/sets) and discards the accept/deny in the called route-map.
If it is indeed a bug, it should be easy to reproduce with a very basic config. Unless there is some nuance with your set of rules that triggers the bug.
I have now run a quick test with the following route maps:
set policy route-map rm-allowall rule 1 action ‘permit’
set policy route-map rm-allowall rule 1 set local-preference ‘1000’
set policy route-map rm-denyall rule 1 action ‘deny’
set policy route-map rm-denyall rule 1 set local-preference ‘4000’
set policy route-map rm-calling rule 1 action ‘permit’
set policy route-map rm-calling rule 1 call ‘rm-allowall’
After applying rm-calling to a bgp session the routes are permitted and set to local_pref 1000.
run show bgp vrf net neighbors 2a0f:85c1:b7a::c1:1 routes
BGP table version is 338749158, local router ID is 0.0.14.0, vrf id 5
Default local pref 100, local AS 213422
Status codes: s suppressed, d damped, h history, \* valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop’s vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
V\*> 2a0f:85c1:b7e::/48
fe80::f8a2:36ff:fe86:6304
1000 0 213416 ?
After switch rm-calling to call rm-denyall the route is denied as expected.
That indicates to me that route-maps work as documented just not in my case. But I don’t know why.