mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 10:54:47 +00:00
bgpd: check nexthop vrf usability
Mark a nexthop as invalid if the origin VRF is unusable, either because it does not exist or its interface is down. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
parent
3430526e11
commit
779077bf56
@ -1052,6 +1052,7 @@ static bool leak_update_nexthop_valid(struct bgp *to_bgp, struct bgp_dest *bn,
|
||||
struct bgp_path_info *bpi_ultimate;
|
||||
struct bgp *bgp_nexthop;
|
||||
struct bgp_table *table;
|
||||
struct interface *ifp;
|
||||
bool nh_valid;
|
||||
|
||||
bpi_ultimate = bgp_get_imported_bpi_ultimate(source_bpi);
|
||||
@ -1062,6 +1063,15 @@ static bool leak_update_nexthop_valid(struct bgp *to_bgp, struct bgp_dest *bn,
|
||||
else
|
||||
bgp_nexthop = bgp_orig;
|
||||
|
||||
/* The nexthop is invalid if its VRF does not exist */
|
||||
if (bgp_nexthop->vrf_id == VRF_UNKNOWN)
|
||||
return false;
|
||||
|
||||
/* The nexthop is invalid if its VRF interface is down*/
|
||||
ifp = if_get_vrf_loopback(bgp_nexthop->vrf_id);
|
||||
if (ifp && !if_is_up(ifp))
|
||||
return false;
|
||||
|
||||
/*
|
||||
* No nexthop tracking for redistributed routes, for
|
||||
* EVPN-imported routes that get leaked, or for routes
|
||||
|
Loading…
Reference in New Issue
Block a user