diff options
| author | Mobashshera Rasool <mrasool@vmware.com> | 2022-02-21 05:23:15 -0800 |
|---|---|---|
| committer | Mobashshera Rasool <mrasool@vmware.com> | 2022-03-08 00:57:51 -0800 |
| commit | 1db07606fff031e22275fe121a6289bf9be50a94 (patch) | |
| tree | ac9c7ef1dd81421e18fb4122bb9a4d880923dc96 /pimd/pim_rp.c | |
| parent | 8eb5ad6c4aa61defb16fdd841c7807e8d7a9e9d5 (diff) | |
pim6d: Modify pim_rp_find_prefix_list for PIMv6
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
Diffstat (limited to 'pimd/pim_rp.c')
| -rw-r--r-- | pimd/pim_rp.c | 13 |
1 files 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; } |
