summaryrefslogtreecommitdiffstats
path: root/pimd/pim_ifchannel.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:55:46 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:55:46 +0000
commit4f40546c96c6aeaa4371161dca9db21071bcc5d2 (patch)
tree41199f3c71bb1b62bdee8e83577351f6ee70d031 /pimd/pim_ifchannel.c
parentAdding upstream version 10.0. (diff)
downloadfrr-fc51517efcb36afb45360829ae5850fa89b04ec5.tar.xz
frr-fc51517efcb36afb45360829ae5850fa89b04ec5.zip
Adding upstream version 10.0.1.upstream/10.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'pimd/pim_ifchannel.c')
-rw-r--r--pimd/pim_ifchannel.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c
index da55189..8f9e410 100644
--- a/pimd/pim_ifchannel.c
+++ b/pimd/pim_ifchannel.c
@@ -342,6 +342,13 @@ void pim_ifchannel_ifjoin_switch(const char *caller, struct pim_ifchannel *ch,
ch->sg_str, ch->interface->name);
}
+ /* pim_upstream_update_join_desired looks at up->channel_oil,
+ * but that's updated from pim_forward_stop(). Need this here
+ * so we correctly determine join_desired right below.
+ */
+ if (new_state == PIM_IFJOIN_NOINFO)
+ pim_forward_stop(ch);
+
/*
Record uptime of state transition to/from NOINFO
*/
@@ -619,7 +626,6 @@ struct pim_ifchannel *pim_ifchannel_add(struct interface *ifp, pim_sgaddr *sg,
static void ifjoin_to_noinfo(struct pim_ifchannel *ch)
{
pim_ifchannel_ifjoin_switch(__func__, ch, PIM_IFJOIN_NOINFO);
- pim_forward_stop(ch);
PIM_UPSTREAM_FLAG_UNSET_SRC_PIM(ch->upstream->flags);