summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ospfd/ospf_abr.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index f6c0504999..5a9adcba0d 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -642,6 +642,15 @@ static int ospf_abr_translate_nssa(struct ospf_area *area, struct ospf_lsa *lsa)
old = ospf_external_info_find_lsa(area->ospf, &p);
if (old) {
+ /* Do not continue if type 5 LSA not approved */
+ if (!CHECK_FLAG(old->flags, OSPF_LSA_APPROVED)) {
+ if (IS_DEBUG_OSPF_NSSA)
+ zlog_debug(
+ "ospf_abr_translate_nssa(): LSA Id %s type 5 is not approved",
+ inet_ntoa(old->data->id));
+ return 1;
+ }
+
if (IS_DEBUG_OSPF_NSSA)
zlog_debug(
"ospf_abr_translate_nssa(): found old translated LSA Id %s, refreshing",