Subject: Re: Network Problems after Running Tcpdump
To: None <tech-net@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-net
Date: 10/07/2001 16:04:17
> On some occasions, running tcpdump on an interface can "fix" such a
> problem, as the interface get put in promiscuous mode, meaning it
> listens to all packets, not just those with the correct MAC
> destination.  This causes packets with the correct *IP* to be
> recieved by the system, regardless of MAC dest.

This is the case on some systems, but should not be the case on NetBSD.
The Ethernet drivers should check and "receive" only packets it
"should" receive; only bpf should ever see the packets that were
received only because the interface was promiscuous.

Of course, there may be network drivers that don't do this, but if so,
that's a bug and should be fixed.  I took a quick peek and the one I
was most familiar with and hence could find fastest - the AMD Lance
driver - does check; see sys/dev/ic/lance.c (search for LANCE_REVC_BUG
to find the relevant code).  sys/dev/qbus/if_qe.c (another one that
came to mind easily) does somewhat similar checks, though the handling
of multicast packets differs.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B