]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: During prefix-list update, behave as PIM_UPSTREAM_NOTJOINED state (conformance...
authorRajesh Varatharaj <rvaratharaj@nvidia.com>
Wed, 21 Jun 2023 17:59:12 +0000 (10:59 -0700)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Thu, 20 Feb 2025 18:42:05 +0000 (18:42 +0000)
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)

pimd/pim_upstream.c

index ddd9fe1ff0035373aae0f94b8313002b42612311..f3f3d5f0f32dd2ab3ffd259e137fa2220b547590 100644 (file)
@@ -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 -