Subject: Re: ipv6 mcast trouble with Broadcom NetXtreme II BCM5708
To: None <tech-net@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-net
Date: 12/03/2007 17:29:53
--GRPZ8SYKNexpdSJ7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Tue, Dec 04, 2007 at 12:15:59AM +0100, 6bone@6bone.informatik.uni-leipzig.de wrote:
> hello,
>
> At my test system I have installed NetBSD 4.0_RC5 amd64.
>
> After startup the interface doesn't get an ipv6 address via stateless
> address config. tcpdump (no promisc mode) shows only ipv6 unicast packets
> but no ipv6 multicast packets like router advertisements.
>
> If you switch the interface to the promisc mode, everything works well.
> tcpdump shows all packets and the stateless address config works fine.
>
> The problem occurs only with Broadcom NIC's but not with INTEL NIC's
Is the product supported by bnx(4) ? It looks to me like bnx_ioctl()
does not implement SIOCADDMULTI / SIOCDELMULTI properly. I have attached
a patch that I have only compile-tested.
(I believe that a Dell server that I ordered has this same ethernet,
so I hope that the driver works!)
Dave
--
David Young OJC Technologies
dyoung@ojctech.com Urbana, IL * (217) 278-3933 ext 24
--GRPZ8SYKNexpdSJ7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="bnx.patch"
Index: if_bnx.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_bnx.c,v
retrieving revision 1.10
diff -p -u -u -p -r1.10 if_bnx.c
--- if_bnx.c 9 Nov 2007 08:26:47 -0000 1.10
+++ if_bnx.c 3 Dec 2007 23:32:35 -0000
@@ -4420,11 +4420,12 @@ bnx_ioctl(struct ifnet *ifp, u_long comm
default:
error = ether_ioctl(ifp, command, data);
- if (error == ENETRESET) {
-#if 0
+ if (error != ENETRESET)
+ ;
+ else if (command == SIOCADDMULTI || command == SIOCDELMULTI) {
+ /* reload packet filter if running */
if (ifp->if_flags & IFF_RUNNING)
- /*bnx_setmulti(sc)*/;
-#endif
+ bnx_set_rx_mode(sc);
error = 0;
}
break;
--GRPZ8SYKNexpdSJ7--