When a Quagga route that is currently installed is superceded by a
kernel route (connected or static route to same destination), the
Quagga route is not uninstalled from the kernel. Fix by ensuring
this case is handled correctly.
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-7152
Reviewed By: CCR-3476
Testing Done: Manual tests and verify failed test.
Fixes: Replace route implementation (IPv4 and IPv6)
}
rib_install_kernel (rn, select, fib? 1 : 0);
}
+ else
+ {
+ /* Uninstall prior route here, if needed. */
+ if (fib && !RIB_SYSTEM_ROUTE (fib))
+ rib_uninstall_kernel (rn, fib);
+ }
SET_FLAG (select->flags, ZEBRA_FLAG_SELECTED);
/* Unconditionally announce, this part is exercised by new routes */