mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-14 19:05:37 +00:00
pimd: When the RPF is changed remove the group
When changing the RPF cleanup the old entry in the J/P Agg neighbor list. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
ce2b6ce098
commit
cb35003fdc
@ -370,6 +370,12 @@ pim_update_upstream_nh (struct pim_nexthop_cache *pnc)
|
|||||||
|
|
||||||
if (rpf_result == PIM_RPF_CHANGED)
|
if (rpf_result == PIM_RPF_CHANGED)
|
||||||
{
|
{
|
||||||
|
struct pim_neighbor *nbr;
|
||||||
|
|
||||||
|
nbr = pim_neighbor_find (old.source_nexthop.interface,
|
||||||
|
old.rpf_addr.u.prefix4);
|
||||||
|
if (nbr)
|
||||||
|
pim_jp_agg_remove_group (nbr->upstream_jp_agg, up);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We have detected a case where we might need to rescan
|
* We have detected a case where we might need to rescan
|
||||||
|
@ -337,13 +337,6 @@ join_timer_start(struct pim_upstream *up)
|
|||||||
*/
|
*/
|
||||||
void pim_upstream_join_timer_restart(struct pim_upstream *up, struct pim_rpf *old)
|
void pim_upstream_join_timer_restart(struct pim_upstream *up, struct pim_rpf *old)
|
||||||
{
|
{
|
||||||
struct pim_neighbor *nbr;
|
|
||||||
|
|
||||||
nbr = pim_neighbor_find (old->source_nexthop.interface,
|
|
||||||
old->rpf_addr.u.prefix4);
|
|
||||||
if (nbr)
|
|
||||||
pim_jp_agg_remove_group (nbr->upstream_jp_agg, up);
|
|
||||||
|
|
||||||
//THREAD_OFF(up->t_join_timer);
|
//THREAD_OFF(up->t_join_timer);
|
||||||
join_timer_start(up);
|
join_timer_start(up);
|
||||||
}
|
}
|
||||||
|
@ -382,6 +382,13 @@ static void scan_upstream_rpf_cache()
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (rpf_result == PIM_RPF_CHANGED) {
|
if (rpf_result == PIM_RPF_CHANGED) {
|
||||||
|
struct pim_neighbor *nbr;
|
||||||
|
|
||||||
|
nbr = pim_neighbor_find (old.source_nexthop.interface,
|
||||||
|
old.rpf_addr.u.prefix4);
|
||||||
|
if (nbr)
|
||||||
|
pim_jp_agg_remove_group (nbr->upstream_jp_agg, up);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We have detected a case where we might need to rescan
|
* We have detected a case where we might need to rescan
|
||||||
* the inherited o_list so do it.
|
* the inherited o_list so do it.
|
||||||
|
Loading…
Reference in New Issue
Block a user