diff options
author | ckishimo <carles.kishimoto@gmail.com> | 2021-11-08 23:53:02 +0100 |
---|---|---|
committer | ckishimo <carles.kishimoto@gmail.com> | 2021-11-16 22:03:05 +0100 |
commit | 5a0e96e65bad2954587f17a8f6a93d466e4af052 (patch) | |
tree | 27d51a6ad7f097adb939cbc596ddc55914df9848 /ospf6d/ospf6_abr.c | |
parent | Merge pull request #9935 from idryzhov/fabricd-ifconf-cleanup (diff) | |
download | frr-5a0e96e65bad2954587f17a8f6a93d466e4af052.tar.xz frr-5a0e96e65bad2954587f17a8f6a93d466e4af052.zip |
ospf6d: do not originate Type-4 for NSSA ASBR
In a topology like:
r1 ---- 0.0.0.0 ---- r2(ABR) ---- 1.1.1.1 -----r3(ASBR)
where r3 is redistributing statics and area 1.1.1.1 is NSSA, the ABR r2 should
not originate type-4 LSA, according to RFC 3101, section 1.3:
"also an NSSA's border routers never originate Type-4 summary-LSAs for the
NSSA's AS boundary routers, since Type-7 AS-external-LSAs are never flooded
beyond the NSSA's border"
r1# sh ipv6 os database inter-router
Area Scoped Link State Database (Area 0.0.0.0)
Type LSId AdvRouter Age SeqNum Payload
IAR 3.3.3.3 2.2.2.2 49 80000001 3.3.3.3
This PR prevents the above LSA of being originated by the ABR r2
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
Diffstat (limited to 'ospf6d/ospf6_abr.c')
-rw-r--r-- | ospf6d/ospf6_abr.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ospf6d/ospf6_abr.c b/ospf6d/ospf6_abr.c index a9b4c7756..b60cf7125 100644 --- a/ospf6d/ospf6_abr.c +++ b/ospf6d/ospf6_abr.c @@ -447,6 +447,18 @@ int ospf6_abr_originate_summary_to_area(struct ospf6_route *route, return 0; } + /* Do not generate if area is NSSA */ + route_area = + ospf6_area_lookup(route->path.area_id, area->ospf6); + if (IS_AREA_NSSA(route_area)) { + if (is_debug) + zlog_debug( + "%s: The route comes from NSSA area, skip", + __func__); + ospf6_abr_delete_route(summary, summary_table, old); + return 0; + } + /* Do not generate if the area is stub */ /* XXX */ } |