From 1250cb5df29b7ac663fc57ee75ec18899cb6e608 Mon Sep 17 00:00:00 2001 From: Sarita Patra Date: Fri, 22 Feb 2019 07:29:24 -0800 Subject: pimd: clear upstream rpf information when RP becomes not reachable When route to RP gets modified, FRR receives a notification from zebra, and call the function pim_resolve_upstream_nh() to compute the nexthop and update upstream->rpf structure. Issue: In case when RP becomes not reachable, FRR only uninstall the mroute from the kernal, but not update the upstream->rpf structure. Fix: When FRR receives a notification from zebra saying RP becomes not reachable, then update the following fields. 1. update channel_oil incoming interface as MAXVIFS 2. Un-install the mroute from the kernel. 3. Switch upstream state from JOINED to NOTJOINED. 4. Clear the nexthop information of the upstream. Signed-off-by: Sarita Patra --- pimd/pim_upstream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pimd/pim_upstream.c') diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 2a2b94435..f1fb99832 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -941,7 +941,7 @@ void pim_upstream_update_join_desired(struct pim_instance *pim, PIM_UPSTREAM_FLAG_UNSET_DR_JOIN_DESIRED(up->flags); /* switched from false to true */ - if (is_join_desired && !was_join_desired) { + if (is_join_desired) { pim_upstream_switch(pim, up, PIM_UPSTREAM_JOINED); return; } -- cgit v1.2.3