diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2023-08-12 11:29:37 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2023-08-14 11:08:00 -0400 |
| commit | fc6115ced768596bb317f15e078122efcfe705a7 (patch) | |
| tree | e68cf7a495edf6aadfa7ec6fd861f523d59b9d43 /pimd/pim_upstream.c | |
| parent | 35c4790aa7f2e9273fd223783554a1aedd0c9097 (diff) | |
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 <sharpd@nvidia.com>
Diffstat (limited to 'pimd/pim_upstream.c')
| -rw-r--r-- | pimd/pim_upstream.c | 1 |
1 files changed, 1 insertions, 0 deletions
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", |
