From owner-freebsd-net@FreeBSD.ORG Wed Apr 23 13:50:04 2008 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 651FF106566C for ; Wed, 23 Apr 2008 13:50:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 45BB38FC17 for ; Wed, 23 Apr 2008 13:50:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m3NDo3Uj075548 for ; Wed, 23 Apr 2008 13:50:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m3NDo37x075547; Wed, 23 Apr 2008 13:50:03 GMT (envelope-from gnats) Date: Wed, 23 Apr 2008 13:50:03 GMT Message-Id: <200804231350.m3NDo37x075547@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: Tomas Svensson Cc: Subject: Re: kern/122839: [multicast] FreeBSD 7 multicast routing problem X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Tomas Svensson List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Apr 2008 13:50:04 -0000 The following reply was made to PR kern/122839; it has been noted by GNATS. From: Tomas Svensson To: bug-followup@FreeBSD.org, 4pr@legis.krsn.ru Cc: Subject: Re: kern/122839: [multicast] FreeBSD 7 multicast routing problem Date: Wed, 23 Apr 2008 15:16:56 +0200 There is an obvious bug in the em driver regarding promiscuous multicast (ALLMULTI), and I believe the following is the correct solution: Index: if_em.c =================================================================== RCS file: /usr/local/cvsroot/FreeBSD7/sys/dev/em/if_em.c,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 if_em.c --- if_em.c 3 Mar 2008 13:50:01 -0000 1.1.1.1 +++ if_em.c 23 Apr 2008 10:43:23 -0000 @@ -1080,7 +1080,7 @@ if (ifp->if_flags & IFF_UP) { if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) { if ((ifp->if_flags ^ adapter->if_flags) & - IFF_PROMISC) { + (IFF_PROMISC | IFF_ALLMULTI)) { em_disable_promisc(adapter); em_set_promisc(adapter); } It fixes the problem for me on FreeBSD 7.0 and FreeBSD 6.2. Best regards, -Tomas