diff options
author | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-11-15 20:09:13 +0100 |
---|---|---|
committer | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2019-11-15 21:00:29 +0100 |
commit | 7984af1840999e2e24ffcab249c46dd780606e5d (patch) | |
tree | 0f0fdebf8f5e886fd3ff26ca6ffb9c0486fbea7a /pimd/pim_vxlan.c | |
parent | pimd: decide between SPT based and RPT based forwarding (diff) | |
download | frr-7984af1840999e2e24ffcab249c46dd780606e5d.tar.xz frr-7984af1840999e2e24ffcab249c46dd780606e5d.zip |
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_vxlan.c')
-rw-r--r-- | pimd/pim_vxlan.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/pimd/pim_vxlan.c b/pimd/pim_vxlan.c index daec0951c..1a0c4a91c 100644 --- a/pimd/pim_vxlan.c +++ b/pimd/pim_vxlan.c @@ -251,20 +251,14 @@ static void pim_vxlan_orig_mr_up_del(struct pim_vxlan_sg *vxlan_sg) static void pim_vxlan_orig_mr_up_iif_update(struct pim_vxlan_sg *vxlan_sg) { - int vif_index; - /* update MFC with the new IIF */ pim_upstream_fill_static_iif(vxlan_sg->up, vxlan_sg->iif); - vif_index = pim_if_find_vifindex_by_ifindex(vxlan_sg->pim, - vxlan_sg->iif->ifindex); - if (vif_index > 0) - pim_scan_individual_oil(vxlan_sg->up->channel_oil, - vif_index); + pim_upstream_mroute_iif_update(vxlan_sg->up->channel_oil, __func__); if (PIM_DEBUG_VXLAN) - zlog_debug("vxlan SG %s orig mroute-up updated with iif %s vifi %d", + zlog_debug("vxlan SG %s orig mroute-up updated with iif %s", vxlan_sg->sg_str, - vxlan_sg->iif?vxlan_sg->iif->name:"-", vif_index); + vxlan_sg->iif?vxlan_sg->iif->name:"-"); } |