]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_rib.c
zebra: On route update context is sometimes indeterminate in post-processing
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 30 Jan 2019 14:31:32 +0000 (09:31 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 30 Jan 2019 14:52:13 +0000 (09:52 -0500)
commitb9f0e5ee2455868d6e9fa730c2b7c0082b0e611e
tree5b9da87baa350b40e21853fc2c108a8084868d58
parent2b697c3d47161101443ea11492396424eb9a2310
zebra: On route update context is sometimes indeterminate in post-processing

When we get into rib_process_result and the operation we are handling
is DPLANE_OP_ROUTE_UPDATE *and* the route entry being looked at
is a route replace, we currently have no way to decode to the old_re
and the re due to how we have stored context.  As such they are the
same pointer.

As such the route replace for the same route type is causing the re
to set the installed flag and then immediately unset the installed
flag, leaving us in a state where the kernel has the route but
the rib thinks we are not installed.

Since the true old_re( the one being replaced by the update operation )
is going away( as that it zebra deletes the old one for us already )
this fix is not optimal but will get us moving forward.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
zebra/zebra_rib.c