Subject: kern/23151: ath(4) multicast filter is broken
To: None <gnats-bugs@gnats.netbsd.org>
From: None <naoki@fukaumi.org>
List: netbsd-bugs
Date: 10/14/2003 02:29:08
>Number:         23151
>Category:       kern
>Synopsis:       ath(4) multicast filter is broken
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 13 17:30:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     FUKAUMI Naoki
>Release:        NetBSD 1.6ZC
>Organization:
	FUKAUMI Naoki
>Environment:
>Description:
	ath(4) multicast filter is broken.

	I can output a packet via ath0. but I can NOT get any packet
	from ath0 (incl broadcast packet).

	With ath_debug=1, I got this message,
	> ath_mode_init: RX filter 0x17, MC filter 00000000:00000000
	I thought MC filter is not setup correctly.

	ath.c::ath_mcastfilter_*() may be wrong.
>How-To-Repeat:
	Use ath(4).
>Fix:
	This is very dirty patch. But it solves my problem.
	(It sets MC filter to ffffffff:ffffffff)
Index: ath.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/ath.c,v
retrieving revision 1.2
diff -u -r1.2 ath.c
--- ath.c	2003/10/13 05:34:30	1.2
+++ ath.c	2003/10/13 17:10:06
@@ -311,7 +311,7 @@
 	}
 
 	ifp->if_softc = sc;
-	ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST;
+	ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST | IFF_ALLMULTI;
 	ifp->if_start = ath_start;
 	ifp->if_watchdog = ath_watchdog;
 	ifp->if_ioctl = ath_ioctl;
>Release-Note:
>Audit-Trail:
>Unformatted: