cvs commit: src/sys/dev/em if_em.c

Robert Watson rwatson at FreeBSD.org
Wed Jan 26 04:13:23 PST 2005


On Wed, 26 Jan 2005, Maxim Konovalov wrote:

> >   Disable use of hardware VLAN tagging and stripping in if_em in the default
> >   configuration: it appears to work properly in the non-promiscuous case, but
> >   we've not yet implemented a more general solution that maintains full
> >   functionality with promiscuous mode enabled.  While my hope is that we can
> >   get one implemented soon, this will improve functionality substantially in
> >   the mean time.
> 
> Thanks!

Sorry this has taken so long -- I hoped to put together a solution in
December, but ran out of time.  We may want to make the same change to
if_re, which probably suffers from the same problem (I'm unable to test
that, since I have no if_re hardware).  Hopefully I (or someone) can get
to a more complete fix soon.  Fixing this problem is made difficult in
that we have to be careful to avoid races between the generation of
packets and the transition of hardware state to and from tagging/stripping
mode, which means the driver has to run additional software VLAN logic as
packets enter/exit the card to make sure that the state of the VLAN flags
in hardware doesn't transition when packets in its descriptors aren't in a
useful state.

Robert N M Watson




More information about the cvs-src mailing list