Merge pull request #14105 from routingrocks/pim_ageout_fix

pimd: Fix for FHR mroute taking longer to age out
This commit is contained in:
Rafael Zalamena 2025-02-06 21:25:45 -03:00 committed by GitHub
commit fd66ede08b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 4 deletions

View File

@ -239,11 +239,17 @@ void pim_ifchannel_delete_all(struct interface *ifp)
void delete_on_noinfo(struct pim_ifchannel *ch) void delete_on_noinfo(struct pim_ifchannel *ch)
{ {
if (ch->local_ifmembership == PIM_IFMEMBERSHIP_NOINFO struct pim_upstream *up = ch->upstream;
&& ch->ifjoin_state == PIM_IFJOIN_NOINFO /*
&& ch->t_ifjoin_expiry_timer == NULL) * (S,G) with no active traffic, KAT expires, PPT expries,
* channel state is NoInfo
*/
if (ch->local_ifmembership == PIM_IFMEMBERSHIP_NOINFO &&
ch->ifjoin_state == PIM_IFJOIN_NOINFO &&
(ch->t_ifjoin_expiry_timer == NULL || (up && !pim_upstream_is_kat_running(up)))) {
pim_ifchannel_delete(ch); pim_ifchannel_delete(ch);
} }
}
void pim_ifchannel_ifjoin_switch(const char *caller, struct pim_ifchannel *ch, void pim_ifchannel_ifjoin_switch(const char *caller, struct pim_ifchannel *ch,
enum pim_ifjoin_state new_state) enum pim_ifjoin_state new_state)

View File

@ -312,7 +312,7 @@ static void on_join_timer(struct event *t)
} }
/* /*
* In the case of a HFR we will not ahve anyone to send this to. * In the case of a FHR we will not ahve anyone to send this to.
*/ */
if (PIM_UPSTREAM_FLAG_TEST_FHR(up->flags)) if (PIM_UPSTREAM_FLAG_TEST_FHR(up->flags))
return; return;