mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 13:01:59 +00:00
pimd: Reg Suppression expiry has to account for couldreg->false while in prune
Problem: This happened in once in a while during testing the scenario multiple times. When regstop timer expire and at that point if rpf interface doesn't exist, the register state for the upstream gets struck in reg-prune state indefinitely. This will not recover even when rpf comes back and traffic resumed because register state is struck on prune. RCA: Reg suppression expiry is keeping reg state unchanged when iif is absent. Fix: When iif is absent during reg suppression expiry, treat it as couldreg becoming false and move it NO_INFO state. Signed-off-by: Saravanan K <saravanank@vmware.com>
This commit is contained in:
parent
7f2ccbe562
commit
cf575d0975
@ -1697,10 +1697,12 @@ static int pim_upstream_register_stop_timer(struct thread *t)
|
||||
case PIM_REG_JOIN:
|
||||
break;
|
||||
case PIM_REG_PRUNE:
|
||||
/* This is equalent to Couldreg -> False */
|
||||
if (!up->rpf.source_nexthop.interface) {
|
||||
if (PIM_DEBUG_PIM_TRACE)
|
||||
zlog_debug("%s: up %s RPF is not present",
|
||||
__func__, up->sg_str);
|
||||
up->reg_state = PIM_REG_NOINFO;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user