]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: IPv6-adjust upstream_rpf_genid_changed
authorDavid Lamparter <equinox@opensourcerouting.org>
Tue, 18 Jan 2022 10:44:26 +0000 (11:44 +0100)
committerDavid Lamparter <equinox@opensourcerouting.org>
Wed, 16 Feb 2022 15:32:26 +0000 (16:32 +0100)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
pimd/pim_upstream.c
pimd/pim_upstream.h

index a410a1c2cece59fdaffdc2a31b0110709c0ec407..40299ed9f20e93a734451c35876b68512622caa1 100644 (file)
@@ -1263,7 +1263,7 @@ void pim_upstream_update_join_desired(struct pim_instance *pim,
   it so that it expires after t_override seconds.
 */
 void pim_upstream_rpf_genid_changed(struct pim_instance *pim,
-                                   struct in_addr neigh_addr)
+                                   pim_addr neigh_addr)
 {
        struct pim_upstream *up;
 
@@ -1271,24 +1271,24 @@ void pim_upstream_rpf_genid_changed(struct pim_instance *pim,
         * Scan all (S,G) upstreams searching for RPF'(S,G)=neigh_addr
         */
        frr_each (rb_pim_upstream, &pim->upstream_head, up) {
-               if (PIM_DEBUG_PIM_TRACE) {
-                       char rpf_addr_str[PREFIX_STRLEN];
-                       pim_addr_dump("<rpf?>", &up->rpf.rpf_addr, rpf_addr_str,
-                                     sizeof(rpf_addr_str));
+               pim_addr rpf_addr;
+
+               rpf_addr = pim_addr_from_prefix(&up->rpf.rpf_addr);
+
+               if (PIM_DEBUG_PIM_TRACE)
                        zlog_debug(
-                               "%s: matching neigh=%pI4 against upstream (S,G)=%s[%s] joined=%d rpf_addr=%s",
+                               "%s: matching neigh=%pPA against upstream (S,G)=%s[%s] joined=%d rpf_addr=%pPA",
                                __func__, &neigh_addr, up->sg_str,
                                pim->vrf->name,
                                up->join_state == PIM_UPSTREAM_JOINED,
-                               rpf_addr_str);
-               }
+                               &rpf_addr);
 
                /* consider only (S,G) upstream in Joined state */
                if (up->join_state != PIM_UPSTREAM_JOINED)
                        continue;
 
                /* match RPF'(S,G)=neigh_addr */
-               if (up->rpf.rpf_addr.u.prefix4.s_addr != neigh_addr.s_addr)
+               if (pim_addr_cmp(rpf_addr, neigh_addr))
                        continue;
 
                pim_upstream_join_timer_decrease_to_t_override(
index 25ff3bffe75284bd45f0a4dd9005790fe258b4c2..ad936a2839ad2f4ea0768bcbf7b4725cf7dfc0a4 100644 (file)
@@ -326,7 +326,7 @@ void pim_upstream_join_timer_decrease_to_t_override(const char *debug_label,
 void pim_upstream_join_timer_restart(struct pim_upstream *up,
                                     struct pim_rpf *old);
 void pim_upstream_rpf_genid_changed(struct pim_instance *pim,
-                                   struct in_addr neigh_addr);
+                                   pim_addr neigh_addr);
 void pim_upstream_rpf_interface_changed(struct pim_upstream *up,
                                        struct interface *old_rpf_ifp);