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: