summaryrefslogtreecommitdiff
path: root/ospfd/ospf_lsa.c
diff options
context:
space:
mode:
authorPaul Jakma <paul.jakma@sun.com>2006-06-26 12:50:06 +0000
committerPaul Jakma <paul.jakma@sun.com>2006-06-26 12:50:06 +0000
commit9560fa8ac994966a8da0ba23c46c0299164b7112 (patch)
treefa1f10194a81da333af1bbe43664c73a5c1b5fc4 /ospfd/ospf_lsa.c
parent9aecfae2ec82027fe1cf2740e6099397376a3f4f (diff)
[ospfd] NSSA translate-enabled ABR should declare itself as ASBR
2006-06-26 Paul Jakma <paul.jakma@sun.com> * 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.
Diffstat (limited to 'ospfd/ospf_lsa.c')
-rw-r--r--ospfd/ospf_lsa.c3
1 files changed, 2 insertions, 1 deletions
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))