cvs commit: src/sys/net if_tap.c
Bruce M Simpson
bms at FreeBSD.org
Sat Feb 3 02:57:47 UTC 2007
bms 2007-02-03 02:57:46 UTC
FreeBSD src repository
Modified files:
sys/net if_tap.c
Log:
Drop unicast Ethernet frames not destined for the configured address
of a tap(4) instance, if IFF_PROMISC is not set.
In tap(4), we should emulate the effect IFF_PROMISC would have on
hardware, otherwise we risk introducing layer 2 loops if tap(4) is
used with bridges. This means not even bpf(4) gets to see them.
This patch has been tested in a variety of situations. Multicast and
broadcast frames are correctly allowed through. I have observed this
behaviour causing problems with multiple QEMU instances hosted on
the same FreeBSD machine.
The checks in in ether_demux() [if_ethersubr.c, rev 1.222, line 638]
are insufficient to prevent this bug from occurring, as ifp->if_vlantrunk
will always be NULL for the non-vlan case.
MFC after: 3 weeks
PR: 86429
Submitted by: Pieter de Boer (with changes)
Revision Changes Path
1.68 +18 -0 src/sys/net/if_tap.c
More information about the cvs-src
mailing list