From 9560fa8ac994966a8da0ba23c46c0299164b7112 Mon Sep 17 00:00:00 2001 From: Paul Jakma Date: Mon, 26 Jun 2006 12:50:06 +0000 Subject: [ospfd] NSSA translate-enabled ABR should declare itself as ASBR 2006-06-26 Paul Jakma * ospf_abr.c: (general) NSSA translate-candidate ABRs need to be ASBRs, or other routers may rightfully refuse to install translated type-5s LSAs. reported by dendroot@gmail.com. (ospf_abr_nssa_check_status) Detect change in translator state when ABR, and inc/dec redistribute count as when we leave/enter the disabled state - so that translate-enabled ABR properly sets ASBR bit on non-NSSA areas. Run the resulting function through indent to clean it up. * ospf_lsa.c: (router_lsa_flags) For purposes of ASBR bit, NSSA area is same as stub area. --- ospfd/ospf_lsa.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ospfd/ospf_lsa.c') diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c index a0afbad3..509afc8a 100644 --- a/ospfd/ospf_lsa.c +++ b/ospfd/ospf_lsa.c @@ -437,7 +437,8 @@ router_lsa_flags (struct ospf_area *area) SET_FLAG (flags, ROUTER_LSA_SHORTCUT); /* ASBR can't exit in stub area. */ - if (area->external_routing == OSPF_AREA_STUB) + if (area->external_routing == OSPF_AREA_STUB + || area->external_routing == OSPF_AREA_NSSA) UNSET_FLAG (flags, ROUTER_LSA_EXTERNAL); /* If ASBR set External flag */ else if (IS_OSPF_ASBR (area->ospf)) -- cgit v1.2.1