summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2022-09-26 08:43:40 -0400
committerGitHub <noreply@github.com>2022-09-26 08:43:40 -0400
commit1e7602aa9bec59e79377f806d8923663c4729ae8 (patch)
tree0a8c4ffc0cea95fe655ddceced4c2c128e41a3a4 /zebra/zebra_rib.c
parent760863701e8c76f00982766e93222b8799ab9003 (diff)
parent0d0f516c76eef90d2f9e0e5c4d1472b78b24991c (diff)
Merge pull request #12003 from anlancs/fix/fpm-crash
zebra: fix fpm crash
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index bd7e8bbbd0..fceaaaa9f0 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -76,6 +76,8 @@ static struct dplane_ctx_q rib_dplane_q;
DEFINE_HOOK(rib_update, (struct route_node * rn, const char *reason),
(rn, reason));
+DEFINE_HOOK(rib_shutdown, (struct route_node * rn), (rn));
+
/* Meta Q's specific names */
enum meta_queue_indexes {
@@ -944,6 +946,9 @@ void zebra_rtable_node_cleanup(struct route_table *table,
if (node->info) {
rib_dest_t *dest = node->info;
+ /* Remove from update queue of FPM module */
+ hook_call(rib_shutdown, node);
+
rnh_list_fini(&dest->nht);
XFREE(MTYPE_RIB_DEST, node->info);
}