From fc6115ced768596bb317f15e078122efcfe705a7 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Sat, 12 Aug 2023 11:29:37 -0400 Subject: [PATCH] pimd: Intentionally rescan oil when RPF fails on upstream creation When pim is creating an upstream for a S,G that it has received *but* it has not received a route to the S, the oil is not scanned to see if it should inherit anything from the *,G that may be present when it cannot find the correct iif to use. When the nexthop tracking actually resolves the route, the oil is never rescanned and the S,G stream will be missing a correct oil list leading to absolute mayhem in the network. Signed-off-by: Donald Sharp --- pimd/pim_upstream.c | 1 + 1 file changed, 1 insertion(+) diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index a8d087bf49..fd99e77761 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -912,6 +912,7 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim, false /*update_mroute*/); rpf_result = pim_rpf_update(pim, up, NULL, __func__); if (rpf_result == PIM_RPF_FAILURE) { + up->channel_oil->oil_inherited_rescan = 1; if (PIM_DEBUG_PIM_TRACE) zlog_debug( "%s: Attempting to create upstream(%s), Unable to RPF for source", -- 2.39.5