pimd: prevent unconditional SG join sends

It was causing a Join on (S,G) who's prune state was being cleared. This
was an inactive (KAT not running; no immediate OIL) entry that was being
flushed out but because of this incorrect Join (that was being done with
out join-state checks) the source was getting populated repeatedy i.e.
never aged.

Output of "ip monitor mroute"
=============================
(27.0.0.11,239.1.1.102)          Iif: lo          State: resolved Table: default
Deleted (27.0.0.11,239.1.1.102)          Iif: lo          State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: pimreg      State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: uplink-1    State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: uplink-1    State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: uplink-1    State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: lo         Oifs: uplink-1  State: resolved Table: default
(27.0.0.11,239.1.1.104)          Iif: lo         Oifs: pimreg uplink-1  State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: lo         Oifs: pimreg uplink-1  State: resolved Table: default
Deleted (27.0.0.11,239.1.1.102)          Iif: lo          State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: pimreg      State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: uplink-1    State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: uplink-1    State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: uplink-1    State: resolved Table: default
(27.0.0.11,239.1.1.102)          Iif: lo         Oifs: uplink-1  State: resolved Table: default

These mroute events (on a no longer existing multicast souce) continue in
a never ending loop.

Triggered joins/prunes MUST only done via state machine transitions i.e.
via pim_upstream_update_join_desired.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
Anuradha Karuppiah 2019-11-15 12:27:20 -08:00
parent 41a115e4f0
commit a04f8890d1

View File

@ -1414,9 +1414,6 @@ void pim_ifchannel_set_star_g_join_state(struct pim_ifchannel *ch, int eom,
__func__);
pim_upstream_update_join_desired(pim,
child->upstream);
pim_jp_agg_single_upstream_send(
&child->upstream->rpf, child->upstream,
true);
}
send_upstream_starg = true;