diff options
| author | Jafar Al-Gharaibeh <jafar@atcorp.com> | 2025-02-06 21:40:45 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-06 21:40:45 -0600 |
| commit | 452732024eba142df201b129b78e9bae73bb1f2c (patch) | |
| tree | bc41e3360ae4c23c261c3332badcadac83b323cc | |
| parent | fd66ede08bf9ccd4a03b9c3a918f51e7e57b7e99 (diff) | |
| parent | 86445246062583197d4a6dff7b8c74003cd8049d (diff) | |
Merge pull request #18048 from opensourcerouting/msdpt3f
pimd: fix DR election race on startup
| -rw-r--r-- | pimd/pim_nb_config.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index 6af9291997..5203f78b92 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -2043,6 +2043,11 @@ int lib_interface_pim_address_family_pim_enable_modify(struct nb_cb_modify_args ifp->name); return NB_ERR_INCONSISTENCY; } + + /* Trigger election in case it was never run before */ + pim_ifp = ifp->info; + if (pim_addr_is_any(pim_ifp->pim_dr_addr)) + pim_if_dr_election(ifp); } else { pim_ifp = ifp->info; if (!pim_ifp) @@ -2076,6 +2081,10 @@ int lib_interface_pim_address_family_pim_passive_enable_modify( pim_ifp = ifp->info; pim_ifp->pim_passive_enable = yang_dnode_get_bool(args->dnode, NULL); + + /* Trigger election in case it was never run before */ + if (pim_ifp->pim_passive_enable && pim_addr_is_any(pim_ifp->pim_dr_addr)) + pim_if_dr_election(ifp); break; } |
