]> git.puffer.fish Git - mirror/frr.git/commit
zebra: Further handle route replace semantics 14038/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)
commit4a96ff2af91087ea0ebc3523193d883d9e5c0409
tree49edb262ed304dac79ea3fb705661052a630e582
parent63c92daf7b3cdf5750691fd3f65708b71b16a2fe
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