summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_zebra.c25
-rw-r--r--zebra/rt_netlink.c7
-rw-r--r--zebra/zebra_dplane.c4
3 files changed, 14 insertions, 22 deletions
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c
index dfddee99d0..b297615435 100644
--- a/pimd/pim_zebra.c
+++ b/pimd/pim_zebra.c
@@ -855,27 +855,24 @@ void igmp_source_forward_start(struct pim_instance *pim,
}
}
- result = pim_channel_add_oif(source->source_channel_oil,
- group->group_igmp_sock->interface,
- PIM_OIF_FLAG_PROTO_IGMP);
- if (result) {
- if (PIM_DEBUG_MROUTE) {
- zlog_warn("%s: add_oif() failed with return=%d",
- __func__, result);
+ if (PIM_I_am_DR(pim_oif)) {
+ result = pim_channel_add_oif(source->source_channel_oil,
+ group->group_igmp_sock->interface,
+ PIM_OIF_FLAG_PROTO_IGMP);
+ if (result) {
+ if (PIM_DEBUG_MROUTE) {
+ zlog_warn("%s: add_oif() failed with return=%d",
+ __func__, result);
+ }
+ return;
}
- return;
- }
-
- if (!(PIM_I_am_DR(pim_oif))) {
+ } else {
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);
- pim_channel_del_oif(source->source_channel_oil,
- group->group_igmp_sock->interface,
- PIM_OIF_FLAG_PROTO_IGMP);
return;
}
/*
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 915ad1a10c..c9a9a81b18 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -2456,7 +2456,6 @@ int netlink_nexthop_change(struct nlmsghdr *h, ns_id_t ns_id, int startup)
return 0;
}
-#if 0 /* Force off kernel nexthop group installs for now */
/**
* netlink_request_nexthop() - Request nextop information from the kernel
* @zns: Zebra namespace
@@ -2515,12 +2514,6 @@ int netlink_nexthop_read(struct zebra_ns *zns)
return ret;
}
-#else
-int netlink_nexthop_read(struct zebra_ns *zns)
-{
- return 0;
-}
-#endif
int kernel_neigh_update(int add, int ifindex, uint32_t addr, char *lla,
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index a88b0a38da..7f993442a6 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -3752,7 +3752,9 @@ void zebra_dplane_shutdown(void)
zdplane_info.dg_run = false;
- THREAD_OFF(zdplane_info.dg_t_update);
+ if (zdplane_info.dg_t_update)
+ thread_cancel_async(zdplane_info.dg_t_update->master,
+ &zdplane_info.dg_t_update, NULL);
frr_pthread_stop(zdplane_info.dg_pthread, NULL);