mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 22:26:14 +00:00
pimd: Join not sent within prune override time when received non local prune.
RCA: Periodic join is mostly sent by nbr jp timer except for few scenarios by upstream join timer Fix: If join timer not running, we have to use nbr jp timer to calculate remaining time for next join. Signed-off-by: Saravanan K <saravanank@vmware.com>
This commit is contained in:
parent
7f2ccbe562
commit
af9106e544
@ -462,10 +462,26 @@ void pim_upstream_join_timer_decrease_to_t_override(const char *debug_label,
|
||||
return;
|
||||
}
|
||||
|
||||
join_timer_remain_msec = pim_time_timer_remain_msec(up->t_join_timer);
|
||||
t_override_msec =
|
||||
pim_if_t_override_msec(up->rpf.source_nexthop.interface);
|
||||
|
||||
if (up->t_join_timer) {
|
||||
join_timer_remain_msec =
|
||||
pim_time_timer_remain_msec(up->t_join_timer);
|
||||
} else {
|
||||
/* upstream join tracked with neighbor jp timer */
|
||||
struct pim_neighbor *nbr;
|
||||
|
||||
nbr = pim_neighbor_find(up->rpf.source_nexthop.interface,
|
||||
up->rpf.rpf_addr.u.prefix4);
|
||||
if (nbr)
|
||||
join_timer_remain_msec =
|
||||
pim_time_timer_remain_msec(nbr->jp_timer);
|
||||
else
|
||||
/* Manipulate such that override takes place */
|
||||
join_timer_remain_msec = t_override_msec + 1;
|
||||
}
|
||||
|
||||
if (PIM_DEBUG_PIM_TRACE) {
|
||||
char rpf_str[INET_ADDRSTRLEN];
|
||||
pim_inet4_dump("<rpf?>", up->rpf.rpf_addr.u.prefix4, rpf_str,
|
||||
|
Loading…
Reference in New Issue
Block a user