From 98908cf692e089c36caf8b05ac0ac0338c2da7e6 Mon Sep 17 00:00:00 2001 From: Lou Berger Date: Thu, 14 Jul 2022 07:40:39 -0400 Subject: [PATCH] ospfd: free unreachable router LSA node so that it is not left unreachable allows for an LSA to be unreachable via one link and reachable via another Signed-off-by: Lou Berger (cherry picked from commit b976af1b093faf2723257a185070c48cb5de6813) --- ospfd/ospf_spf.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c index 8b4d55984c..a9bea3755f 100644 --- a/ospfd/ospf_spf.c +++ b/ospfd/ospf_spf.c @@ -1463,8 +1463,13 @@ static void ospf_spf_next(struct vertex *v, struct ospf_area *area, if (ospf_nexthop_calculation(area, v, w, l, distance, lsa_pos)) vertex_pqueue_add(candidate, w); - else if (IS_DEBUG_OSPF_EVENT) - zlog_debug("Nexthop Calc failed"); + else { + listnode_delete(area->spf_vertex_list, w); + ospf_vertex_free(w); + w_lsa->stat = LSA_SPF_NOT_EXPLORED; + if (IS_DEBUG_OSPF_EVENT) + zlog_debug("Nexthop Calc failed"); + } } else if (w_lsa->stat != LSA_SPF_IN_SPFTREE) { w = w_lsa->stat; if (w->distance < distance) { -- 2.39.5