mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-02 20:27:14 +00:00
pimd: Fix join received when in Prune or Prune Pending
When we are a FHR, and the upstream state is in Prune or Prune Pending allow the join because we know we want to forward traffic to the RP. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
c980295412
commit
04329d4e49
@ -169,6 +169,13 @@ void pim_ifchannel_ifjoin_switch(const char *caller,
|
||||
{
|
||||
enum pim_ifjoin_state old_state = ch->ifjoin_state;
|
||||
|
||||
if (PIM_DEBUG_PIM_EVENTS)
|
||||
zlog_debug ("PIM_IFCHANNEL: %s is switching from %s to %s",
|
||||
pim_str_sg_dump (&ch->sg),
|
||||
pim_ifchannel_ifjoin_name (ch->ifjoin_state),
|
||||
pim_ifchannel_ifjoin_name (new_state));
|
||||
|
||||
|
||||
if (old_state == new_state) {
|
||||
if (PIM_DEBUG_PIM_EVENTS) {
|
||||
zlog_debug("%s calledby %s: non-transition on state %d (%s)",
|
||||
@ -178,8 +185,6 @@ void pim_ifchannel_ifjoin_switch(const char *caller,
|
||||
return;
|
||||
}
|
||||
|
||||
zassert(old_state != new_state);
|
||||
|
||||
ch->ifjoin_state = new_state;
|
||||
|
||||
/* Transition to/from NOINFO ? */
|
||||
|
@ -337,7 +337,7 @@ static int pim_macro_chisin_inherited_olist(const struct pim_ifchannel *ch)
|
||||
*/
|
||||
int pim_macro_chisin_oiflist(const struct pim_ifchannel *ch)
|
||||
{
|
||||
if (ch->upstream->join_state != PIM_UPSTREAM_JOINED) {
|
||||
if (ch->upstream->join_state == PIM_UPSTREAM_NOTJOINED) {
|
||||
/* oiflist is NULL */
|
||||
return 0; /* false */
|
||||
}
|
||||
|
@ -1029,7 +1029,6 @@ pim_upstream_inherited_olist (struct pim_upstream *up)
|
||||
int output_intf = 0;
|
||||
|
||||
pim_ifp = up->rpf.source_nexthop.interface->info;
|
||||
zlog_debug ("Channel Oil%s: %p", pim_str_sg_dump (&up->sg), up->channel_oil);
|
||||
if (!up->channel_oil)
|
||||
up->channel_oil = pim_channel_oil_add (&up->sg, pim_ifp->mroute_vif_index);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user