diff options
| -rw-r--r-- | pimd/pim_mroute.c | 10 | ||||
| -rw-r--r-- | zebra/rt_netlink.c | 19 |
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); } |
