summaryrefslogtreecommitdiffstats
path: root/pimd/pim_upstream.c
diff options
context:
space:
mode:
authorSai Gomathi N <nsaigomathi@vmware.com>2023-06-21 11:53:09 +0200
committerSai Gomathi N <nsaigomathi@vmware.com>2023-06-21 12:46:58 +0200
commitfce0f28bf3672288d85279a3d318076d87a81592 (patch)
tree17c8ad21089006ac9109a3e1b9ef681bd089e5e9 /pimd/pim_upstream.c
parentMerge pull request #13801 from LabNConsulting/chopps/latest-checkpatch (diff)
downloadfrr-fce0f28bf3672288d85279a3d318076d87a81592.tar.xz
frr-fce0f28bf3672288d85279a3d318076d87a81592.zip
pim, pim6d: pimreg interface is not getting added in a certain scenario
Problem: When ipv6 pim configuration is removed from the IIF on FHR node, if we wait for RST timer to expire and then add the ipv6 pim configuration on the IIF again, it is seen that pimreg is not getting added due to which null register wont be sent, the register flag state also remains NO_INFO forever instead of RegPrune. The reason for this is, when RST timer expires and IIF is unknown for the (S,G) upstream, the FHR state is not reset due to which when the RP becomes reachable, upstream state changes from NotJoined to Join but the register suppress timer could not be started since we see there is no change in FHR state. Fix: When the Register Timer expires and the reg state is set to PIM_REG_NOINFO,reset the FHR flag, so that when the RP becomes reachable can be because of config change or RP not reachable, it is able to resume its duty. Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
Diffstat (limited to 'pimd/pim_upstream.c')
-rw-r--r--pimd/pim_upstream.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c
index 82ba9a55a..406f772ff 100644
--- a/pimd/pim_upstream.c
+++ b/pimd/pim_upstream.c
@@ -1713,6 +1713,7 @@ static void pim_upstream_register_stop_timer(struct event *t)
zlog_debug("%s: up %s RPF is not present",
__func__, up->sg_str);
up->reg_state = PIM_REG_NOINFO;
+ PIM_UPSTREAM_FLAG_UNSET_FHR(up->flags);
return;
}