From f93dea35a4034c3c74da6a42b6567b823d209cb7 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Sat, 27 Jul 2024 13:23:18 +0300 Subject: [PATCH] bgpd: Revalidate redistributed routes also when RPKI state changes If we have something like: ``` router bgp 65001 redistribute connected route-map rpki ! route-map rpki permit 10 match rpki valid set local-preference 150 route-map rpki permit 20 match rpki notfound set local-preference 50 ! ``` Then connected routes are never revalidated when RPKI state changes. E.g. if it was valid, and moves to notfound => local-preference remains 150, but should be 50. With this patch we force redistributed routes to be revalidated when revalidation event is triggered from RPKI module. Signed-off-by: Donatas Abraitis --- bgpd/bgp_rpki.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c index 6e9a505b1ec0..8278bad26f9c 100644 --- a/bgpd/bgp_rpki.c +++ b/bgpd/bgp_rpki.c @@ -36,6 +36,7 @@ #include "bgpd/bgp_route.h" #include "bgpd/bgp_rpki.h" #include "bgpd/bgp_debug.h" +#include "bgpd/bgp_zebra.h" #include "northbound_cli.h" #include "lib/network.h" @@ -725,6 +726,7 @@ static void revalidate_all_routes(struct rpki_vrf *rpki_vrf) continue; bgp_static_add(bgp); + bgp_redistribute_redo(bgp); for (ALL_LIST_ELEMENTS_RO(bgp->peer, peer_listnode, peer)) { afi_t afi;