From 1db07606fff031e22275fe121a6289bf9be50a94 Mon Sep 17 00:00:00 2001 From: Mobashshera Rasool Date: Mon, 21 Feb 2022 05:23:15 -0800 Subject: [PATCH] pim6d: Modify pim_rp_find_prefix_list for PIMv6 Signed-off-by: Mobashshera Rasool --- pimd/pim_rp.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index b3ba40f3fe..43021ef888 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -149,15 +149,17 @@ void pim_rp_free(struct pim_instance *pim) * Given an RP's prefix-list, return the RP's rp_info for that prefix-list */ static struct rp_info *pim_rp_find_prefix_list(struct pim_instance *pim, - struct in_addr rp, - const char *plist) + pim_addr rp, const char *plist) { struct listnode *node; struct rp_info *rp_info; + struct prefix rp_prefix; + + pim_addr_to_prefix(&rp_prefix, rp); for (ALL_LIST_ELEMENTS_RO(pim->rp_list, node, rp_info)) { - if (rp.s_addr == rp_info->rp.rpf_addr.u.prefix4.s_addr - && rp_info->plist && strcmp(rp_info->plist, plist) == 0) { + if (prefix_same(&rp_prefix, &rp_info->rp.rpf_addr) && + rp_info->plist && strcmp(rp_info->plist, plist) == 0) { return rp_info; } } @@ -441,8 +443,7 @@ int pim_rp_new(struct pim_instance *pim, pim_addr rp_addr, struct prefix group, /* * Return if the prefix-list is already configured for this RP */ - if (pim_rp_find_prefix_list(pim, rp_info->rp.rpf_addr.u.prefix4, - plist)) { + if (pim_rp_find_prefix_list(pim, rp_addr, plist)) { XFREE(MTYPE_PIM_RP, rp_info); return PIM_SUCCESS; }