diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-08-18 09:44:52 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-12-21 20:26:06 -0500 |
| commit | d854589aba9d047f7601a2748d9ab9381f528cce (patch) | |
| tree | 88071d5bff0169c616882df89da2ff52c8ae3cfd | |
| parent | 4304f95c86af2ea658678fb969b984108a4c597f (diff) | |
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 <sharpd@cumulusnetworks.com>
| -rw-r--r-- | pimd/pim_upstream.c | 6 |
1 files changed, 5 insertions, 1 deletions
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 |
