mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 17:18:56 +00:00
pimd: handle RPF resolution while in joined state
If an dummy upstream entry (no RPF nbr) which is already in a JOINED state is resolved we were not triggering an immediate join via the per-interface upstream switch list. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
parent
7ef66af956
commit
db431af290
@ -117,10 +117,16 @@ void pim_jp_agg_clear_group(struct list *group)
|
|||||||
static struct pim_iface_upstream_switch *
|
static struct pim_iface_upstream_switch *
|
||||||
pim_jp_agg_get_interface_upstream_switch_list(struct pim_rpf *rpf)
|
pim_jp_agg_get_interface_upstream_switch_list(struct pim_rpf *rpf)
|
||||||
{
|
{
|
||||||
struct pim_interface *pim_ifp = rpf->source_nexthop.interface->info;
|
struct interface *ifp = rpf->source_nexthop.interface;
|
||||||
|
struct pim_interface *pim_ifp;
|
||||||
struct pim_iface_upstream_switch *pius;
|
struct pim_iface_upstream_switch *pius;
|
||||||
struct listnode *node, *nnode;
|
struct listnode *node, *nnode;
|
||||||
|
|
||||||
|
if (!ifp)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
pim_ifp = ifp->info;
|
||||||
|
|
||||||
/* Old interface is pim disabled */
|
/* Old interface is pim disabled */
|
||||||
if (!pim_ifp)
|
if (!pim_ifp)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -324,6 +324,9 @@ void pim_zebra_upstream_rpf_changed(struct pim_instance *pim,
|
|||||||
up->channel_oil->oil_inherited_rescan = 0;
|
up->channel_oil->oil_inherited_rescan = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (up->join_state == PIM_UPSTREAM_JOINED)
|
||||||
|
pim_jp_agg_switch_interface(old, &up->rpf, up);
|
||||||
|
|
||||||
if (!up->channel_oil->installed)
|
if (!up->channel_oil->installed)
|
||||||
pim_upstream_mroute_add(up->channel_oil,
|
pim_upstream_mroute_add(up->channel_oil,
|
||||||
__PRETTY_FUNCTION__);
|
__PRETTY_FUNCTION__);
|
||||||
|
Loading…
Reference in New Issue
Block a user