mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-05 04:40:21 +00:00
ospf6d: fix refreshing of NSSA/AS-external LSAs after a graceful restart
This commit fixes a bug where self-originated NSSA/AS-External LSAs would age out about one hour after exiting from the GR mode. The reason is because received self-originated LSAs aren't registered for periodic refreshing, so that needs to be done manually. Fix this by explicitly reoriginating all NSSA/AS-External LSAs while exiting from the GR mode. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This commit is contained in:
parent
3a94ed5696
commit
5eb2c602aa
@ -127,6 +127,7 @@ static void ospf6_gr_restart_exit(struct ospf6 *ospf6, const char *reason)
|
|||||||
{
|
{
|
||||||
struct ospf6_area *area;
|
struct ospf6_area *area;
|
||||||
struct listnode *onode, *anode;
|
struct listnode *onode, *anode;
|
||||||
|
struct ospf6_route *route;
|
||||||
|
|
||||||
if (IS_DEBUG_OSPF6_GR)
|
if (IS_DEBUG_OSPF6_GR)
|
||||||
zlog_debug("GR: exiting graceful restart: %s", reason);
|
zlog_debug("GR: exiting graceful restart: %s", reason);
|
||||||
@ -162,6 +163,16 @@ static void ospf6_gr_restart_exit(struct ospf6 *ospf6, const char *reason)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* While all self-originated NSSA and AS-external LSAs were already
|
||||||
|
* learned from the helping neighbors, we need to reoriginate them in
|
||||||
|
* order to ensure they will be refreshed periodically.
|
||||||
|
*/
|
||||||
|
for (route = ospf6_route_head(ospf6->external_table); route;
|
||||||
|
route = ospf6_route_next(route))
|
||||||
|
ospf6_handle_external_lsa_origination(ospf6, route,
|
||||||
|
&route->prefix);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 3) The router reruns its OSPF routing calculations, this time
|
* 3) The router reruns its OSPF routing calculations, this time
|
||||||
* installing the results into the system forwarding table, and
|
* installing the results into the system forwarding table, and
|
||||||
|
Loading…
Reference in New Issue
Block a user