Date: Sat, 1 Mar 2014 17:56:36 GMT From: Takanori Sawada <tak.swd@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: arm/187179: Wandboard ffec cannot receive IPv6 multicast Message-ID: <201403011756.s21Huanw056870@cgiserv.freebsd.org> Resent-Message-ID: <201403011800.s21I00xb091936@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 187179 >Category: arm >Synopsis: Wandboard ffec cannot receive IPv6 multicast >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-arm >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Mar 01 18:00:00 UTC 2014 >Closed-Date: >Last-Modified: >Originator: Takanori Sawada >Release: FreeBSD 11.0-CURRENT >Organization: >Environment: FreeBSD wandboard 11.0-CURRENT FreeBSD 11.0-CURRENT #12 9e667e1(master): Sun Mar 2 01:57:57 JST 2014 tak@localhost.localdomain:/home/tak/share/github/freebsd-objs/arm.armv6/home/tak/share/github/freebsd/sys/WANDBOARD-DUAL arm >Description: Wandboard ffec cannot receive IPv6 multicast. - ping6 (From Wandboard to Test Server) ping6 ff02::1%ffec0 netstat -i ===> Cannot receive NS multicast. transmit OK. ping6 server_linklocal_address%ffec0 netstat -i ===> Cannot receive NS multicast. transmit OK. - ping6 (From Test Server to Wandboard) tcpdump -i ffec0 ping6 Wandboard_ffec_linklocal_address%em0 ===> Cannot receive ICMPv6 Echo Request Multicast. >How-To-Repeat: >Fix: I found ffec multicast filter problem. Patch file attached. Patch attached with submission follows: diff --git sys/dev/ffec/if_ffec.c sys/dev/ffec/if_ffec.c index 05a6c99..ca5b77b 100644 --- sys/dev/ffec/if_ffec.c +++ sys/dev/ffec/if_ffec.c @@ -954,14 +954,14 @@ ffec_setup_rxfilter(struct ffec_softc *sc) if ((ifp->if_flags & IFF_ALLMULTI)) ghash = 0xffffffffffffffffLLU; else { - ghash = 0; + ghash = 0LLU; if_maddr_rlock(ifp); TAILQ_FOREACH(ifma, &sc->ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; crc = ether_crc32_be(LLADDR((struct sockaddr_dl *) ifma->ifma_addr), ETHER_ADDR_LEN); - ghash |= 1 << (crc & 0x3f); + ghash |= 1LLU << (crc & 0x3f); } if_maddr_runlock(ifp); } >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403011756.s21Huanw056870>