Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Mar 2007 17:51:59 +0000
From:      "Bruce M. Simpson" <bms@FreeBSD.org>
To:        Scot Hetzel <swhetzel@gmail.com>, Denis Shaposhnikov <dsh@vlink.ru>,  david@catwhisker.org
Cc:        current@freebsd.org
Subject:   Re: no network access on today's CURRENT
Message-ID:  <4602C23F.3060400@FreeBSD.org>
In-Reply-To: <4602B42D.5060102@FreeBSD.org>
References:  <46025922.4090809@vlink.ru>	<790a9fff0703220825g69405b89j123f7be87fadcb10@mail.gmail.com> <4602B42D.5060102@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------020506060009020300030706
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Are you using any FreeBSD networking features which put the interface 
into promiscuous mode?
e.g. vlan, netgraph, if_bridge?

If so, Yar has found a typo in the code, which did not get enough 
testing before commit (despite my request on -net for volunteers to do 
so). Can you please try this patch?

regards,
BMS

--------------020506060009020300030706
Content-Type: text/x-patch;
 name="promisc.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="promisc.diff"

Index: if_ethersubr.c
===================================================================
RCS file: /home/ncvs/src/sys/net/if_ethersubr.c,v
retrieving revision 1.225
diff -u -p -r1.225 if_ethersubr.c
--- if_ethersubr.c	20 Mar 2007 14:29:54 -0000	1.225
+++ if_ethersubr.c	22 Mar 2007 17:51:31 -0000
@@ -669,15 +669,14 @@ ether_input(struct ifnet *ifp, struct mb
 #endif
 	{
 		/*
-		 * If the frame was received promiscuously, set the
+		 * If the frame received was not for our MAC address, set the
 		 * M_PROMISC flag on the mbuf chain. The frame may need to
 		 * be seen by the rest of the Ethernet input path in case of
 		 * re-entry (e.g. bridge, vlan, netgraph) but should not be
 		 * seen by upper protocol layers.
 		 */
 		if (!ETHER_IS_MULTICAST(eh->ether_dhost) &&
-		    (ifp->if_flags & IFF_PROMISC) != 0 &&
-		    !bcmp(IF_LLADDR(ifp), eh->ether_dhost, ETHER_ADDR_LEN))
+		    bcmp(IF_LLADDR(ifp), eh->ether_dhost, ETHER_ADDR_LEN) != 0)
 			m->m_flags |= M_PROMISC;
 	}
 

--------------020506060009020300030706--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4602C23F.3060400>