diff options
author | Russ White <russ@riw.us> | 2021-12-07 12:39:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-07 12:39:00 +0100 |
commit | 6e3a134e0904d22e2f53d5a1606fc25b4568d7a4 (patch) | |
tree | 7a667171e3085feffd82b76a5ca8acdfb2db6f0b /ospf6d | |
parent | Merge pull request #10120 from idryzhov/bfd-detect-to (diff) | |
parent | ospf6d: do not originate Type-4 into NSSA (diff) | |
download | frr-6e3a134e0904d22e2f53d5a1606fc25b4568d7a4.tar.xz frr-6e3a134e0904d22e2f53d5a1606fc25b4568d7a4.zip |
Merge pull request #10081 from ckishimo/ospf6d_type4
ospf6d: do not originate Type-4 lsa when NSSA
Diffstat (limited to 'ospf6d')
-rw-r--r-- | ospf6d/ospf6_abr.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ospf6d/ospf6_abr.c b/ospf6d/ospf6_abr.c index a9b4c7756..5d9e315ad 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 */ } |