mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-11-03 12:01:11 +00:00
pimd: mute termination device on the origination mroute on type mods
An mroute can transition from non-origination to a vxlan origination mroute. In that case we need to re-evaluate if the interfaces in the OIL need to be muted; pimreg and termination device need to be muted (if they were previously un-muted). Dump in a problem state: ======================= root@TORC11:~# net show pim state Codes: J -> Pim Join, I -> IGMP Report, S -> Source, * -> Inherited from (*,G), V -> VxLAN, M -> Muted Active Source Group RPT IIF OIL 1 * 239.1.1.100 y uplink-1 pimreg(I ), ipmr-lo( J ) 1 36.0.0.11 239.1.1.100 n peerlink-3.4094 ipmr-lo( * ), uplink-1( J ), uplink-2( J ), peerlink-3.4094( V ) PS: ipmr-lo should have M set in (36.0.0.11,239.1.1.100) Ticket: CM-26747 Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
parent
4d114ab9f9
commit
07f4bac3ac
@ -284,6 +284,7 @@ static void pim_vxlan_orig_mr_up_iif_update(struct pim_vxlan_sg *vxlan_sg)
|
||||
static void pim_vxlan_orig_mr_up_add(struct pim_vxlan_sg *vxlan_sg)
|
||||
{
|
||||
struct pim_upstream *up;
|
||||
struct pim_interface *term_ifp;
|
||||
int flags = 0;
|
||||
struct prefix nht_p;
|
||||
struct pim_instance *pim = vxlan_sg->pim;
|
||||
@ -345,6 +346,11 @@ static void pim_vxlan_orig_mr_up_add(struct pim_vxlan_sg *vxlan_sg)
|
||||
pim_upstream_update_use_rpt(up, false /*update_mroute*/);
|
||||
pim_upstream_ref(up, flags, __func__);
|
||||
vxlan_sg->up = up;
|
||||
term_ifp = pim_vxlan_get_term_ifp(pim);
|
||||
/* mute termination device on origination mroutes */
|
||||
if (term_ifp)
|
||||
pim_channel_update_oif_mute(up->channel_oil,
|
||||
term_ifp);
|
||||
pim_vxlan_orig_mr_up_iif_update(vxlan_sg);
|
||||
/* mute pimreg on origination mroutes */
|
||||
if (pim->regiface)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user