summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_mroute.c10
-rw-r--r--zebra/rt_netlink.c19
2 files changed, 26 insertions, 3 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c
index 02b50c9af2..adf0540f65 100644
--- a/pimd/pim_mroute.c
+++ b/pimd/pim_mroute.c
@@ -154,11 +154,15 @@ int pim_mroute_msg_nocache(int fd, struct interface *ifp, const kernmsg *msg)
sg.src = msg->msg_im_src;
sg.grp = msg->msg_im_dst;
- if (!pim_ifp) {
+
+ if (!pim_ifp || !pim_ifp->pim_enable) {
if (PIM_DEBUG_MROUTE)
zlog_debug(
- "%s: PIM not enabled on interface, dropping packet to %pSG",
- ifp->name, &sg);
+ "%s: %s on interface, dropping packet to %pSG",
+ ifp->name,
+ !pim_ifp ? "Multicast not enabled"
+ : "PIM not enabled",
+ &sg);
return 0;
}
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 900c6520d3..e4ddbd95d7 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -2006,6 +2006,25 @@ static int netlink_neigh_update(int cmd, int ifindex, void *addr, char *lla,
if (lla)
nl_attr_put(&req.n, sizeof(req), NDA_LLADDR, lla, llalen);
+ if (IS_ZEBRA_DEBUG_KERNEL) {
+ char ip_str[INET6_ADDRSTRLEN + 8];
+ struct interface *ifp = if_lookup_by_index_per_ns(
+ zebra_ns_lookup(ns_id), ifindex);
+ if (ifp) {
+ if (family == AF_INET6)
+ snprintfrr(ip_str, sizeof(ip_str), "ipv6 %pI6",
+ (struct in6_addr *)addr);
+ else
+ snprintfrr(ip_str, sizeof(ip_str), "ipv4 %pI4",
+ (in_addr_t *)addr);
+ zlog_debug(
+ "%s: %s ifname %s ifindex %u addr %s mac %pEA vrf %s(%u)",
+ __func__, nl_msg_type_to_str(cmd), ifp->name,
+ ifindex, ip_str, (struct ethaddr *)lla,
+ vrf_id_to_name(ifp->vrf->vrf_id),
+ ifp->vrf->vrf_id);
+ }
+ }
return netlink_talk(netlink_talk_filter, &req.n, &zns->netlink_cmd, zns,
false);
}