diff options
| author | Mobashshera Rasool <mrasool@vmware.com> | 2022-02-21 05:44:04 -0800 |
|---|---|---|
| committer | Mobashshera Rasool <mrasool@vmware.com> | 2022-03-08 00:57:51 -0800 |
| commit | 9dca52b924bc4a6ec302db30d35ef9d0393ebca9 (patch) | |
| tree | aac6f5902dc3b197e070c31b780d28c22c8ff46c /pimd/pim_rp.c | |
| parent | 1db07606fff031e22275fe121a6289bf9be50a94 (diff) | |
pim6d: Modify pim_rp_del for PIMv4/PIMv6
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
Diffstat (limited to 'pimd/pim_rp.c')
| -rw-r--r-- | pimd/pim_rp.c | 33 |
1 files changed, 9 insertions, 24 deletions
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), "<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); |
