diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2021-11-23 19:52:19 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-23 19:52:19 -0500 |
| commit | 911b9d7b903f0140f9ab848487c9da6742d95eca (patch) | |
| tree | d520bac53f4f458eba2fc5d9a857cc86a95ee11d | |
| parent | f983ef89fc2fed454ef465fc6018988f85b74b28 (diff) | |
| parent | bf4b7559a0b1e5e87571dac08a778dfb3c4747b1 (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.c | 13 |
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 |
