From 128f16f90e017edfefc49d2e09ed06a654f1940c Mon Sep 17 00:00:00 2001 From: Santosh P K Date: Wed, 5 Feb 2020 09:40:00 -0800 Subject: [PATCH] OSPF: Multi instance broken Multi instance ospf support was broken due to PR #4564. Adding fix back and extra checks to support multi instance OSPF. Fixes issues #5343 & #5741 Signed-off-by: Santosh P K --- ospfd/ospf_main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c index 7caa79d207..9cde64bc38 100644 --- a/ospfd/ospf_main.c +++ b/ospfd/ospf_main.c @@ -143,6 +143,7 @@ FRR_DAEMON_INFO(ospfd, OSPF, .vty_port = OSPF_VTY_PORT, int main(int argc, char **argv) { unsigned short instance = 0; + bool created = false; #ifdef SUPPORT_OSPF_API /* OSPF apiserver is disabled by default. */ @@ -219,6 +220,17 @@ int main(int argc, char **argv) /* OSPF errors init */ ospf_error_init(); + /* + * Need to initialize the default ospf structure, so the interface mode + * commands can be duly processed if they are received before 'router + * ospf', when ospfd is restarted + */ + if (instance && !ospf_get_instance(instance, &created)) { + flog_err(EC_OSPF_INIT_FAIL, "OSPF instance init failed: %s", + strerror(errno)); + exit(1); + } + frr_config_fork(); frr_run(master);