mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 13:58:24 +00:00
commit
6ea2d6e15f
@ -1187,8 +1187,9 @@ static void pim_show_interfaces_single(struct pim_instance *pim,
|
|||||||
vty_out(vty, "Designated Router\n");
|
vty_out(vty, "Designated Router\n");
|
||||||
vty_out(vty, "-----------------\n");
|
vty_out(vty, "-----------------\n");
|
||||||
vty_out(vty, "Address : %s\n", dr_str);
|
vty_out(vty, "Address : %s\n", dr_str);
|
||||||
vty_out(vty, "Priority : %d\n",
|
vty_out(vty, "Priority : %d(%d)\n",
|
||||||
pim_ifp->pim_dr_priority);
|
pim_ifp->pim_dr_priority,
|
||||||
|
pim_ifp->pim_dr_num_nondrpri_neighbors);
|
||||||
vty_out(vty, "Uptime : %s\n", dr_uptime);
|
vty_out(vty, "Uptime : %s\n", dr_uptime);
|
||||||
vty_out(vty, "Elections : %d\n",
|
vty_out(vty, "Elections : %d\n",
|
||||||
pim_ifp->pim_dr_election_count);
|
pim_ifp->pim_dr_election_count);
|
||||||
|
@ -154,12 +154,12 @@ static int pim_mroute_msg_nocache(int fd, struct interface *ifp,
|
|||||||
* the Interface type is SSM we don't need to
|
* the Interface type is SSM we don't need to
|
||||||
* do anything here
|
* do anything here
|
||||||
*/
|
*/
|
||||||
if (!rpg || (pim_rpf_addr_is_inaddr_none(rpg))
|
if (!rpg || pim_rpf_addr_is_inaddr_none(rpg)) {
|
||||||
|| (!(PIM_I_am_DR(pim_ifp)))) {
|
|
||||||
if (PIM_DEBUG_MROUTE_DETAIL)
|
if (PIM_DEBUG_MROUTE_DETAIL)
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
"%s: Interface is not configured correctly to handle incoming packet: Could be !DR, !pim_ifp, !SM, !RP",
|
"%s: Interface is not configured correctly to handle incoming packet: Could be !pim_ifp, !SM, !RP",
|
||||||
__PRETTY_FUNCTION__);
|
__PRETTY_FUNCTION__);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,6 +179,26 @@ static int pim_mroute_msg_nocache(int fd, struct interface *ifp,
|
|||||||
sg.src = msg->im_src;
|
sg.src = msg->im_src;
|
||||||
sg.grp = msg->im_dst;
|
sg.grp = msg->im_dst;
|
||||||
|
|
||||||
|
if (!(PIM_I_am_DR(pim_ifp))) {
|
||||||
|
struct channel_oil *c_oil;
|
||||||
|
|
||||||
|
if (PIM_DEBUG_MROUTE_DETAIL)
|
||||||
|
zlog_debug("%s: Interface is not the DR blackholing incoming traffic for %s",
|
||||||
|
__PRETTY_FUNCTION__, pim_str_sg_dump(&sg));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We are not the DR, but we are still receiving packets
|
||||||
|
* Let's blackhole those packets for the moment
|
||||||
|
* As that they will be coming up to the cpu
|
||||||
|
* and causing us to consider them.
|
||||||
|
*/
|
||||||
|
c_oil = pim_channel_oil_add(pim_ifp->pim, &sg,
|
||||||
|
pim_ifp->mroute_vif_index);
|
||||||
|
pim_mroute_add(c_oil, __PRETTY_FUNCTION__);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
up = pim_upstream_find_or_add(&sg, ifp, PIM_UPSTREAM_FLAG_MASK_FHR,
|
up = pim_upstream_find_or_add(&sg, ifp, PIM_UPSTREAM_FLAG_MASK_FHR,
|
||||||
__PRETTY_FUNCTION__);
|
__PRETTY_FUNCTION__);
|
||||||
if (!up) {
|
if (!up) {
|
||||||
|
@ -1044,9 +1044,14 @@ void igmp_source_forward_start(struct pim_instance *pim,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(PIM_I_am_DR(pim_oif)))
|
if (!(PIM_I_am_DR(pim_oif))) {
|
||||||
|
if (PIM_DEBUG_IGMP_TRACE)
|
||||||
|
zlog_debug("%s: %s was received on %s interface but we are not DR for that interface",
|
||||||
|
__PRETTY_FUNCTION__,
|
||||||
|
pim_str_sg_dump(&sg),
|
||||||
|
group->group_igmp_sock->interface->name);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
Feed IGMPv3-gathered local membership information into PIM
|
Feed IGMPv3-gathered local membership information into PIM
|
||||||
per-interface (S,G) state.
|
per-interface (S,G) state.
|
||||||
|
Loading…
Reference in New Issue
Block a user