summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_gr.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2023-03-01 21:31:56 +0100
committerRenato Westphal <renato@opensourcerouting.org>2023-03-02 23:38:03 +0100
commit5cbcc459aec36faa38d84a62cd57789bdf8f2882 (patch)
tree97fabffd186c919040db39d06238f3c16b905439 /ospf6d/ospf6_gr.c
parentospf6d: update DR election to handle GR corner case (diff)
downloadfrr-5cbcc459aec36faa38d84a62cd57789bdf8f2882.tar.xz
frr-5cbcc459aec36faa38d84a62cd57789bdf8f2882.zip
ospf6d: add exception for virtual links when exiting from the GR mode
RFC 5340 says that Link-LSAs should not be originated for virtual links. Add a check to prevent that from happening while exiting from the GR mode. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_gr.c')
-rw-r--r--ospf6d/ospf6_gr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ospf6d/ospf6_gr.c b/ospf6d/ospf6_gr.c
index c182e48f2..768b5e033 100644
--- a/ospf6d/ospf6_gr.c
+++ b/ospf6d/ospf6_gr.c
@@ -149,7 +149,9 @@ static void ospf6_gr_restart_exit(struct ospf6 *ospf6, const char *reason)
OSPF6_ROUTER_LSA_EXECUTE(area);
for (ALL_LIST_ELEMENTS_RO(area->if_list, anode, oi)) {
- OSPF6_LINK_LSA_EXECUTE(oi);
+ /* Reoriginate Link-LSA. */
+ if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
+ OSPF6_LINK_LSA_EXECUTE(oi);
/*
* 2) The router should reoriginate network-LSAs on all