Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pim, pimv6: Removing upstreams and mroutes when "no ip pim"/"no ipv6 …
…pim" configs applied in receiver connected interface When the (no ip pim/no ipv6 pim) pim/pimv6 configuration is removed from the receiver-connected interface in LHR, we observe inconsistent behavior in following scenarios. 1) When there is no pim/pimv6 configuration at the beginning and the traffic is initiated, no multicast routes are formed, and there is no available upstream frr# show ip pim upstream Iif Source Group State Uptime JoinTimer RSTimer KATimer RefCnt frr# show ip mroute IP Multicast Routing Table Flags: S - Sparse, C - Connected, P - Pruned R - SGRpt Pruned, F - Register flag, T - SPT-bit set Source Group Flags Proto Input Output TTL Uptime 2) When the traffic is flowing and we remove the pim/pimv6 config in between, the (*,G) upstream transitions into the NotJ state, yet the mroutes remain intact. frr# show ip mroute IP Multicast Routing Table Flags: S - Sparse, C - Connected, P - Pruned R - SGRpt Pruned, F - Register flag, T - SPT-bit set Source Group Flags Proto Input Output TTL Uptime * 226.1.1.1 SC IGMP ens224 pimreg 1 00:00:56 IGMP ens192 1 frr# show ip pim upstream Iif Source Group State Uptime JoinTimer RSTimer KATimer RefCnt ens224 * 226.1.1.1 NotJ 00:00:13 00:00:55 --:--:-- --:--:-- 1 Hence, to make the behaviour consistent, we remove both the upstream entries for (*,G) and the corresponding mroutes using the 'pim_igmp_if_reset' API call when dealing with the receiver-connected interface. The 'pim_ifchannel_local_membership_del' is returned when no ip pim/pimv6 config is applied due to 'pim_ifp->pim_enable' check. Therefore, removing this check in order to proceed with the deletion when the pim/pimv6 configurations are removed Signed-off-by: Sai Gomathi N <[email protected]>
- Loading branch information