summaryrefslogtreecommitdiffstats
path: root/pimd
diff options
context:
space:
mode:
authormobash-rasool <mrasool@vmware.com>2023-10-10 18:40:24 +0200
committerGitHub <noreply@github.com>2023-10-10 18:40:24 +0200
commit9b6f41bfbe39f9ad43d6440d625093cefc03ed96 (patch)
tree0fda498b1faefde882bea27bc714327cb4556734 /pimd
parentMerge pull request #14535 from opensourcerouting/fix/bgp_aggregate_stuff (diff)
parentpimd: Fix missing pimreg interface (diff)
downloadfrr-9b6f41bfbe39f9ad43d6440d625093cefc03ed96.tar.xz
frr-9b6f41bfbe39f9ad43d6440d625093cefc03ed96.zip
Merge pull request #13617 from anlancs/fix/pimd-remove-pimreg-vrfbase_9.1
pimd: Fix missing pimreg interface
Diffstat (limited to 'pimd')
-rw-r--r--pimd/pim_iface.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c
index 85e0fdf3a..5fa4715b0 100644
--- a/pimd/pim_iface.c
+++ b/pimd/pim_iface.c
@@ -1500,9 +1500,16 @@ void pim_if_create_pimreg(struct pim_instance *pim)
pim->vrf->name);
pim->regiface->ifindex = PIM_OIF_PIM_REGISTER_VIF;
- if (!pim->regiface->info)
- pim_if_new(pim->regiface, false, false, true,
- false /*vxlan_term*/);
+ /*
+ * The pimreg interface might has been removed from
+ * kerenl with the VRF's deletion. It must be
+ * recreated, so delete the old one first.
+ */
+ if (pim->regiface->info)
+ pim_if_delete(pim->regiface);
+
+ pim_if_new(pim->regiface, false, false, true,
+ false /*vxlan_term*/);
/*
* On vrf moves we delete the interface if there