1.\" 2.\" Copyright (c) 2003 Tom Rhodes 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.\" $FreeBSD$ 27.\" 28.Dd May 5, 2023 29.Dt WLAN 4 30.Os 31.Sh NAME 32.Nm wlan 33.Nd generic WiFi 802.11 link-layer support 34.Sh SYNOPSIS 35.Cd "device wlan" 36.Sh DESCRIPTION 37The 38.Nm 39module provides generic code to support 802.11 drivers. 40Where a device does not directly support 802.11 functionality 41this layer fills in. 42The 43.Nm 44module is required by all native 802.11 drivers. 45.Pp 46.Nm 47supports multi-mode devices capable of 48operating in both 2.4GHz and 5GHz bands and supports numerous 49802.11 standards: 802.11a, 802.11b, 802.11g, 802.11n, and 802.11s (Draft 3.0). 50The WPA, 802.11i, and 802.1x security protocols are supported 51through a combination of in-kernel code and user-mode applications. 52The WME/WMM multi-media protocols are supported entirely within 53the 54.Nm 55module but require a suitably capable hardware device. 56Likewise the 802.11h specification is supported only by suitably 57capable devices. 58.Pp 59Drivers provide 802.11 functionality through 60.Nm 61interfaces that are created at runtime using interface cloning. 62This is done with the 63.Xr ifconfig 8 64.Cm create 65command or using the 66.Va wlans_IFX 67variable in 68.Xr rc.conf 5 . 69Some drivers support the creation of multiple 70.Nm 71interfaces that share the same underlying device; 72this is the way by which ``multi-bss support'' is provided but it 73can also be used to create WDS links and other interesting applications. 74.Pp 75There are several types of 76.Nm 77interfaces that may be created: 78.Bl -tag -width monitor 79.It Cm sta 80A client station in an infrastructure bss 81(i.e. one that associates to an access point). 82.It Cm hostap 83An access point in an infrastructure bss. 84.It Cm mesh 85A mesh station in an MBSS network. 86.It Cm adhoc 87A station in an IBSS network. 88.It Cm ahdemo 89A station operating in ``adhoc demo mode''. 90This is essentially an IBSS station that does not use management 91frames (e.g. no beacons are transmitted). 92An 93.Cm ahdemo 94interface is especially useful for applications that want to transmit 95and receive raw 802.11 packets. 96.It Cm monitor 97An interface used exclusively for capturing 802.11 frames. 98In particular this specified to have read-only properties 99which enables it to be operated on frequencies where one 100would otherwise not be allowed. 101.It Cm wds 102A station that passes 4-address 802.11 traffic for the purpose 103of tunneling traffic over a wireless link. 104Typically this station would share the same MAC address as a 105.Cm hostap 106interface. 107It may be possible to create 108.Cm wds 109interfaces without a companion 110.Cm hostap 111interface but that is not guaranteed; one may need to create a 112.Cm hostap 113interface that does not send beacon frames before 114.Cm wds 115interfaces may be created. 116.El 117.Pp 118Note that an interface's type cannot be changed once it is created. 119.Pp 120.Nm 121defines several mechanisms by which plugin modules may 122be used to extend its functionality. 123Cryptographic support such as WEP, TKIP, and AES-CCMP are implemented 124as standalone modules (if not statically configured into a system) 125that register with 126.Nm . 127Similarly there is an authenticator framework for defining 802.11 128authentication services and a framework for integrating access 129control mechanisms specific to the 802.11 protocol. 130.Sh DEBUGGING 131If the 132.Dv IEEE80211_DEBUG 133option is included in the kernel configuration, 134debugging controls are available using: 135.Pp 136.Dl "sysctl net.wlan.X.debug=mask" 137.Pp 138where 139.Ar X 140is the number of the 141.Nm 142instance and mask is a bit-or of control bits that determine which 143debugging messages to enable. 144For example, 145.Pp 146.Dl "sysctl net.wlan.0.debug=0x00200000" 147.Pp 148enables debugging messages related to scanning for an access point, 149adhoc neighbor, or an unoccupied channel when operation as an access point. 150The 151.Xr wlandebug 8 152tool provides a more user-friendly mechanism for doing the same thing. 153Note that 154.Pp 155.Dl "sysctl net.wlan.debug=mask" 156.Pp 157defines the initial value of the debugging flags for each cloned 158.Nm 159interface; this is useful to enable debug messages during interface creation. 160.Sh COMPATIBILITY 161The module name of 162.Nm 163was used to be compatible with 164.Nx . 165.Pp 166Mesh stations follow the 802.11s Draft 3.0 specification which is 167not ratified and subject to change. 168Be aware that this specification is incompatible with earlier drafts. 169Stations implementing earlier drafts (e.g., Linux) may be incompatible. 170.Sh SEE ALSO 171.Xr an 4 , 172.Xr ath 4 , 173.Xr bwi 4 , 174.Xr bwn 4 , 175.Xr ipw 4 , 176.Xr iwi 4 , 177.Xr iwlwifi 4 , 178.Xr iwm 4 , 179.Xr iwn 4 , 180.Xr malo 4 , 181.Xr mwl 4 , 182.Xr netintro 4 , 183.Xr otus 4 , 184.Xr ral 4 , 185.Xr rsu 4 , 186.Xr rtw88 4 , 187.Xr rtwn 4 , 188.Xr rum 4 , 189.Xr run 4 , 190.Xr uath 4 , 191.Xr upgt 4 , 192.Xr ural 4 , 193.Xr urtw 4 , 194.Xr wlan_acl 4 , 195.Xr wlan_ccmp 4 , 196.Xr wlan_tkip 4 , 197.Xr wlan_wep 4 , 198.Xr wlan_xauth 4 , 199.Xr wpi 4 , 200.Xr zyd 4 201.Sh STANDARDS 202More information can be found in the IEEE 802.11 Standards. 203.Sh HISTORY 204The 205.Nm 206driver first appeared in 207.Fx 5.0 . 208.Sh AUTHORS 209Atsushi Onoe is the author of original 210.Nx 211software from which this work began. 212.An -nosplit 213.An Sam Leffler 214brought the code into 215.Fx 216and then rewrote it to support multi-mode devices, 217802.11g, 802.11n, WPA/802.11i, WME, multi-bss, and 218add the extensible frameworks 219for cryptographic, authentication, and access control plugins. 220This manual page was written by 221.An Tom Rhodes Aq Mt trhodes@FreeBSD.org . 222