summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_abr.c
diff options
context:
space:
mode:
authorckishimo <carles.kishimoto@gmail.com>2021-11-08 23:53:02 +0100
committerckishimo <carles.kishimoto@gmail.com>2021-11-16 22:03:05 +0100
commit5a0e96e65bad2954587f17a8f6a93d466e4af052 (patch)
tree27d51a6ad7f097adb939cbc596ddc55914df9848 /ospf6d/ospf6_abr.c
parentMerge pull request #9935 from idryzhov/fabricd-ifconf-cleanup (diff)
downloadfrr-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.c12
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 */
}