]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: fix event order for forward_stop() 10088/head
authorDavid Lamparter <equinox@opensourcerouting.org>
Sun, 24 Oct 2021 11:46:06 +0000 (13:46 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Wed, 17 Nov 2021 15:47:28 +0000 (16:47 +0100)
`pim_ifchannel_ifjoin_switch()` changes flags that `pim_forward_stop()`
looks at.  This leads to data flow continuing until we have some reason
to sync state again.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
pimd/pim_ifchannel.c

index 677833c9b8bce67f1e4a8b93a2574fc047249b6c..3163f7f5484d8a7c757de51061a5137bde4d75ce 100644 (file)
@@ -653,8 +653,8 @@ struct pim_ifchannel *pim_ifchannel_add(struct interface *ifp,
 
 static void ifjoin_to_noinfo(struct pim_ifchannel *ch)
 {
-       pim_forward_stop(ch);
        pim_ifchannel_ifjoin_switch(__func__, ch, PIM_IFJOIN_NOINFO);
+       pim_forward_stop(ch);
 
        if (ch->upstream)
                PIM_UPSTREAM_FLAG_UNSET_SRC_PIM(ch->upstream->flags);