diff options
| author | David Lamparter <equinox@opensourcerouting.org> | 2022-01-18 11:54:36 +0100 | 
|---|---|---|
| committer | David Lamparter <equinox@opensourcerouting.org> | 2022-02-16 16:32:26 +0100 | 
| commit | 00b1f412a1a59650054973cc49bbbbf44f7285b0 (patch) | |
| tree | 6b5dc78ba1b1e3ba7763f2267e98729edfe76ed6 /pimd/pim_jp_agg.c | |
| parent | 101b31041a1ed9292c00c1c476982b50592e06c0 (diff) | |
pim6d: IPv6-adjust RPF lookups
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'pimd/pim_jp_agg.c')
| -rw-r--r-- | pimd/pim_jp_agg.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/pimd/pim_jp_agg.c b/pimd/pim_jp_agg.c index 42ad5dcd1e..7cbd0304ae 100644 --- a/pimd/pim_jp_agg.c +++ b/pimd/pim_jp_agg.c @@ -109,6 +109,7 @@ pim_jp_agg_get_interface_upstream_switch_list(struct pim_rpf *rpf)  	struct pim_interface *pim_ifp;  	struct pim_iface_upstream_switch *pius;  	struct listnode *node, *nnode; +	pim_addr rpf_addr;  	if (!ifp)  		return NULL; @@ -119,16 +120,18 @@ pim_jp_agg_get_interface_upstream_switch_list(struct pim_rpf *rpf)  	if (!pim_ifp)  		return NULL; +	rpf_addr = pim_addr_from_prefix(&rpf->rpf_addr); +  	for (ALL_LIST_ELEMENTS(pim_ifp->upstream_switch_list, node, nnode,  			       pius)) { -		if (pius->address.s_addr == rpf->rpf_addr.u.prefix4.s_addr) +		if (!pim_addr_cmp(pius->address, rpf_addr))  			break;  	}  	if (!pius) {  		pius = XCALLOC(MTYPE_PIM_JP_AGG_GROUP,  			       sizeof(struct pim_iface_upstream_switch)); -		pius->address.s_addr = rpf->rpf_addr.u.prefix4.s_addr; +		pius->address = rpf_addr;  		pius->us = list_new();  		listnode_add_sort(pim_ifp->upstream_switch_list, pius);  	}  | 
