]> git.puffer.fish Git - mirror/frr.git/commit
zebra: Make connected routes their own entry on the meta_q 7219/head
authorDonald Sharp <sharpd@nvidia.com>
Thu, 1 Oct 2020 18:58:37 +0000 (14:58 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Thu, 1 Oct 2020 19:17:06 +0000 (15:17 -0400)
commitc17b2d5b6b64b97a6f9648e4a8faec7a963f1ede
tree02e7e0b0e4ec07cc8e3b082abde4fcd6fc01fefd
parent9d221fac7ef25e110b1d4bce82e2047b0e1e0c9c
zebra: Make connected routes their own entry on the meta_q

During quick ifdown / ifup events from the linux kernel there
exists a situation where a prefix that has both a kernel route
and a static route can queued up on the meta-q.  If the static
route happens to point at a connected route for nexthop resolution
and we receive a series of quick up/down events *after* the
static route and kernel route are queued up for rib reprocessing.
Since the static route and kernel route are queued on meta-q 1
and the connected route is also on meta-q 1 there exists a situation
where the connected route will be resolved after the static route
fails to resolve, leaving the static route in a unresolved state.

Add a new queue level and put connected routes on their own level,
since they are the fundamental building blocks of pretty much
all the other routes.

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