X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=pimd%2Fpim_igmp.c;h=3602d98a3ea3de930f2c5461553c5d5a0b6631ce;hb=0dcbec72aa2b508c194ec4391b6d821ea996fb08;hp=7dfd26ea655d9c67662c5510ebf0313c15876223;hpb=611349b99f64a9e39e9889a46ca3dde60f68484e;p=mirror_frr.git diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c index 7dfd26ea6..3602d98a3 100644 --- a/pimd/pim_igmp.c +++ b/pimd/pim_igmp.c @@ -312,6 +312,13 @@ static int igmp_recv_query(struct igmp_sock *igmp, int query_version, return 0; } + if (if_lookup_address(&from, AF_INET, ifp->vrf_id)) { + if (PIM_DEBUG_IGMP_PACKETS) + zlog_debug("Recv IGMP query on interface: %s from ourself %s", + ifp->name, from_str); + return 0; + } + /* Collecting IGMP Rx stats */ switch (query_version) { case 1: @@ -471,21 +478,14 @@ int pim_igmp_packet(struct igmp_sock *igmp, char *buf, size_t len) ip_hlen = ip_hdr->ip_hl << 2; /* ip_hl gives length in 4-byte words */ - if (PIM_DEBUG_IGMP_PACKETS) { - zlog_debug( - "Recv IP packet from %s to %s on %s: size=%zu ip_header_size=%zu ip_proto=%d", - from_str, to_str, igmp->interface->name, len, ip_hlen, - ip_hdr->ip_p); - } - igmp_msg = buf + ip_hlen; msg_type = *igmp_msg; igmp_msg_len = len - ip_hlen; if (PIM_DEBUG_IGMP_PACKETS) { zlog_debug( - "Recv IGMP packet from %s to %s on %s: ttl=%d msg_type=%d msg_size=%d", - from_str, to_str, igmp->interface->name, ip_hdr->ip_ttl, + "Recv IGMP packet from %s to %s on %s: size=%zu ttl=%d msg_type=%d msg_size=%d", + from_str, to_str, igmp->interface->name, len, ip_hdr->ip_ttl, msg_type, igmp_msg_len); }