From: Sarita Patra Date: Thu, 16 May 2019 16:55:34 +0000 (-0700) Subject: pimd: fix (s,g) expiry. X-Git-Tag: base_7.2~325^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=0cdbb2cf1a98da66c584e04d92745d3831391d6c;p=matthieu%2Ffrr.git pimd: fix (s,g) expiry. Fix: When RP receives a (*, G) join and corresponding (s,g) is present, then check for OIL is not-empty, then only switch upstream (s, g) state to JOINED. Signed-off-by: Sarita Patra --- diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index 3a68176510..d4898f332d 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -1404,7 +1404,9 @@ void pim_ifchannel_set_star_g_join_state(struct pim_ifchannel *ch, int eom, PIM_IF_FLAG_UNSET_S_G_RPT(child->flags); child->ifjoin_state = PIM_IFJOIN_NOINFO; - if (I_am_RP(pim, child->sg.grp)) { + if ((I_am_RP(pim, child->sg.grp)) && + (!pim_upstream_empty_inherited_olist( + child->upstream))) { pim_channel_add_oif( child->upstream->channel_oil, ch->interface, PIM_OIF_FLAG_PROTO_STAR);