From: Carmine Scarpitta Date: Sat, 10 Jun 2023 07:30:17 +0000 (+0200) Subject: isisd: Uninstall routes only if installed X-Git-Tag: base_9.1~88^2~102 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=7064d8a7276e1ec23b568edcf35bd36a27d953d8;p=matthieu%2Ffrr.git isisd: Uninstall routes only if installed In some cases, IS-IS may attempt to remove routes that have not been installed before. We can prevent IS-IS from doing this by aborting `isis_zebra_route_del_route` when the ISIS_ROUTE_FLAG_ZEBRA_SYNCED flag is unset, meaning that the route is not installed in the kernel. Signed-off-by: Carmine Scarpitta --- diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c index 4813173f45..1706d27a3a 100644 --- a/isisd/isis_zebra.c +++ b/isisd/isis_zebra.c @@ -308,6 +308,9 @@ void isis_zebra_route_del_route(struct isis *isis, if (zclient->sock < 0) return; + if (!CHECK_FLAG(route_info->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED)) + return; + memset(&api, 0, sizeof(api)); api.vrf_id = isis->vrf_id; api.type = PROTO_TYPE;