From owner-freebsd-arm@FreeBSD.ORG Sat Mar 1 18:00:00 2014 Return-Path: Delivered-To: freebsd-arm@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9D554F9F for ; Sat, 1 Mar 2014 18:00:00 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 78B3F1F9F for ; Sat, 1 Mar 2014 18:00:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id s21I005b091937 for ; Sat, 1 Mar 2014 18:00:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.8/8.14.8/Submit) id s21I00xb091936; Sat, 1 Mar 2014 18:00:00 GMT (envelope-from gnats) Resent-Date: Sat, 1 Mar 2014 18:00:00 GMT Resent-Message-Id: <201403011800.s21I00xb091936@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-arm@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Takanori Sawada Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 70EA8B29 for ; Sat, 1 Mar 2014 17:56:37 +0000 (UTC) Received: from newred.freebsd.org (cgiserv.freebsd.org [IPv6:2001:1900:2254:206a::50:4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5D1961F58 for ; Sat, 1 Mar 2014 17:56:37 +0000 (UTC) Received: from cgiserv.freebsd.org ([127.0.1.6]) by newred.freebsd.org (8.14.7/8.14.7) with ESMTP id s21HuaGH056871 for ; Sat, 1 Mar 2014 17:56:37 GMT (envelope-from nobody@cgiserv.freebsd.org) Received: (from nobody@localhost) by cgiserv.freebsd.org (8.14.7/8.14.7/Submit) id s21Huanw056870; Sat, 1 Mar 2014 17:56:36 GMT (envelope-from nobody) Message-Id: <201403011756.s21Huanw056870@cgiserv.freebsd.org> Date: Sat, 1 Mar 2014 17:56:36 GMT From: Takanori Sawada To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: arm/187179: Wandboard ffec cannot receive IPv6 multicast X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Mar 2014 18:00:00 -0000 >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: