mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-10 03:00:14 +00:00
zebra: Install the nhe along with the route
Move the installation of an nhe out of nexthop_active_update() and into the rib install path. So, only install the nhe when a route using it is being installed. Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
This commit is contained in:
parent
ae9bfa067e
commit
8dfbc65724
@ -1398,12 +1398,9 @@ int nexthop_active_update(struct route_node *rn, struct route_entry *re)
|
|||||||
|
|
||||||
nhe = zebra_nhg_lookup_id(re->nhe_id);
|
nhe = zebra_nhg_lookup_id(re->nhe_id);
|
||||||
|
|
||||||
if (nhe) {
|
if (nhe)
|
||||||
SET_FLAG(nhe->flags, NEXTHOP_GROUP_VALID);
|
SET_FLAG(nhe->flags, NEXTHOP_GROUP_VALID);
|
||||||
if (!nhe->is_kernel_nh
|
else
|
||||||
&& !CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_RECURSIVE))
|
|
||||||
zebra_nhg_install_kernel(nhe);
|
|
||||||
} else
|
|
||||||
flog_err(
|
flog_err(
|
||||||
EC_ZEBRA_TABLE_LOOKUP_FAILED,
|
EC_ZEBRA_TABLE_LOOKUP_FAILED,
|
||||||
"Active update on NHE id=%u that we do not have in our tables",
|
"Active update on NHE id=%u that we do not have in our tables",
|
||||||
|
@ -519,6 +519,7 @@ void rib_install_kernel(struct route_node *rn, struct route_entry *re,
|
|||||||
struct zebra_vrf *zvrf = vrf_info_lookup(re->vrf_id);
|
struct zebra_vrf *zvrf = vrf_info_lookup(re->vrf_id);
|
||||||
const struct prefix *p, *src_p;
|
const struct prefix *p, *src_p;
|
||||||
enum zebra_dplane_result ret;
|
enum zebra_dplane_result ret;
|
||||||
|
struct nhg_hash_entry *nhe;
|
||||||
|
|
||||||
rib_dest_t *dest = rib_dest_from_rnode(rn);
|
rib_dest_t *dest = rib_dest_from_rnode(rn);
|
||||||
|
|
||||||
@ -545,6 +546,13 @@ void rib_install_kernel(struct route_node *rn, struct route_entry *re,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Install the resolved nexthop object first.
|
||||||
|
*/
|
||||||
|
nhe = zebra_nhg_resolve(zebra_nhg_lookup_id(re->nhe_id));
|
||||||
|
if (!nhe->is_kernel_nh)
|
||||||
|
zebra_nhg_install_kernel(nhe);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If this is a replace to a new RE let the originator of the RE
|
* If this is a replace to a new RE let the originator of the RE
|
||||||
* know that they've lost
|
* know that they've lost
|
||||||
|
Loading…
Reference in New Issue
Block a user