summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_abr.c
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2021-12-07 06:39:00 -0500
committerGitHub <noreply@github.com>2021-12-07 06:39:00 -0500
commit6e3a134e0904d22e2f53d5a1606fc25b4568d7a4 (patch)
tree7a667171e3085feffd82b76a5ca8acdfb2db6f0b /ospf6d/ospf6_abr.c
parent46565af731054804576ea0fd364a32776860ec92 (diff)
parentc01326c6fb26a19677f70f99bc5edc22babadcc8 (diff)
Merge pull request #10081 from ckishimo/ospf6d_type4
ospf6d: do not originate Type-4 lsa when NSSA
Diffstat (limited to 'ospf6d/ospf6_abr.c')
-rw-r--r--ospf6d/ospf6_abr.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/ospf6d/ospf6_abr.c b/ospf6d/ospf6_abr.c
index a9b4c7756c..5d9e315adb 100644
--- a/ospf6d/ospf6_abr.c
+++ b/ospf6d/ospf6_abr.c
@@ -394,7 +394,8 @@ int ospf6_abr_originate_summary_to_area(struct ospf6_route *route,
return 0;
}
- if ((route->type == OSPF6_DEST_TYPE_ROUTER) && IS_AREA_STUB(area)) {
+ if ((route->type == OSPF6_DEST_TYPE_ROUTER)
+ && (IS_AREA_STUB(area) || IS_AREA_NSSA(area))) {
if (is_debug)
zlog_debug(
"Area has been stubbed, purge Inter-Router LSA");
@@ -447,6 +448,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 */
}