summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2021-11-23 19:52:19 -0500
committerGitHub <noreply@github.com>2021-11-23 19:52:19 -0500
commit911b9d7b903f0140f9ab848487c9da6742d95eca (patch)
treed520bac53f4f458eba2fc5d9a857cc86a95ee11d
parentf983ef89fc2fed454ef465fc6018988f85b74b28 (diff)
parentbf4b7559a0b1e5e87571dac08a778dfb3c4747b1 (diff)
Merge pull request #10100 from rgirada/ospf_nssa
ospfd: ospf routing table update upon Changing area from normal to nssa
-rw-r--r--ospfd/ospf_ase.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/ospfd/ospf_ase.c b/ospfd/ospf_ase.c
index aaacebca14..e9fb891d7e 100644
--- a/ospfd/ospf_ase.c
+++ b/ospfd/ospf_ase.c
@@ -280,6 +280,19 @@ int ospf_ase_calculate_route(struct ospf *ospf, struct ospf_lsa *lsa)
return 0;
}
+ /* Type-5 shouldn't be calculated if it is originated from NSSA ASBR.
+ * As per RFC 3101, expectation is to receive type-7 lsas from
+ * NSSA ASBR. Ignore calculation, if the current LSA is type-5 and
+ * originated ASBR's area is NSSA.
+ */
+ if ((lsa->data->type == OSPF_AS_EXTERNAL_LSA)
+ && (asbr_route->u.std.external_routing != OSPF_AREA_DEFAULT)) {
+ if (IS_DEBUG_OSPF(lsa, LSA))
+ zlog_debug(
+ "Route[External]: Ignore, If type-5 LSA from NSSA area.");
+ return 0;
+ }
+
/* Else, this LSA describes an AS external path to destination
N. Examine the forwarding address specified in the AS-
external-LSA. This indicates the IP address to which