mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 09:22:32 +00:00
Merge pull request #5786 from mjstapp/fix_notif_empty_nhg
zebra: fix handling of failed route install via notification
This commit is contained in:
commit
090152ec9c
@ -1334,19 +1334,15 @@ static bool rib_update_re_from_ctx(struct route_entry *re,
|
|||||||
* we use the fib-specific nexthop-group to record the actual FIB
|
* we use the fib-specific nexthop-group to record the actual FIB
|
||||||
* status.
|
* status.
|
||||||
*/
|
*/
|
||||||
|
matched = false;
|
||||||
|
ctxnhg = dplane_ctx_get_ng(ctx);
|
||||||
|
|
||||||
/* Check both fib group and notif group for equivalence.
|
/* Check both fib group and notif group for equivalence.
|
||||||
*
|
*
|
||||||
* Let's assume the nexthops are ordered here to save time.
|
* Let's assume the nexthops are ordered here to save time.
|
||||||
*/
|
*/
|
||||||
if (nexthop_group_equal(&re->fib_ng, dplane_ctx_get_ng(ctx)) == false) {
|
if (re->fib_ng.nexthop && ctxnhg->nexthop &&
|
||||||
if (IS_ZEBRA_DEBUG_RIB_DETAILED)
|
nexthop_group_equal(&re->fib_ng, ctxnhg))
|
||||||
zlog_debug(
|
|
||||||
"%s(%u):%s update_from_ctx: notif nh and fib nh mismatch",
|
|
||||||
VRF_LOGNAME(vrf), re->vrf_id, dest_str);
|
|
||||||
|
|
||||||
matched = false;
|
|
||||||
} else
|
|
||||||
matched = true;
|
matched = true;
|
||||||
|
|
||||||
/* If the new FIB set matches the existing FIB set, we're done. */
|
/* If the new FIB set matches the existing FIB set, we're done. */
|
||||||
@ -1387,7 +1383,7 @@ static bool rib_update_re_from_ctx(struct route_entry *re,
|
|||||||
*/
|
*/
|
||||||
matched = true;
|
matched = true;
|
||||||
|
|
||||||
ctx_nexthop = dplane_ctx_get_ng(ctx)->nexthop;
|
ctx_nexthop = ctxnhg->nexthop;
|
||||||
|
|
||||||
/* Nothing installed - we can skip some of the checking/comparison
|
/* Nothing installed - we can skip some of the checking/comparison
|
||||||
* of nexthops.
|
* of nexthops.
|
||||||
@ -1471,8 +1467,6 @@ no_nexthops:
|
|||||||
VRF_LOGNAME(vrf), re->vrf_id, dest_str,
|
VRF_LOGNAME(vrf), re->vrf_id, dest_str,
|
||||||
(changed_p ? "true" : "false"));
|
(changed_p ? "true" : "false"));
|
||||||
|
|
||||||
ctxnhg = dplane_ctx_get_ng(ctx);
|
|
||||||
|
|
||||||
if (ctxnhg->nexthop)
|
if (ctxnhg->nexthop)
|
||||||
copy_nexthops(&(re->fib_ng.nexthop), ctxnhg->nexthop, NULL);
|
copy_nexthops(&(re->fib_ng.nexthop), ctxnhg->nexthop, NULL);
|
||||||
else {
|
else {
|
||||||
|
Loading…
Reference in New Issue
Block a user