---
name: "wlan"
section: "4"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/wlan"
---

# wlan(4)

generic 802.11 link-layer support

## 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** is required for the [wi(4)](/wi/4.md), [an(4)](/an/4.md) and [ath(4)](/ath/4.md) drivers, with other drivers to follow.

The **wlan** module supports multi-mode devices capable of operating in both 2.4GHz and 5GHz bands and supports numerous 802.11 protocols: 802.11a, 802.11b, and 802.11g. The WPA, 802.11i, and 802.1x security protocols are supported through a combination of in-kernel code and user-mode applications. The WME and WMM multi-media protocols are supported entirely within the **wlan** module but require a suitably capable hardware device.

The **wlan** module defines several mechanisms by which plugin modules may be used to extend functionality. Cryptographic support such as WEP, TKIP, and AES-CCMP are implemented as modules that are loaded on demand (if not statically configured into a system). 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

If the associated interface is marked for debugging with, for example,

```
ifconfig wi0 debug
```

then messages describing the operation of the 802.11 protocol will be sent to the console. Complete 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 80211debug tool provides a more user-friendly mechanism for doing the same thing.

Many drivers will also display the contents of each 802.11 frame sent and received when the interface is marked with both debugging and **link2**; e.g.,

```
ifconfig wi0 debug link2
```

Beware however that some management frames may be processed entirely within the device and not be received by the host.

## COMPATIBILITY

The module name of **wlan** was used to be compatible with NetBSD.

## SEE ALSO

[an(4)](/an/4.md), [ath(4)](/ath/4.md), [awi(4)](/awi/4.md), [netintro(4)](/netintro/4.md), [wi(4)](/wi/4.md), [wlan\_acl(4)](/wlan_acl/4.md), [wlan\_ccmp(4)](/wlan_ccmp/4.md), [wlan\_tkip(4)](/wlan_tkip/4.md), [wlan\_wep(4)](/wlan_wep/4.md), [wlan\_xauth(4)](/wlan_xauth/4.md)

## STANDARDS

More information can be found in the IEEE 802.11 Standard.

## 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, WPA/802.11i, WME, and add the extensible frameworks for cryptographic, authentication, and access control plugins. This manual page was written by Tom Rhodes ⟨trhodes@FreeBSD.org⟩.
