bridging ethernets containing vlans,

Yar Tikhiy yar at comp.chem.msu.su
Fri Dec 22 00:33:18 PST 2006


On Thu, Dec 21, 2006 at 05:00:09PM -0800, Julian Elischer wrote:
> If I bridge two ethernets, one with HW_vlan tagging and the other 
> without, and there are vlans active on that network, am I right in 
> assuming that it requires that the two ethernets need to both have their
> HW_vlan capabilities on or off, but that it won't work if they are mixed?
> 
> The bridging code seems to turn on and off promiscuous mode for the 
> interfaces and bridge_mutecaps() seems to turn on the HX Checksup 
> capacity, but there doesn't seem to be any code whereby the
> VLAN tagging is enabled or disabled.
> 
> This means that bridging a HW-VLAN interface with one that
> doesn't support HW vlans will result in just the base packet being
> transmitted and the vlan header being dropped.
> 
> Am I reading this right?
> shouldn't the function bridge_mutecaps() also turn off HW vlan handling?
> and is it just a case of adding it to BRIDGE_IFCAPS_MASK?

I'd rather convert between the in-band and ouf-of-band representation
of the VLAN tag in software.  The problem with h/w capabilities is
that no one can promise you that a particular NIC+driver pair can
really control a particular capability; it can just stay always on
due to driver incompleteness or firmware bogosity.  On the output
path, well-tempered network interfaces with VLAN_HWTAG should be
able to accept both in-band and ouf-of-band tags, but real-world
NICs can fail to operate in such a mixed mode.  Many pitfalls lurk
in the hardware acceleration of networking operations.

-- 
Yar


More information about the freebsd-net mailing list