mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 18:04:03 +00:00
zebra: check all dplane nexthops when processing
When processing route updates from the dataplane, we were terminating the checking of nexthops prematurely, and we could miss meaningful changes. Signed-off-by: Mark Stapp <mjs@voltanet.io>
This commit is contained in:
parent
e6dafed0e2
commit
11260e7011
@ -1547,7 +1547,9 @@ static bool rib_update_re_from_ctx(struct route_entry *re,
|
|||||||
changed_p = true;
|
changed_p = true;
|
||||||
|
|
||||||
UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB);
|
UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB);
|
||||||
break;
|
|
||||||
|
/* Keep checking nexthops */
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CHECK_FLAG(ctx_nexthop->flags, NEXTHOP_FLAG_FIB)) {
|
if (CHECK_FLAG(ctx_nexthop->flags, NEXTHOP_FLAG_FIB)) {
|
||||||
@ -1983,6 +1985,9 @@ static void rib_process_dplane_notify(struct zebra_dplane_ctx *ctx)
|
|||||||
* not-installed; or not-installed to installed.
|
* not-installed; or not-installed to installed.
|
||||||
*/
|
*/
|
||||||
if (start_count > 0 && end_count > 0) {
|
if (start_count > 0 && end_count > 0) {
|
||||||
|
if (debug_p)
|
||||||
|
zlog_debug("%u:%s applied nexthop changes from dplane notification",
|
||||||
|
dplane_ctx_get_vrf(ctx), dest_str);
|
||||||
|
|
||||||
/* Changed nexthops - update kernel/others */
|
/* Changed nexthops - update kernel/others */
|
||||||
dplane_route_notif_update(rn, re,
|
dplane_route_notif_update(rn, re,
|
||||||
|
Loading…
Reference in New Issue
Block a user