NAME¶
wlan —
generic 802.11 link-layer
support
SYNOPSIS¶
device wlan
DESCRIPTION¶
The
wlan module provides generic code to support 802.11
drivers. Where a device does not directly support 802.11 functionality this
layer fills in. The
wlan module is required by all native
802.11 drivers as well as the
ndis(4) support.
wlan supports multi-mode devices capable of operating in both
2.4GHz and 5GHz bands and supports numerous 802.11 standards: 802.11a,
802.11b, 802.11g, 802.11n, and 802.11s (Draft 3.0). The WPA, 802.11i, and
802.1x security protocols are supported through a combination of in-kernel
code and user-mode applications. The WME/WMM multi-media protocols are
supported entirely within the
wlan module but require a
suitably capable hardware device. Likewise the 802.11h specification is
supported only by suitably capable devices.
Drivers provide 802.11 functionality through
wlan interfaces
that are created at runtime using interface cloning. This is done with the
ifconfig(8) create command or using the
wlans_IFX variable in
rc.conf(5). Some
drivers support the creation of multiple
wlan interfaces
that share the same underlying device; this is the way by which ``multi-bss
support'' is provided but it can also be used to create WDS links and other
interesting applications.
There are several types of
wlan interfaces that may be
created:
- sta
- A client station in an infrastructure bss (i.e. one that
associates to an access point).
- hostap
- An access point in an infrastructure bss.
- mesh
- A mesh station in an MBSS network.
- adhoc
- A station in an IBSS network.
- ahdemo
- A station operating in ``adhoc demo mode''. This is
essentially an IBSS station that does not use management frames (e.g. no
beacons are transmitted). An ahdemo interface is
especially useful for applications that want to transmit and receive raw
802.11 packets.
- monitor
- An interface used exclusively for capturing 802.11 frames.
In particular this specified to have read-only properties which enables it
to be operated on frequencies where one would otherwise not be
allowed.
- wds
- A station that passes 4-address 802.11 traffic for the
purpose of tunneling traffic over a wireless link. Typically this station
would share the same MAC address as a hostap interface.
It may be possible to create wds interfaces without a
companion hostap interface but that is not guaranteed;
one may need to create a hostap interface that does not
send beacon frames before wds interfaces may be
created.
Note that an interface's type cannot be changed once it is created.
wlan defines several mechanisms by which plugin modules may be
used to extend its' functionality. Cryptographic support such as WEP, TKIP,
and AES-CCMP are implemented as standalone modules (if not statically
configured into a system) that register with
wlan. Similarly
there is an authenticator framework for defining 802.11 authentication
services and a framework for integrating access control mechanisms specific to
the 802.11 protocol.
DEBUGGING¶
Debugging controls are available using:
sysctl net.wlan.X.debug=mask
where
X is the number of the
wlan
instance and mask is a bit-or of control bits that determine which debugging
messages to enable. For example,
sysctl net.wlan.0.debug=0x00200000
enables debugging messages related to scanning for an access point, adhoc
neighbor, or an unoccupied channel when operation as an access point. The
wlandebug(8) tool provides a more user-friendly mechanism
for doing the same thing. Note that
sysctl net.wlan.debug=mask
defines the initial value of the debugging flags for each cloned
wlan interface; this is useful to enable debug messages
during interface creation.
COMPATIBILITY¶
The module name of
wlan was used to be compatible with
NetBSD.
Mesh stations follow the 802.11s Draft 3.0 specification which is not ratified
and subject to change. Beware that this specification is incompatible with
earlier drafts; and stations implementing earlier drafts (e.g. Linux) may not
interoperate.
SEE ALSO¶
an(4),
ath(4),
bwi(4),
ipw(4),
iwi(4),
iwn(4),
malo(4),
netintro(4),
ral(4),
rum(4),
uath(4),
upgt(4),
ural(4),
urtw(4),
wi(4),
wlan_acl(4),
wlan_ccmp(4),
wlan_tkip(4),
wlan_wep(4),
wlan_xauth(4),
wpi(4),
zyd(4)
STANDARDS¶
More information can be found in the IEEE 802.11 Standards.
HISTORY¶
The
wlan driver first appeared in
FreeBSD
5.0.
AUTHORS¶
Atsushi Onoe is the author of original
NetBSD software
from which this work began.
Sam Leffler brought the
code into
FreeBSD and then rewrote it to support
multi-mode devices, 802.11g, 802.11n, WPA/802.11i, WME, multi-bss, and add the
extensible frameworks for cryptographic, authentication, and access control
plugins. This manual page was written by
Tom Rhodes
⟨trhodes@FreeBSD.org⟩.