summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajesh Varatharaj <rvaratharaj@nvidia.com>2023-06-21 10:59:12 -0700
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2025-02-20 18:42:05 +0000
commit8653c12d31ae1973f10002e5a6076cb6e9c72233 (patch)
tree4991d824c9b13989c7c5be484b88b3e21594de24
parentf6cbcb0b1e5e6a74927263c27454185844a2455c (diff)
pimd: During prefix-list update, behave as PIM_UPSTREAM_NOTJOINED state (conformance issue)
Issue: If there are any changes to the prefix list, we perform a re-lookup to map the correct RP for the group. Even if the S,G entry is PIM_UPSTREAM_NOTJOINED and in FHR, In the case of IGMPv3, an S,G entry can be created with no joins. this is not necessary. https://www.rfc-editor.org/rfc/rfc4601#section-4.5.7 says no op in case of NOTJOINED Solution: To solve this issue, Stop RP mapping when the state is NOTJOINED Ticket: #3496931 Signed-off-by: Rajesh Varatharaj <rvaratharaj@nvidia.com> (cherry picked from commit 51f26d17da288af44a8a0e536dbe317a7e678514)
-rw-r--r--pimd/pim_upstream.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c
index ddd9fe1ff0..f3f3d5f0f3 100644
--- a/pimd/pim_upstream.c
+++ b/pimd/pim_upstream.c
@@ -635,6 +635,12 @@ void pim_upstream_update_use_rpt(struct pim_upstream *up,
if (pim_addr_is_any(up->sg.src))
return;
+ /* Ignore RP mapping when the upsteam state
+ * is NOT Joined on a FHR
+ */
+ if (up->join_state == PIM_UPSTREAM_NOTJOINED && PIM_UPSTREAM_FLAG_TEST_FHR(up->flags))
+ return;
+
old_use_rpt = !!PIM_UPSTREAM_FLAG_TEST_USE_RPT(up->flags);
/* We will use the SPT (IIF=RPF_interface(S) if -