New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(S,G) Prune not received on FHR #7347
Comments
Please assign this issue to me. (vishaldhingra) |
RCA for mcast route (10.0.6.2,225.1.1.10) The problem is at RP, RP is not sending (S,G) prune to R3 on the reception of (SGRpt) prune from R1.
Hence R1 is receiving duplicate traffic. Here is the detailed explanation, with logs.
R1 is LHR and R2 having SGRpt ifchannel state.
At this point (*,G) Ifchannel state is deleted, but SGRpt ifchannel is still there with state NOINFO.
Here R2 has not modified the route and have not sent prune towards R3. |
Fix r1: Shut the interface r1-r0-eth0 from R1 to R2 When (*,G) join and (SGRpt) prune comes again after no shut. PIMd will configure the mroute correctly and send the prune correctly. |
problem : ========= When (*,G) prune received where we have SGRpt state, ifchannel goes to NO_INFO state and doesn't get removed. Root cause : ============ During the processing of (*,G) prune, we are not removing the ifchannel on PruneTmp or PrunePendingTmp state. Fix : ===== In that scenario, stop joinExpiry timer and delete the ifchannel. issue FRRouting#7347 Co-authored-by: Saravanan K <saravanank@vmware.com> Signed-off-by: vishaldhingra <vdhingra@vmware.com>
problem: table-id gets overwritten for a given route. RCA: table-id was getting overwritten from the NB layer, So route was getting installed with the latest table-id. Fix: make the table-id as the key in the NB layer. This will program the route in zebra correctly. - Removed the table-id modify callbacks. - Moved the validate and apply table-id changes to path-list creation issue FRRouting#7347 Signed-off-by: vishaldhingra <vdhingra@vmware.com>
problem: table-id gets overwritten for a given route. RCA: table-id was getting overwritten from the NB layer, So route was getting installed with the latest table-id. Fix: make the table-id as the key in the NB layer. This will program the route in zebra correctly. - Removed the table-id modify callbacks. - Moved the validate and apply table-id changes to path-list creation issue FRRouting#7347 Signed-off-by: vishaldhingra <vdhingra@vmware.com>
problem: table-id gets overwritten for a given route. RCA: table-id was getting overwritten from the NB layer, So route was getting installed with the latest table-id. Fix: make the table-id as the key in the NB layer. This will program the route in zebra correctly. - Removed the table-id modify callbacks. - Moved the validate and apply table-id changes to path-list creation issue FRRouting#7347 Signed-off-by: vishaldhingra <vdhingra@vmware.com>
working fine on latest master , closing this issue |
issue FRRouting#7347 Signed-off-by: vishaldhingra <vdhingra@vmware.com>
problem: table-id gets overwritten for a given route. RCA: table-id was getting overwritten from the NB layer, So route was getting installed with the latest table-id. Fix: make the table-id as the key in the NB layer. This will program the route in zebra correctly. - Removed the table-id modify callbacks. - Moved the validate and apply table-id changes to path-list creation issue FRRouting#7347 Signed-off-by: vishaldhingra <vdhingra@vmware.com>
problem : ========= When (*,G) prune received where we have SGRpt state, ifchannel goes to NO_INFO state and doesn't get removed. Root cause : ============ During the processing of (*,G) prune, we are not removing the ifchannel on PruneTmp or PrunePendingTmp state. Fix : ===== In that scenario, stop joinExpiry timer and delete the ifchannel. issue FRRouting#7347 Co-authored-by: Saravanan K <saravanank@vmware.com> Signed-off-by: vishaldhingra <vdhingra@vmware.com>
Issue -
CI/CD for pull req #7126 is failing after rebase
On further debugging found that , Prune is not sent from RP (R2)to FHR (R3) node , because of that FHR (s,g) mroute is having OIL towards R2 (RP) and R1 (LHR) , this is causing duplicate multicast traffic on LHR ( Traffic received via RPT and SPT path)
It looks to be regression , pull request #7126 was submitted on sep15, that time all the test were passed .
I have re-run this test locally with 15 sept build ( frr_7.6-dev-20200915-07-g171b364c7-0~ubuntu16.04.1_amd64.deb) this testcase is passing .
Topology used:
R2 is RP
R1 LHR
R3 FHR
CLI output
#################################################################
R2 (RP)node output
#################################################################
frr# show ip pim join
Interface Address Source Group State Uptime Expire Prune
r2-r1-eth0 10.0.1.2 * 225.1.1.1 JOIN 00:29:56 02:57 --:--
r2-r1-eth0 10.0.1.2 10.0.6.2 225.1.1.1 SGRpt(P) --:--:-- 02:57 --:-- <<<< (s,g,rpt) prune received on R2 from R1
frr# show ip pim upstream
Iif Source Group State Uptime JoinTimer RSTimer KATimer RefCnt
lo * 225.1.1.1 J 00:33:55 00:00:05 --:--:-- --:--:-- 1
r2-r3-eth1 10.0.6.2 225.1.1.1 J 00:33:55 00:00:27 --:--:-- 00:03:05 2 <<<<<< upstream still in join state
frr# show ip mroute
IP Multicast Routing Table
Flags: S - Sparse, C - Connected, P - Pruned
R - RP-bit set, F - Register flag, T - SPT-bit set
Source Group Flags Proto Input Output TTL Uptime
10.0.6.2 225.1.1.1 SRT PIM r2-r3-eth1 r2-r1-eth0 1 00:31:18 >>>>> RP node still keeping (s,g) mroute
###########################################################
R3 node output :-
###########################################################
frr# show ip mroute
IP Multicast Routing Table
Flags: S - Sparse, C - Connected, P - Pruned
R - RP-bit set, F - Register flag, T - SPT-bit set
Source Group Flags Proto Input Output TTL Uptime
10.0.6.2 225.1.1.1 SFT PIM r3-r5-eth3 r3-r1-eth0 1 00:41:48
PIM r3-r2-eth1 1
[x ] Did you check if this is a duplicate issue?
[x ] Did you test it on the latest FRRouting/frr master branch?
To Reproduce
Create testbed as per given topology
Send join and traffic from iperf
Wait for mroute convergence
Shut and no shut R1-R0 port from R1
or
Run testcase "test_multiple_groups_same_RP_address_p2" from pull req #7126 to repro this issue
Expected behavior
RP should sent prune toward FHR , and FHR should remove OIL towards RP after spt switchover
Versions
will attach debug log for same for all the nodes
The text was updated successfully, but these errors were encountered: