Skip to content

Commit

Permalink
Merge pull request #18203 from FRRouting/mergify/bp/dev/10.3/pr-14227
Browse files Browse the repository at this point in the history
pimd: Fix for data packet loss when FHR is LHR and RP (backport #14227)
  • Loading branch information
donaldsharp authored Feb 20, 2025
2 parents 211df1f + 02de49a commit 24dbcbb
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions pimd/pim_register.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,9 @@ int pim_register_stop_recv(struct interface *ifp, uint8_t *buf, int buf_size)
*/
for (ALL_LIST_ELEMENTS_RO(up->sources, up_node, child)) {
if (PIM_DEBUG_PIM_REG)
zlog_debug("Executing Reg stop for %s",
child->sg_str);
zlog_debug(
"Executing Reg stop for upstream child %s",
child->sg_str);

pim_reg_stop_upstream(pim, child);
}
Expand All @@ -208,8 +209,9 @@ int pim_register_stop_recv(struct interface *ifp, uint8_t *buf, int buf_size)
frr_each (rb_pim_upstream, &pim->upstream_head, up) {
if (pim_addr_cmp(up->sg.grp, sg.grp) == 0) {
if (PIM_DEBUG_PIM_REG)
zlog_debug("Executing Reg stop for %s",
up->sg_str);
zlog_debug(
"Executing Reg stop for upstream %s",
up->sg_str);
pim_reg_stop_upstream(pim, up);
}
}
Expand Down Expand Up @@ -682,9 +684,12 @@ int pim_register_recv(struct interface *ifp, pim_addr dest_addr,
}
}

if ((upstream->sptbit == PIM_UPSTREAM_SPTBIT_TRUE)
|| ((SwitchToSptDesiredOnRp(pim, &sg))
&& pim_upstream_inherited_olist(pim, upstream) == 0)) {
if ((upstream->sptbit == PIM_UPSTREAM_SPTBIT_TRUE) ||
(PIM_UPSTREAM_FLAG_TEST_FHR(upstream->flags) && i_am_rp) ||
((SwitchToSptDesiredOnRp(pim, &sg)) &&
pim_upstream_inherited_olist(pim, upstream) == 0)) {
zlog_debug("sending pim register stop message : %s ",
upstream->sg_str);
pim_register_stop_send(ifp, &sg, dest_addr, src_addr);
sentRegisterStop = 1;
} else {
Expand Down

0 comments on commit 24dbcbb

Please sign in to comment.