]> git.puffer.fish Git - mirror/frr.git/commit
zebra: Further handle route replace semantics 14039/head
authorDonald Sharp <sharpd@nvidia.com>
Mon, 17 Jul 2023 14:00:32 +0000 (10:00 -0400)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Tue, 18 Jul 2023 07:38:00 +0000 (07:38 +0000)
commit4167ad76b8f013003df3762a9d3a5a4d0be4801d
tree4f6f09aa6519bda735020b50628a3f224c499938
parent6c0e919e07d4834d7bffa61e7680ef386550cb40
zebra: Further handle route replace semantics

When an upper level protocol is installing a route X that needs to be
route replaced and at the same time the same or another protocol installs a
different route that depends on route X for nexthop resolution can leave
us with a state where the route is not accepted because zebra is still
really early in the route replace semantics ( route X is still on the work
Queue to be processed ) then the dependent route would not be installed.
This came up in the bgp_default_originate test cases frequently.

Further extendd the ROUTE_ENTR_ROUTE_REPLACING flag to cover this case
as well.  This has come up because the early route processing queueing
that was implemented late last year.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit af80201876db00f339e2fbb9036942629aad9e67)
zebra/zebra_nhg.c
zebra/zebra_rib.c