Copyright (c) 2001 Yar Tikhiy
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
$FreeBSD: head/share/man/man4/vlan.4 141037 2005-01-30 10:59:50Z yar $
.Dd November 15, 2004 .Dt VLAN 4 .Os .Sh NAME .Nm vlan .Nd IEEE 802.1Q VLAN network interface .Sh SYNOPSIS .Cd device miibus .Cd device vlan
.Sh DESCRIPTION The .Nm driver demultiplexes frames tagged according to the IEEE 802.1Q standard into logical .Nm network interfaces, which allows routing/bridging between multiple VLANs through a single switch trunk port.
p Each .Nm interface is created at runtime using interface cloning. This is most easily done with the .Xr ifconfig 8 .Cm create command or using the .Va cloned_interfaces variable in .Xr rc.conf 5 .
p To function, a .Nm interface must be assigned a parent interface and numeric VLAN tag using .Xr ifconfig 8 . A single parent can be assigned to multiple .Nm interfaces provided they have different tags. The parent interface is likely to be an Ethernet card connected to a properly configured switch port. The VLAN tag should match one of those set up in the switched network.
p
The
.Nm
driver supports physical devices that do
the VLAN demultiplexing in firmware.
Devices that have hardware support for
802.1Q VLANs are automatically recognized by their interface capabilities.
.Ss "Selecting the Right Network Interface Card to Run VLANs Through"
By now, the only NICs that have both hardware support and proper
driver hooks for the 802.1Q VLAN technology in
.Fx
are
.Xr bge 4 ,
.Xr em 4 ,
.Xr ixgb 4 ,
.Xr nge 4 ,
.Xr re 4 ,
.Xr ti 4 ,
.Xr txp 4 ,
and
.Xr vge 4 .
p The rest of the Ethernet NICs supported by .Fx can run VLANs using software emulation in the .Nm driver. However, most of them lack the capability of transmitting and/or receiving oversized frames. Using such a NIC as a parent interface implies a reduced MTU on the corresponding .Nm interfaces. In the modern Internet, this is likely to cause .Xr tcp 4 connectivity problems due to massive, inadequate .Xr icmp 4 filtering that breaks the Path MTU Discovery mechanism.
p The NICs that support oversized frames are as follows: l -tag -width ".Xr fxp 4 " -offset indent t Xr bfe 4 supports long frames for .Nm natively. t Xr dc 4 supports long frames for .Nm natively. t Xr de 4 requires defining .Dv BIG_PACKET in the
a /usr/src/sys/pci/if_de.c source file and rebuilding the kernel or module. The hack works only for the 21041, 21140, and 21140A chips. t Xr fxp 4 supports long frames for .Nm natively. t Xr hme 4 supports long frames for .Nm natively. t Xr rl 4 supports long frames for .Nm natively. t Xr sis 4 supports long frames for .Nm natively. t Xr ste 4 supports long frames for .Nm natively. t Xr tl 4 has support for long frames. t Xr tx 4 supports long frames for .Nm natively. t Xr xl 4 supports long frames only if the card is built on a newer chip (Cyclone and above). .El
p The .Nm driver automatically recognizes devices that support oversized frames for .Nm use and calculates the appropriate frame MTU based on the capabilities of the parent interface. .Sh SEE ALSO .Xr kqueue 2 , .Xr miibus 4 , .Xr ifconfig 8 .Sh BUGS No 802.1Q features except VLAN tagging are implemented.
p .Dv EVFILT_NETDEV events on a .Nm interface will be sent through .Xr kqueue 2 only if the parent interface uses .Xr miibus 4 for link state notification.