#include "pim_tib.h"
#include "pimd.h"
+#include "pim_instance.h"
#include "pim_iface.h"
#include "pim_upstream.h"
#include "pim_oil.h"
struct pim_interface *pim_oif = oif->info;
int input_iface_vif_index = 0;
pim_addr vif_source;
- struct prefix src, grp;
+ struct prefix grp;
struct pim_nexthop nexthop;
struct pim_upstream *up = NULL;
return pim_channel_oil_add(pim, &sg, __func__);
}
- pim_addr_to_prefix(&src, vif_source); // RP or Src addr
pim_addr_to_prefix(&grp, sg.grp);
up = pim_upstream_find(pim, &sg);
if (up) {
memcpy(&nexthop, &up->rpf.source_nexthop,
sizeof(struct pim_nexthop));
- pim_ecmp_nexthop_lookup(pim, &nexthop, &src, &grp, 0);
+ pim_ecmp_nexthop_lookup(pim, &nexthop, vif_source, &grp, 0);
if (nexthop.interface)
input_iface_vif_index = pim_if_find_vifindex_by_ifindex(
pim, nexthop.interface->ifindex);
} else
input_iface_vif_index =
- pim_ecmp_fib_lookup_if_vif_index(pim, &src, &grp);
+ pim_ecmp_fib_lookup_if_vif_index(pim, vif_source, &grp);
if (PIM_DEBUG_ZEBRA)
zlog_debug("%s: NHT %pSG vif_source %pPAs vif_index:%d",
if (PIM_I_am_DR(pim_oif) || PIM_I_am_DualActive(pim_oif)) {
int result;
- result = pim_channel_add_oif(*oilp, oif,
- PIM_OIF_FLAG_PROTO_IGMP, __func__);
+ result = pim_channel_add_oif(*oilp, oif, PIM_OIF_FLAG_PROTO_GM,
+ __func__);
if (result) {
if (PIM_DEBUG_MROUTE)
zlog_warn("%s: add_oif() failed with return=%d",
"%s: Failure to add local membership for %pSG",
__func__, &sg);
- pim_channel_del_oif(*oilp, oif, PIM_OIF_FLAG_PROTO_IGMP,
+ pim_channel_del_oif(*oilp, oif, PIM_OIF_FLAG_PROTO_GM,
__func__);
return false;
}
fixes the issue without ill effect, similar to
pim_forward_stop below.
*/
- result = pim_channel_del_oif(*oilp, oif, PIM_OIF_FLAG_PROTO_IGMP,
+ result = pim_channel_del_oif(*oilp, oif, PIM_OIF_FLAG_PROTO_GM,
__func__);
if (result) {
if (PIM_DEBUG_IGMP_TRACE)