Subject: kern/10990: multicast doesn't work with SMC EPCI/100 in 100Mbs
To: None <gnats-bugs@gnats.netbsd.org>
From: None <bouyer@antioche.lip6.fr>
List: netbsd-bugs
Date: 09/11/2000 11:54:18
>Number: 10990
>Category: kern
>Synopsis: multicast doesn't work with SMC EPCI/100 in 100Mbs
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Sep 11 11:55:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:
>Release: 1.5_ALPHA2
>Organization:
LIP6/ASIM
>Environment:
NetBSD horn 1.5_ALPHA2 NetBSD 1.5_ALPHA2 (HORN) #1: Mon Sep 11 20:30:22 CEST 2000 root@horn:/usr/src/sys/arch/i386/compile/HORN i386
epic0 at pci0 dev 9 function 0: SMC 83c170 Fast Ethernet, rev. 8
epic0: interrupting at irq 11
epic0: SMC9432TX, Ethernet address 00:e0:29:3e:d2:af
qsphy0 at epic0 phy 3: QS6612 10/100 media interface, rev. 1
qsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
>Description:
With the above ethernet board, connected to a 100Mbs switch, IP
multicast doesn't work. I traced this down to, probably, multicast
ethernet frame not being received: igmp messages are properly
echanged and the router properly forwards the multicast traffic
to the local net. However, putting the interface in promisc mode
made things working. I suspect either I have a board which is buggy in
100Mbs mode too, or that the multicast filter setup isn't correct.
>How-To-Repeat:
install and start sdr on a i386 machine with a epic/100 connected to
a 100mbs switch. Wonder why you don't get anything.
>Fix:
workaround: don't use the ethernet multicast filter:
Index: smc83c170.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/smc83c170.c,v
retrieving revision 1.32
diff -u -r1.32 smc83c170.c
--- smc83c170.c 2000/05/26 00:14:41 1.32
+++ smc83c170.c 2000/09/11 18:49:01
@@ -1344,6 +1344,9 @@
/* XXX hardware bug in 10Mbps mode. */
goto allmulti;
}
+ else
+ goto allmulti; /* In 100Mbs too ?? */
+
mchash[0] = mchash[1] = mchash[2] = mchash[3] = 0;
>Release-Note:
>Audit-Trail:
>Unformatted: