]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: Modify pim_rp_del for PIMv4/PIMv6
authorMobashshera Rasool <mrasool@vmware.com>
Mon, 21 Feb 2022 13:44:04 +0000 (05:44 -0800)
committerMobashshera Rasool <mrasool@vmware.com>
Tue, 8 Mar 2022 08:57:51 +0000 (00:57 -0800)
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
pimd/pim_bsm.c
pimd/pim_rp.c
pimd/pim_rp.h

index 21cbe09c4ef762d10aa4d09ae2d13338fa3bc4af..d2e299a0077c5f814294e32ea3fe1c266adda8cb 100644 (file)
@@ -285,7 +285,7 @@ static void pim_on_g2rp_timer(struct thread *t)
        struct rp_info *rp_info;
        struct route_node *rn;
        uint16_t elapse;
-       struct in_addr bsrp_addr;
+       pim_addr bsrp_addr;
 
        bsrp = THREAD_ARG(t);
        THREAD_OFF(bsrp->g2rp_timer);
index 43021ef88813fd55f003e96b73845e2e88dd2960..379ad5c40d7c423f65dc8d24d21f4bf10a49c55b 100644 (file)
@@ -669,9 +669,8 @@ void pim_rp_del_config(struct pim_instance *pim, pim_addr rp_addr,
        pim_rp_del(pim, rp_addr, group, plist, RP_SRC_STATIC);
 }
 
-int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
-              struct prefix group, const char *plist,
-              enum rp_source rp_src_flag)
+int pim_rp_del(struct pim_instance *pim, pim_addr rp_addr, struct prefix group,
+              const char *plist, enum rp_source rp_src_flag)
 {
        struct prefix g_all;
        struct rp_info *rp_info;
@@ -683,12 +682,8 @@ int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
        struct pim_upstream *up;
        struct bsgrp_node *bsgrp = NULL;
        struct bsm_rpinfo *bsrp = NULL;
-       char rp_str[INET_ADDRSTRLEN];
        bool upstream_updated = false;
 
-       if (!inet_ntop(AF_INET, &rp_addr, rp_str, sizeof(rp_str)))
-               snprintf(rp_str, sizeof(rp_str), "<rp?>");
-
        if (plist)
                rp_info = pim_rp_find_prefix_list(pim, rp_addr, plist);
        else
@@ -703,8 +698,8 @@ int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
        }
 
        if (PIM_DEBUG_PIM_TRACE)
-               zlog_debug("%s: Delete RP %s for the group %pFX", __func__,
-                          rp_str, &group);
+               zlog_debug("%s: Delete RP %pPA for the group %pFX", __func__,
+                          &rp_addr, &group);
 
        /* While static RP is getting deleted, we need to check if dynamic RP
         * present for the same group in BSM RP table, then install the dynamic
@@ -716,19 +711,11 @@ int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
                if (bsgrp) {
                        bsrp = bsm_rpinfos_first(bsgrp->bsrp_list);
                        if (bsrp) {
-                               if (PIM_DEBUG_PIM_TRACE) {
-                                       char bsrp_str[INET_ADDRSTRLEN];
-
-                                       if (!inet_ntop(AF_INET, bsrp, bsrp_str,
-                                                      sizeof(bsrp_str)))
-                                               snprintf(bsrp_str,
-                                                        sizeof(bsrp_str),
-                                                        "<bsrp?>");
-
+                               if (PIM_DEBUG_PIM_TRACE)
                                        zlog_debug(
-                                               "%s: BSM RP %s found for the group %pFX",
-                                               __func__, bsrp_str, &group);
-                               }
+                                               "%s: BSM RP %pPA found for the group %pFX",
+                                               __func__, &bsrp->rp_address,
+                                               &group);
                                return pim_rp_change(pim, bsrp->rp_address,
                                                     group, RP_SRC_BSR);
                        }
@@ -741,9 +728,7 @@ int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
        }
 
        /* Deregister addr with Zebra NHT */
-       nht_p.family = AF_INET;
-       nht_p.prefixlen = IPV4_MAX_BITLEN;
-       nht_p.u.prefix4 = rp_info->rp.rpf_addr.u.prefix4;
+       nht_p = rp_info->rp.rpf_addr;
        if (PIM_DEBUG_PIM_NHT_RP)
                zlog_debug("%s: Deregister RP addr %pFX with Zebra ", __func__,
                           &nht_p);
index bc12273a2affd883e97f99d53ac74de0d1e33785..29834f8e5e5cb83620cb648da8fe2786b0e9f902 100644 (file)
@@ -51,9 +51,8 @@ int pim_rp_new(struct pim_instance *pim, pim_addr rp_addr, struct prefix group,
               const char *plist, enum rp_source rp_src_flag);
 void pim_rp_del_config(struct pim_instance *pim, pim_addr rp_addr,
                       const char *group, const char *plist);
-int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
-              struct prefix group, const char *plist,
-              enum rp_source rp_src_flag);
+int pim_rp_del(struct pim_instance *pim, pim_addr rp_addr, struct prefix group,
+              const char *plist, enum rp_source rp_src_flag);
 int pim_rp_change(struct pim_instance *pim, pim_addr new_rp_addr,
                  struct prefix group, enum rp_source rp_src_flag);
 void pim_rp_prefix_list_update(struct pim_instance *pim,