mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 13:06:51 +00:00
Merge pull request #18203 from FRRouting/mergify/bp/dev/10.3/pr-14227
pimd: Fix for data packet loss when FHR is LHR and RP (backport #14227)
This commit is contained in:
commit
24dbcbb31e
@ -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)) {
|
for (ALL_LIST_ELEMENTS_RO(up->sources, up_node, child)) {
|
||||||
if (PIM_DEBUG_PIM_REG)
|
if (PIM_DEBUG_PIM_REG)
|
||||||
zlog_debug("Executing Reg stop for %s",
|
zlog_debug(
|
||||||
child->sg_str);
|
"Executing Reg stop for upstream child %s",
|
||||||
|
child->sg_str);
|
||||||
|
|
||||||
pim_reg_stop_upstream(pim, child);
|
pim_reg_stop_upstream(pim, child);
|
||||||
}
|
}
|
||||||
@ -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) {
|
frr_each (rb_pim_upstream, &pim->upstream_head, up) {
|
||||||
if (pim_addr_cmp(up->sg.grp, sg.grp) == 0) {
|
if (pim_addr_cmp(up->sg.grp, sg.grp) == 0) {
|
||||||
if (PIM_DEBUG_PIM_REG)
|
if (PIM_DEBUG_PIM_REG)
|
||||||
zlog_debug("Executing Reg stop for %s",
|
zlog_debug(
|
||||||
up->sg_str);
|
"Executing Reg stop for upstream %s",
|
||||||
|
up->sg_str);
|
||||||
pim_reg_stop_upstream(pim, up);
|
pim_reg_stop_upstream(pim, up);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -682,9 +684,12 @@ int pim_register_recv(struct interface *ifp, pim_addr dest_addr,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((upstream->sptbit == PIM_UPSTREAM_SPTBIT_TRUE)
|
if ((upstream->sptbit == PIM_UPSTREAM_SPTBIT_TRUE) ||
|
||||||
|| ((SwitchToSptDesiredOnRp(pim, &sg))
|
(PIM_UPSTREAM_FLAG_TEST_FHR(upstream->flags) && i_am_rp) ||
|
||||||
&& pim_upstream_inherited_olist(pim, upstream) == 0)) {
|
((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);
|
pim_register_stop_send(ifp, &sg, dest_addr, src_addr);
|
||||||
sentRegisterStop = 1;
|
sentRegisterStop = 1;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user