]> git.proxmox.com Git - mirror_frr.git/commit
zebra: Fix ships in the night issue
authorDonald Sharp <sharpd@nvidia.com>
Thu, 24 Jun 2021 16:23:33 +0000 (12:23 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 7 Feb 2022 21:10:03 +0000 (16:10 -0500)
commitc6eee91f66956a14d73f6b2f2e43a792c854195a
treeb4888f423738147f30ac134df048766fdda1dfb3
parent16cdf5ddbc5c92f0dc43d9243a60a7258c67e68d
zebra: Fix ships in the night issue

When using wait for install there exists situations where
zebra will issue several route change operations to the kernel
but end up in a state where we shouldn't be at the end
due to extra data being received.  Example:

a) zebra receives from bgp a route change, installs sends the
route to the kernel.
b) zebra receives a route deletion from bgp, removes the
struct route entry and then sends to the kernel a deletion.
c) zebra receives an asynchronous notification that (a) succeeded
but we treat this as a new route.

This is the ships in the night problem.  In this case if we receive
notification from the kernel about a route that we know nothing
about and we are not in startup and we are doing asic offload
then we can ignore this update.

Ticket: #2563300
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra/connected.c
zebra/kernel_socket.c
zebra/redistribute.c
zebra/rib.h
zebra/rt_netlink.c
zebra/zapi_msg.c
zebra/zebra_rib.c