diff options
| author | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-11-15 11:09:13 -0800 | 
|---|---|---|
| committer | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-11-15 12:00:29 -0800 | 
| commit | 7984af1840999e2e24ffcab249c46dd780606e5d (patch) | |
| tree | 0f0fdebf8f5e886fd3ff26ca6ffb9c0486fbea7a /pimd/pim_rp.c | |
| parent | 69e3538cd89b070d3434192bb28b94d7b721ceeb (diff) | |
pimd: set mfcc_parent at the time of MFCC programming
mfcc_parent for an (S, G) entry was being updated on any upstream RPF
change. With the change to use RPT for (S,G) in some cases we can no
longer do that. Instead the upstream entry's RPF neigbor is managed
separately form the channel_oil's mfcc_parent i.e. via NHT. And the
mfcc_parent is evaluated at the time of mroute programming.
Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_rp.c')
| -rw-r--r-- | pimd/pim_rp.c | 16 | 
1 files changed, 2 insertions, 14 deletions
diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index 3fa5760c53..9ccba37f10 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -386,20 +386,8 @@ void pim_upstream_update(struct pim_instance *pim, struct pim_upstream *up)  		pim_mroute_del(up->channel_oil, __PRETTY_FUNCTION__);  	/* update kernel multicast forwarding cache (MFC) */ -	if (up->rpf.source_nexthop.interface && up->channel_oil) { -		ifindex_t ifindex = up->rpf.source_nexthop.interface->ifindex; -		int vif_index = pim_if_find_vifindex_by_ifindex(pim, ifindex); -		/* Pass Current selected NH vif index to mroute download */ -		if (vif_index) -			pim_scan_individual_oil(up->channel_oil, vif_index); -		else { -			if (PIM_DEBUG_PIM_NHT) -				zlog_debug( -				  "%s: NHT upstream %s channel_oil IIF %s vif_index is not valid", -				  __PRETTY_FUNCTION__, up->sg_str, -				  up->rpf.source_nexthop.interface->name); -		} -	} +	if (up->rpf.source_nexthop.interface && up->channel_oil) +		pim_upstream_mroute_iif_update(up->channel_oil, __func__);  	if (rpf_result == PIM_RPF_CHANGED)  		pim_zebra_upstream_rpf_changed(pim, up, &old_rpf);  | 
