Subject: kern/16063: rtk multicast problems
To: None <gnats-bugs@gnats.netbsd.org>
From: None <imago@13thmonkey.org>
List: netbsd-bugs
Date: 03/26/2002 15:21:23
>Number: 16063
>Category: kern
>Synopsis: rtk driver (sys/dev/ic/rtl81x9.c) multicast (recieve?) problem
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Mar 26 06:22:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: Reinoud Zandijk
>Release: NetBSD 1.5ZC
>Organization:
NetBSD
>Environment:
System: NetBSD starbuck.13thmonkey.org 1.5ZC NetBSD 1.5ZC (config.starbuck) #0: Tue Mar 26 14:02:50 CET 2002 imago@starbuck.13thmonkey.org:/usr/sources/cvs.netbsd.org/src/sys/arch/alpha/compile/config.starbuck alpha
System: NetBSD kabel208244 1.5ZA NetBSD 1.5ZA (PAALHUIS) #0: Fri Mar 8 00:01:23 CET 2002 root@kabel208244:/usr/sources/src/sys/arch/i386/compile/PAALHUIS i386
>Description:
The rtk interface seems to have trouble with recieving multicasts needed
for IPv6 for its `ndp'.
Typical issues are :
13:22:54.034857 starbuck.13thmonkey.org > ff02::1:ff8f:abd5: icmp6: neighbor sol: who has paalhuis.13thmonkey.org
13:22:55.034793 starbuck.13thmonkey.org > ff02::1:ff8f:abd5: icmp6: neighbor sol: who has paalhuis.13thmonkey.org
but this machine who is on the _same_ network and just doesn't answer. If i
log in onto this machine and use a `tcpdump' without the -p option it
spontaniously reacts and the `starbuck' machine gets its response.
>How-To-Repeat:
It allways happends :(
>Fix:
There is a quick HACK to make it work .... i'm now trying this patch out
and all seems to work fine now (thanks soda).....
Index: rtl81x9.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/rtl81x9.c,v
retrieving revision 1.40
diff -u -p -r1.40 rtl81x9.c
--- rtl81x9.c 2001/11/13 13:14:43 1.40
+++ rtl81x9.c 2002/03/26 14:19:31
@@ -557,6 +557,8 @@ STATIC void rtk_setmulti(sc)
rxfilt = CSR_READ_4(sc, RTK_RXCFG);
+/* XXX groB hack : allways set like promisc XXX */
+goto allmulti;
if (ifp->if_flags & IFF_PROMISC) {
allmulti:
ifp->if_flags |= IFF_ALLMULTI;
-------------
>Release-Note:
>Audit-Trail:
>Unformatted: