Merge pull request #15352 from louis-6wind/fix-leak-recursive

bgpd: fix route recursion on leaked routes
This commit is contained in:
Donatas Abraitis 2024-02-12 21:42:03 +02:00 committed by GitHub
commit 26faf341ef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 9 deletions

View File

@ -1511,6 +1511,7 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p,
struct bgp_path_info *info, struct bgp *bgp, afi_t afi,
safi_t safi)
{
struct bgp_path_info *bpi_ultimate;
struct zapi_route api = { 0 };
unsigned int valid_nh_count = 0;
bool allow_recursion = false;
@ -1554,15 +1555,9 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p,
peer = info->peer;
if (info->type == ZEBRA_ROUTE_BGP
&& info->sub_type == BGP_ROUTE_IMPORTED) {
/* Obtain peer from parent */
if (info->extra && info->extra->vrfleak &&
info->extra->vrfleak->parent)
peer = ((struct bgp_path_info *)(info->extra->vrfleak
->parent))
->peer;
if (info->type == ZEBRA_ROUTE_BGP) {
bpi_ultimate = bgp_get_imported_bpi_ultimate(info);
peer = bpi_ultimate->peer;
}
tag = info->attr->tag;

View File

@ -891,4 +891,11 @@ luCommand(
"pass",
"Redundant route 2 details",
)
luCommand(
"r1",
'vtysh -c "show ip route vrf r1-cust5 5.1.0.0/24"',
"Known via .bgp., distance 200, .* vrf r1-cust5, best",
"pass",
"Recursive route leak details",
)
# done