From: Donald Sharp Date: Thu, 18 Aug 2016 13:44:52 +0000 (-0400) Subject: pimd: When the Keep Alive timer Pops Stop timers X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~283 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=d854589aba9d047f7601a2748d9ab9381f528cce;p=matthieu%2Ffrr.git pimd: When the Keep Alive timer Pops Stop timers When the Keep alive timer Pops stop the timer and send a prune upstream if we need to remove the state. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 10f8b21ed0..d1e90caf95 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -635,7 +635,6 @@ void pim_upstream_update_join_desired(struct pim_upstream *up) /* switched from true to false */ if (!is_join_desired && was_join_desired) { - zassert(up->join_state == PIM_UPSTREAM_JOINED); pim_upstream_switch(up, PIM_UPSTREAM_NOTJOINED); return; } @@ -837,6 +836,11 @@ pim_upstream_keep_alive_timer (struct thread *t) (up->channel_oil->cc.oldlastused >= up->channel_oil->cc.lastused)) { pim_mroute_del (up->channel_oil); + THREAD_OFF (up->t_ka_timer); + THREAD_OFF (up->t_rs_timer); + THREAD_OFF (up->t_join_timer); + pim_joinprune_send (up->rpf.source_nexthop.interface, up->rpf.rpf_addr, + &up->sg, 0); pim_upstream_del (up); } else