From 9dca52b924bc4a6ec302db30d35ef9d0393ebca9 Mon Sep 17 00:00:00 2001 From: Mobashshera Rasool Date: Mon, 21 Feb 2022 05:44:04 -0800 Subject: [PATCH] pim6d: Modify pim_rp_del for PIMv4/PIMv6 Signed-off-by: Mobashshera Rasool --- pimd/pim_bsm.c | 2 +- pimd/pim_rp.c | 33 +++++++++------------------------ pimd/pim_rp.h | 5 ++--- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/pimd/pim_bsm.c b/pimd/pim_bsm.c index 21cbe09c4e..d2e299a007 100644 --- a/pimd/pim_bsm.c +++ b/pimd/pim_bsm.c @@ -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); diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index 43021ef888..379ad5c40d 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -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), ""); - 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), - ""); - + 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); diff --git a/pimd/pim_rp.h b/pimd/pim_rp.h index bc12273a2a..29834f8e5e 100644 --- a/pimd/pim_rp.h +++ b/pimd/pim_rp.h @@ -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, -- 2.39.5