mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 14:05:31 +00:00
pim6d: Clear channel_oil on prune
Receiver---LHR---RP Problem: In LHR, ipv6 pim state remains after MLD prune received. Root Cause: When LHR receives join, it creates (*,G) channel oil with oil_ref_count = 2. The channel_oil is used by gm_sg sg->oil and upstream->channel_oil. When LHR receives prune, currently upstream->channel_oil is deleted and gm_sg sg->oil still present. Due to this channel_oil is still present with oil_ref_count = 1 Fix: When LHR receives prune, upstream->channel_oil and pim_sg sg->oil needs to be deleted. Issue: #11249 Signed-off-by: Sarita Patra <saritap@vmware.com>
This commit is contained in:
parent
1bafbcb24a
commit
cb809c0d6c
@ -355,6 +355,7 @@ void igmp_source_delete(struct gm_source *source)
|
|||||||
|
|
||||||
source_timer_off(group, source);
|
source_timer_off(group, source);
|
||||||
igmp_source_forward_stop(source);
|
igmp_source_forward_stop(source);
|
||||||
|
source->source_channel_oil = NULL;
|
||||||
|
|
||||||
/* sanity check that forwarding has been disabled */
|
/* sanity check that forwarding has been disabled */
|
||||||
if (IGMP_SOURCE_TEST_FORWARDING(source->source_flags)) {
|
if (IGMP_SOURCE_TEST_FORWARDING(source->source_flags)) {
|
||||||
@ -371,8 +372,6 @@ void igmp_source_delete(struct gm_source *source)
|
|||||||
/* warning only */
|
/* warning only */
|
||||||
}
|
}
|
||||||
|
|
||||||
source_channel_oil_detach(source);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
notice that listnode_delete() can't be moved
|
notice that listnode_delete() can't be moved
|
||||||
into igmp_source_free() because the later is
|
into igmp_source_free() because the later is
|
||||||
|
@ -163,4 +163,6 @@ void tib_sg_gm_prune(struct pim_instance *pim, pim_sgaddr sg,
|
|||||||
per-interface (S,G) state.
|
per-interface (S,G) state.
|
||||||
*/
|
*/
|
||||||
pim_ifchannel_local_membership_del(oif, &sg);
|
pim_ifchannel_local_membership_del(oif, &sg);
|
||||||
|
|
||||||
|
pim_channel_oil_del(*oilp, __func__);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user