]> git.puffer.fish Git - matthieu/frr.git/commit
pimd: Fix for FHR mroute taking longer to age out
authorRajesh Varatharaj <rvaratharaj@nvidia.com>
Thu, 27 Jul 2023 06:57:04 +0000 (23:57 -0700)
committerton31337 <3352707+ton31337@users.noreply.github.com>
Mon, 10 Feb 2025 07:28:03 +0000 (07:28 +0000)
commitcdd4cacb119777d3c752eee71106e74605e1f26d
tree6fefcf89c3b8ee669ea6696f040972acd9f3ea9a
parent0245b8ed9246a588a761fbc9388281e0f63d84a6
pimd: Fix for FHR mroute taking longer to age out

Issue:
When there is no traffic for a group, the LHR and RP take the default KAT+Join timer expiry of
a maximum of 480 seconds to clear the S,G . However, in the FHR, we update the state from JOINED
to NOT Joined, downstream state from PPto NOINFO.  This restarts the ET timer, causing S,G on FHR to
take more than 10 minutes to age out.

In other words,
Consider a case where (S,G) is in Join state. When the traffic stops and the KAT (210) expires,
 the Join expiry timer restarts. At this time, if we receive a prune, the expectation is to set
 PPT to 0 (RFC 4601 sec 4.5.2).
 When the PPT expires, we move to the noinfo state and restart the expiry timer one more time. We remove the
 (S,G) entry only after ~10 minutes when there is no active traffic.

Summary:
KAT Join ET 210 + PP ET 210 + NOINFO ET 210.

Solution:
Delete the ifchannel when in noinfo state, and KAT is not running.

Ticket: #13703

Signed-off-by: Rajesh Varatharaj <rvaratharaj@nvidia.com>
(cherry picked from commit afed39ea2be25bf30d50ac49b4edf424deadcb17)
pimd/pim_ifchannel.c
pimd/pim_upstream.c