Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Apr 1999 23:49:26 -0700
From:      Pavlin Ivanov Radoslavov <pavlin@catarina.usc.edu>
To:        bmah@CA.Sandia.GOV
Cc:        Dag-Erling Smorgrav <des@flood.ping.uio.no>, Pavlin Ivanov Radoslavov <pavlin@catarina.usc.edu>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: IGMP membership report not received by mrouted 
Message-ID:  <199904120649.XAA10028@rumi.usc.edu>
In-Reply-To: Your message of "Fri, 09 Apr 1999 06:59:34 PDT." <199904091359.GAA08806@stennis.ca.sandia.gov> 

next in thread | previous in thread | raw e-mail | index | archive | help
> --==_Exmh_98576044P
> Content-Type: text/plain; charset=us-ascii
> 
> If memory serves me right, Dag-Erling Smorgrav wrote:
> > Pavlin Ivanov Radoslavov <pavlin@catarina.usc.edu> writes:
> > > If I start mrouted (3.9-beta3+IOS12), mrouted cannot see the IGMP
> > > membership reports. If I start tcpdump on the interface with
> > > receivers, then mrouted can see the IGMP membership reports!!
> > > No other mrouted running on neighbor machines.
> > 
> > Starting tcpdump puts the interface in promiscuous mode. It sounds to
> > me like a) the NIC driver is incorrectly discarding multicast packets
> > when not in promiscuous mode, or b) mrouted uses bpf but forgets to

Thanks for all suggestions/explanations.

A mcast routing daemon like mrouted puts an interface in a mode
similar to promiscuous: there is a flag IFF_ALLMULTI that enables
receiving all multicast groups. After looking in the source code, it
seems like the problem is in the de driver. Below is a simple patch
to pci/if_de.c that fixed it.

I will send an email to the author of the device driver.

Regards,
Pavlin




--- if_de.c.orig	Tue Dec 29 16:37:43 1998
+++ if_de.c	Sun Apr 11 23:32:40 1999
@@ -3378,9 +3378,11 @@
 	} else {
 	    sc->tulip_flags &= ~TULIP_PROMISC;
 	    sc->tulip_cmdmode &= ~TULIP_CMD_PROMISCUOUS;
-	    if (sc->tulip_flags & TULIP_ALLMULTI) {
+	    if (sc->tulip_if.if_flags & IFF_ALLMULTI) {
+		sc->tulip_flags |= TULIP_ALLMULTI;
 		sc->tulip_cmdmode |= TULIP_CMD_ALLMULTI;
 	    } else {
+		sc->tulip_flags &= ~TULIP_ALLMULTI;
 		sc->tulip_cmdmode &= ~TULIP_CMD_ALLMULTI;
 	    }
 	}


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904120649.XAA10028>