mirror_frr/ospfd
Renato Westphal 3e2f053b12 ospfd: fix deferred shutdown handling
The ospfd cleanup code is relatively complicated given the need to
appropriately handle the "max-metric router-lsa on-shutdown (5-100)"
command. When that command is configured and an OSPF instance is
unconfigured, the removal of the instance should be deferred to allow
other routers sufficient time to find alternate paths before the
local Router-LSAs are flushed. When ospfd is killed, however, deferred
shutdown shouldn't take place and all instances should be cleared
immediately.

This commit fixes a problem where ospf_deferred_shutdown_finish()
was prematurely exiting the daemon when no instances were left,
inadvertently preventing ospf_terminate() from clearing the ospfd
global variables. Additionally, the commit includes code refactoring
to enhance readability and maintainability.

Fixes #14855.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-12-01 08:53:30 -03:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
ChangeLog.opaque.txt Initial revision 2003-02-03 16:31:16 +00:00
Makefile build: non-recursive ospf* 2017-08-04 11:09:50 +02:00
ospf_abr.c ospfd: opsf_abr.c memory leak fix, free range 2023-05-10 10:59:20 +04:00
ospf_abr.h ospfd: add support for NSSA Type-7 address ranges 2023-03-31 19:28:15 -03:00
ospf_api.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_api.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_apiserver.c ospfd: OSPF opaque LSA stale processing fix and topotests. 2023-05-09 16:51:03 -04:00
ospf_apiserver.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
ospf_asbr.c ospfd: Fix External Aggregator Leak 2023-09-05 23:00:13 +04:00
ospf_asbr.h ospfd: fix default-metric change if external LSAs already sent 2023-07-19 13:12:40 +00:00
ospf_ase.c ospfd: add support for unplanned graceful restart 2023-05-08 21:47:44 -03:00
ospf_ase.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_auth.c ospfd: a possible fix for TAINTED_SCALAR coverity issues 2023-10-03 10:13:03 +03:30
ospf_auth.h [ospfd]: add support for RFC 5709 HMAC-SHA Auth 2023-09-16 07:38:23 +03:30
ospf_bfd.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_bfd.h *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
ospf_dump_api.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_dump_api.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_dump.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_dump.h *: Fixup formatting issues due to reordering 2023-03-24 08:37:21 -04:00
ospf_errors.c [ospfd]: add support for RFC 5709 HMAC-SHA Auth 2023-09-16 07:38:23 +03:30
ospf_errors.h [ospfd]: add support for RFC 5709 HMAC-SHA Auth 2023-09-16 07:38:23 +03:30
ospf_ext.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_ext.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_flood.c build: add -Wimplicit-fallthrough 2023-10-12 21:23:18 +03:00
ospf_flood.h Merge pull request #12366 from manojvn/ospfv2-flood-reduction 2023-02-21 08:03:06 -05:00
ospf_gr_helper.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_gr.c ospfd: Configurable interface-level 'capability opaque' support 2023-06-28 13:03:48 -04:00
ospf_gr.h ospfd, ospf6d: fix time_t truncation 2023-05-30 19:47:28 -03:00
ospf_ia.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_ia.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_interface.c Merge pull request #14886 from LabNConsulting/aceelindem/ospf-link-local-fix 2023-11-29 10:36:30 +02:00
ospf_interface.h ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruption 2023-11-28 16:18:55 -05:00
ospf_ism.c ospfd, ospf6d: introduce the "graceful-restart hello-delay" command 2023-05-08 21:47:44 -03:00
ospf_ism.h * : include event ptr in event_execute api 2023-07-25 10:17:48 -04:00
ospf_ldp_sync.c ospfd: check for NULLs in vty code 2023-06-30 13:58:16 -04:00
ospf_ldp_sync.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_lsa.c build: add -Wimplicit-fallthrough 2023-10-12 21:23:18 +03:00
ospf_lsa.h ospfd: implement Type-7 default routes for NSSA areas 2023-03-31 19:28:15 -03:00
ospf_lsdb.c Merge pull request #12366 from manojvn/ospfv2-flood-reduction 2023-02-21 08:03:06 -05:00
ospf_lsdb.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_main.c ospfd: Cleanup route-map memory 2023-11-13 09:16:45 -05:00
ospf_memory.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_memory.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_neighbor.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_neighbor.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
ospf_network.c ospfd: fix per-interface sockets 2023-07-03 09:37:25 -04:00
ospf_network.h ospfd: support write socket per interface 2023-04-11 10:16:07 -04:00
ospf_nsm.c ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruption 2023-11-28 16:18:55 -05:00
ospf_nsm.h * : include event ptr in event_execute api 2023-07-25 10:17:48 -04:00
ospf_opaque.c ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruption 2023-11-28 16:18:55 -05:00
ospf_opaque.h ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruption 2023-11-28 16:18:55 -05:00
ospf_packet.c build: add -Wimplicit-fallthrough 2023-10-12 21:23:18 +03:00
ospf_packet.h ospfd: add support for unplanned graceful restart 2023-05-08 21:47:44 -03:00
ospf_ri.c ospfd: improve memory cleanup during shutdown 2023-12-01 08:53:28 -03:00
ospf_ri.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_route.c Merge pull request #14034 from LabNConsulting/aceelindem/ospf_prefix_suppression 2023-07-21 10:14:22 +03:00
ospf_route.h ospfd: Support show intra-area network type in 'show ip ospf route' command 2023-07-18 14:20:05 +08:00
ospf_routemap_nb_config.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_routemap_nb.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_routemap_nb.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_routemap.c lib, ospfd, yang: add route map set for min/max metric 2023-04-18 00:48:16 -05:00
ospf_snmp.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
ospf_spf.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_spf.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_sr.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf_sr.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
ospf_te.c Merge pull request #12933 from Orange-OpenSource/link_state 2023-04-20 18:33:21 +02:00
ospf_te.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_ti_lfa.c ospfd: Delete q_space->vertex_list on No Backup Path 2023-08-19 18:38:14 +04:00
ospf_ti_lfa.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_vty.c Merge pull request #14710 from teletajp/fix_show_ospf_gr_helper_cmd 2023-11-21 11:39:31 +02:00
ospf_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf_zebra.c *: add zclient_options_sync 2023-11-23 15:20:13 +01:00
ospf_zebra.h ospfd: implement Type-7 default routes for NSSA areas 2023-03-31 19:28:15 -03:00
OSPF-ALIGNMENT.txt *: Remove cvs control points 2017-12-05 17:28:12 -05:00
ospfd.c ospfd: fix deferred shutdown handling 2023-12-01 08:53:30 -03:00
ospfd.h ospfd: fix default-metric change if external LSAs already sent 2023-07-19 13:12:40 +00:00
subdir.am [ospfd]: add support for RFC 5709 HMAC-SHA Auth 2023-09-16 07:38:23 +03:30