diff options
author | paul <paul> | 2003-06-22 08:22:18 +0000 |
---|---|---|
committer | paul <paul> | 2003-06-22 08:22:18 +0000 |
commit | d738d098c48027f0f46bf044b56ad5fe67caf522 (patch) | |
tree | 1cd86b066e8a5d19efae95624d8a458680be82e3 /ospfd/ospf_lsa.c | |
parent | af2c06919f1b943927de1465f2a4fcac31137deb (diff) | |
download | quagga-d738d098c48027f0f46bf044b56ad5fe67caf522.tar.bz2 quagga-d738d098c48027f0f46bf044b56ad5fe67caf522.tar.xz |
2003-06-19 Paul Jakma <paul@dishone.st>
* ospf_lsa.c (router_lsa_flags): Set the correct flags for
router-lsa's. Eg OSPF_FLAG_ASBR is /not/ an LSA flag, its an
internal ospfd flag (just happens to have same value as
ROUTER_LSA_EXTERNAL). Set ROUTER_LSA_EXTERNAL for ASBRs,
ROUTER_LSA_BORDER for ABRs and ROUTER_LSA_NT for NSSA ABRs which
are OSPF_NSSA_ROLE_ALWAYS translators.
Diffstat (limited to 'ospfd/ospf_lsa.c')
-rw-r--r-- | ospfd/ospf_lsa.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c index 34cbc446..3c4d6961 100644 --- a/ospfd/ospf_lsa.c +++ b/ospfd/ospf_lsa.c @@ -438,7 +438,22 @@ router_lsa_flags (struct ospf_area *area) /* ASBR can't exit in stub area. */ if (area->external_routing == OSPF_AREA_STUB) - UNSET_FLAG (flags, OSPF_FLAG_ASBR); + UNSET_FLAG (flags, ROUTER_LSA_EXTERNAL); + /* If ASBR set External flag */ + else if (IS_OSPF_ASBR (area->ospf)) + SET_FLAG (flags, ROUTER_LSA_EXTERNAL); + + /* Set ABR dependent flags */ + if (IS_OSPF_ABR (area->ospf)) + { + SET_FLAG (flags, ROUTER_LSA_BORDER); +#ifdef HAVE_NSSA + /* If Area is NSSA and we are both ABR and unconditional translator, + * set Nt bit + */ + SET_FLAG (flags, ROUTER_LSA_NT); +#endif /* HAVE_NSSA */ + } return flags; } |