summaryrefslogtreecommitdiffstats
path: root/ospfd/ospfd.c
diff options
context:
space:
mode:
authorChirag Shah <chirag@cumulusnetworks.com>2018-01-25 01:41:07 +0100
committerChirag Shah <chirag@cumulusnetworks.com>2018-01-25 02:21:22 +0100
commitded42248750dee84fe0a5ce73905568bac188d78 (patch)
tree3470fa3c4f8b8327c4f59f9c8f72eb2a57ce7dde /ospfd/ospfd.c
parentMerge pull request #1664 from chiragshah6/ospfv3_dev (diff)
downloadfrr-ded42248750dee84fe0a5ce73905568bac188d78.tar.xz
frr-ded42248750dee84fe0a5ce73905568bac188d78.zip
ospfd: clean route map prefixlist vrf during exit
Call Route-map, prefix-list clean up routines and vrf clearnup during ospf daemon exit routine. Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r--ospfd/ospfd.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 89b08552a..e6f19369e 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -32,6 +32,7 @@
#include "log.h"
#include "sockunion.h" /* for inet_aton () */
#include "zclient.h"
+#include "routemap.h"
#include "plist.h"
#include "sockopt.h"
#include "bfd.h"
@@ -554,6 +555,20 @@ void ospf_terminate(void)
for (ALL_LIST_ELEMENTS(om->ospf, node, nnode, ospf))
ospf_finish(ospf);
+ /* Cleanup route maps */
+ route_map_add_hook(NULL);
+ route_map_delete_hook(NULL);
+ route_map_event_hook(NULL);
+ route_map_finish();
+
+ /* reverse prefix_list_init */
+ prefix_list_add_hook(NULL);
+ prefix_list_delete_hook(NULL);
+ prefix_list_reset();
+
+ /* Cleanup vrf info */
+ ospf_vrf_terminate();
+
/* Deliberately go back up, hopefully to thread scheduler, as
* One or more ospf_finish()'s may have deferred shutdown to a timer
* thread