freebsd-skq/sys
rwatson 56c8fde970 Correct a bug in the if_em driver relating to the use of vlans with
promiscuous mode introduced in 1.45, which programs the em card not
to strip or prepend tags when in promiscuous mode without also
modifying behavior to manually prepend a vlan header in the event
that the card isn't doing it on transmit.  Due to a feature of card
operation, if the global VLAN prepend/strip register isn't set,
setting the VLAN tag flag on individual packet descriptors will
cause the packet to be transmitted using ISL encapsulation rather
than 802.1Q VLAN encapsulation.

This fix causes em_encap() to prepend the header by tracking whether
the card is configured to temporarily disable prepending/stripping
due to promiscuous mode.  As a result, entering promiscuous mode on
the parent em interface no longer causes vlans to appear to "wedge"
or transmit ISL-encapsulated frames, which typically will not be
configured/spoken by the other endpoints on the VLAN trunk.  This
bug may also exist in other drivers, and the additional vlan
encapsulation logic should be abstracted and centralized in
if_vlan.c if so.

RELENG_5_3 candidate.

MFC after:	1 week
Tested by:	pjd, rwatson
Reported by:	astesin at ukrtelecom dot net
Reported by:	Mike Tancsa <mike at sentex dot net>
Reported by:	Iasen Kostov <tbyte at OTEL dot net>
2004-11-12 11:03:07 +00:00
..
alpha Get in sync with reality: TurboLaser was never really well supported to 2004-11-09 22:24:47 +00:00
amd64 MFi386 rev 1.63-1.64: 2004-11-10 03:49:24 +00:00
arm Don't forget to include opt_vm.h. 2004-11-10 22:11:08 +00:00
boot Remove a pre-tier-1 kernel compatability helper. This means a 6.x loader 2004-11-08 23:59:44 +00:00
cam Remove references to the second byte of a CCB containing the LUN, as this 2004-10-13 09:31:04 +00:00
coda Do not use devsw() but si_devsw direction. This is still bogus but a 2004-09-23 12:19:24 +00:00
compat Pick up the inode number using VOP_GETATTR() rather than caching it 2004-11-10 07:25:37 +00:00
conf Doh! This one crept in two commits ago and didn't get weeded out on 2004-11-12 04:48:24 +00:00
contrib Removed the remnants of gx(4). 2004-11-08 20:24:52 +00:00
crypto For variables that are only checked with defined(), don't provide 2004-10-24 15:33:08 +00:00
ddb - Change the ddb paging "support" to use a variable (db_lines_per_page) to 2004-11-01 22:15:15 +00:00
dev Correct a bug in the if_em driver relating to the use of vlans with 2004-11-12 11:03:07 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Remove stale comment after previous commit. 2004-11-09 23:19:21 +00:00
gdb Comment-out the debugging printf I left in in case there were some 2004-08-10 19:32:33 +00:00
geom Before trying to update metadata (so open consumer for writing), be sure 2004-11-09 23:27:21 +00:00
gnu Get even closer to not crashing ext2fs 2004-11-06 18:24:33 +00:00
i4b Mark i4b IPR and SPPP drivers as NET_NEEDS_GIANT(), as they both 2004-10-12 09:25:52 +00:00
i386 - Place the gcc memory barrier hint in the right place in the 80386 version 2004-11-11 22:42:25 +00:00
ia64 - Change the ddb paging "support" to use a variable (db_lines_per_page) to 2004-11-01 22:15:15 +00:00
isa Stop printing the VGA registers during verbose boot, in order to not 2004-11-03 09:07:44 +00:00
isofs/cd9660 Detect root mount attempts on the flag, not on the NULL path. 2004-11-09 22:21:52 +00:00
kern - Temporarily disable the nice -20 throttling code. It has some interaction 2004-11-11 19:48:57 +00:00
libkern Use the RET macro. 2004-11-09 16:47:47 +00:00
modules Commit takawata-san's Sony Notebook Controller driver, integrated into 2004-11-11 22:54:58 +00:00
net Remove the #if 0 wrapping around !ALTQ stuff that can't be used due to ABI 2004-11-09 21:29:28 +00:00
net80211 Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
netatalk Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netatm Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netgraph Add myself to copyright. 2004-11-10 11:18:05 +00:00
netinet Add missing '=' 2004-11-11 19:02:01 +00:00
netinet6 support TCP-MD5(IPv4) in KAME-IPSEC, too. 2004-11-08 18:49:51 +00:00
netipsec Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netipx Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netkey support TCP-MD5(IPv4) in KAME-IPSEC, too. 2004-11-08 18:49:51 +00:00
netnatm Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netncp Add missing zero flag argument. 2004-10-12 08:22:08 +00:00
netsmb Don't use vn_todev(). 2004-11-10 07:16:59 +00:00
nfs
nfs4client Refuse attempts to mount root filesystem 2004-11-09 22:21:10 +00:00
nfsclient Detect root mount attempts on the flag, not on the NULL path. 2004-11-09 22:21:52 +00:00
nfsserver Correct a bug in nfsrv_create() where a call to nfsrv_access() might 2004-11-11 21:30:52 +00:00
opencrypto Don't acquire Giant in cryptof_close(), as the code is intended to be 2004-08-10 03:26:17 +00:00
pc98 MFi386: revision 1.1170 2004-11-10 12:24:30 +00:00
pccard Move PNP IDs back into oldcard files 2004-08-13 06:57:31 +00:00
pci Add device polling support 2004-11-10 23:04:39 +00:00
posix4
powerpc Reduce annoying SCSI probing delay from 15 to 5 seconds in all GENRIC kernels. 2004-11-02 20:57:20 +00:00
rpc Prefer C99's __func__ over GCC's __FUNCTION__. 2004-09-23 18:25:46 +00:00
security Bump MAC Framework version to 2 in preparation for the upcoming API/ABI 2004-11-09 11:28:40 +00:00
sparc64 Fix paths after repocopies done by scottl 2004-11-10 14:09:52 +00:00
sys pbio has moved to dev/pbio 2004-11-11 04:53:46 +00:00
tools Pass doxygen doc comments through to the output. 2004-07-11 16:14:24 +00:00
ufs Put back the vfs_object_create() calls, they do make a difference when 2004-11-12 10:27:14 +00:00
vm Improve readability with a bunch of typedefs for the pager ops. 2004-11-09 13:43:20 +00:00
Makefile Add a NO_BOOT knob to prevent building the boot blocks and loader. 2004-08-19 09:54:28 +00:00