1.\" $OpenBSD: wi.4tbl,v 1.45 2004/05/15 03:02:23 tedu Exp $ 2.\" 3.\" Copyright (c) 1997, 1998, 1999 4.\" Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgement: 16.\" This product includes software developed by Bill Paul. 17.\" 4. Neither the name of the author nor the names of any co-contributors 18.\" may be used to endorse or promote products derived from this software 19.\" without specific prior written permission. 20.\" 21.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND 22.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24.\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD 25.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 31.\" THE POSSIBILITY OF SUCH DAMAGE. 32.\" 33.\" $FreeBSD: wi.4,v 1.3 1999/05/22 16:12:43 wpaul Exp $ 34.\" 35.Dd March 23, 2004 36.Dt WI 4 37.Os 38.Sh NAME 39.Nm wi 40.Nd WaveLAN/IEEE, PRISM 2-3 and Spectrum24 802.11DS wireless network driver 41.Sh SYNOPSIS 42.Cd "# all architectures" 43.Cd "wi* at pci? dev ? function ?" 44.Cd "wi* at pcmcia? function ?" 45.Cd "wi* at uhub? port ?" 46.Pp 47.Cd "# macppc extra attachment" 48.Cd "wi* at macobio?" 49.Sh DESCRIPTION 50The 51.Nm 52driver provides support for wireless network adapters based around 53the Lucent Hermes, Intersil PRISM-2, Intersil PRISM-2.5, Intersil PRISM-3 54and Symbol Spectrum24 chipsets. 55All five chipsets provide a similar interface to the driver. 56.Pp 57All host/device interaction is via programmed I/O. 58Supported features include 802.11 and 802.3 frames, power management, BSS, 59IBSS, WDS and ad-hoc operation modes. 60Cards based on the Intersil chips also support a host-based access point 61mode which allows a card to act as a normal access point (with some 62assistance from the 63.Nm 64driver). 65The Lucent Hermes and Symbol Spectrum24 chipsets do not contain this 66functionality. 67.Pp 68The 69.Nm 70driver encapsulates all IP and ARP traffic as 802.11 frames, however 71it can receive either 802.11 or 802.3 frames. 72Transmit speed is selectable between 1Mbps fixed, 2Mbps fixed, 2Mbps 73with auto fallback, 5.5Mbps, 8Mbps, or 11Mbps depending on your hardware. 74The Lucent WaveLAN/IEEE Silver and Gold cards as well as the Intersil 75and Symbol cards have support for WEP encryption. 76The WaveLAN Gold as well as newer Intersil and Symbol cards support 77104bit keys, the others only accept 40bit keys. 78The Lucent WaveLAN/IEEE Bronze cards do not support WEP at all. 79To enable encryption, use the 80.Xr wicontrol 8 81utility to set your keys, or use 82.Xr ifconfig 8 83as shown below. 84.Pp 85By default, the 86.Nm 87driver configures the card for BSS operation (aka infrastructure 88mode). 89This mode requires the use of an access point (base station). 90.Pp 91The 92.Nm 93driver also supports an ad-hoc (point-to-point) mode where 94the nwid is ignored and stations can communicate amongst 95themselves without the aid of an access point. 96Note that there are two possible ad-hoc modes. 97One mode, referred to as 98.Dq ad-hoc demo mode , 99predates the IEEE 802.11 specification and so may not interoperate 100with cards from other vendors. 101The standardized ad-hoc mode, also known as IBSS mode, is not 102supported by cards with very old firmware revisions. 103.Pp 104Cards based on the Intersil chipsets also have a host-based access point 105mode which allows the card to act as an access point (base station). 106.Pp 107For more information on configuring this device, see 108.Xr ifconfig 8 . 109.Pp 110Cards supported by the 111.Nm 112driver come in a variety of packages, though the most common 113are of the PCMCIA type. 114In many cases, the PCI version of a wireless card is simply 115a PCMCIA card bundled with a PCI adapter. 116The PCI adapters come in two flavors: true PCMCIA bridges and 117dumb PCMCIA bridges. 118A true PCMCIA bridge (such as those sold by Lucent) will attach 119as a real PCMCIA controller. 120The wireless card will then attach to the PCMCIA bus. 121Wireless cards in PCMCIA slots may be inserted and ejected on the fly. 122.Pp 123A dumb bridge, on the other hand, does not show up as a true PCMCIA bus. 124The wireless card will simply appear to the host as a normal PCI 125device and will not require any PCMCIA support. 126Cards in this type of adapter should only be removed when the 127machine is powered down. 128.Pp 129The following cards are among those supported by the 130.Nm 131driver: 132.Pp 133.in +\n(dIu 134.TS 135tab (:) nokeep ; 136l l l 137_ _ _ 138l l l . 139Card:Chip:Bus 1403Com AirConnect 3CRWE737A:Spectrum24:PCMCIA 1413Com AirConnect 3CRWE777A:Prism-2:PCI 142Acer Warplink USB-400:Prism-3:USB 143Actiontec HWC01170:Prism-2.5:PCMCIA 144Actiontec HWU01170:Prism-3:USB 145Addtron AWP-100:Prism-2:PCMCIA 146Agere Orinoco:Hermes:PCMCIA 147Apple Airport:Hermes:macobio 148Buffalo AirStation:Prism-2:PCMCIA 149Buffalo AirStation:Prism-2:CF 150Cabletron RoamAbout:Hermes:PCMCIA 151Compaq Agency NC5004:Prism-2:PCMCIA 152Contec FLEXLAN/FX-DS110-PCC:Prism-2:PCMCIA 153Corega PCC-11:Prism-2:PCMCIA 154Corega PCCA-11:Prism-2:PCMCIA 155Corega PCCB-11:Prism-2:PCMCIA 156Corega CGWLPCIA11:Prism-2:PCI 157Corega WLUSB-11:Prism-3:USB 158Dlink DWL520:Prism-2.5:PCI 159Dlink DWL650:Prism-2.5:PCMCIA 160ELSA XI300:Prism-2:PCMCIA 161ELSA XI325:Prism-2.5:PCMCIA 162ELSA XI325H:Prism-2.5:PCMCIA 163ELSA XI800:Prism-2:CF 164EMTAC A2424i:Prism-2:PCMCIA 165Ericsson Wireless LAN CARD C11:Spectrum24:PCMCIA 166Gemtek WL-311:Prism-2.5:PCMCIA 167Hawking Technology WE110P:Prism-2.5:PCMCIA 168I-O DATA WN-B11/PCM:Prism-2:PCMCIA 169I-O DATA WN-B11/USB:Prism-3:USB 170Intel PRO/Wireless 2011:Spectrum24:PCMCIA 171Intel PRO/Wireless 2011B:Prism-3:USB 172Intersil Prism II:Prism-2:PCMCIA 173Intersil Mini-PCI:Prism-2.5:PCI 174Intersil Prism 2X:Prism-3:USB 175JVC MP-XP7250:Prism-3:USB 176Linksys Instant Wireless WPC11:Prism-2:PCMCIA 177Linksys Instant Wireless WPC11 2.5:Prism-2.5:PCMCIA 178Linksys Instant Wireless WPC11 3.0:Prism-3:PCMCIA 179Linksys WUSB11 v3.0:Prism-3:USB 180Linksys WUSB12:Prism-3:USB 181Lucent WaveLAN:Hermes:PCMCIA 182Melco WLI-USB-KS11G:Prism-3:USB 183MicroSoft MN510:Prism-3:USB 184MicroSoft MN520:Prism-2.5:PCMCIA 185NANOSPEED ROOT-RZ2000:Prism-2:PCMCIA 186NDC/Sohoware NCP130:Prism-2:PCI 187NEC CMZ-RT-WP:Prism-2:PCMCIA 188Netgear MA111:Prism-3:USB 189Netgear MA311:Prism-2.5:PCI 190Netgear MA401:Prism-2:PCMCIA 191Netgear MA401RA:Prism-2.5:PCMCIA 192Nokia C020 Wireless LAN:Prism-I:PCMCIA 193Nokia C110/C111 Wireless LAN:Prism-2:PCMCIA 194Nortel E-mobility 211818-A:Spectrum24:PCI 195NTT-ME 11Mbps Wireless LAN:Prism-2:PCMCIA 196Proxim Harmony:Prism-2:PCMCIA 197Proxim RangeLAN-DS:Prism-2:PCMCIA 198Samsung MagicLAN SWL-2000N:Prism-2:PCMCIA 199Siemens SpeedStream SS1021:Prism-2:PCMCIA 200Siemens SpeedStream SS1022:Prism-3:USB 201SMC 2632 EZ Connect:Prism-2:PCMCIA 202Symbol Spectrum24:Spectrum24:PCMCIA 203Symbol LA4123:Spectrum24:PCI 204Syntax USB-400:Prism-3:USB 205TDK LAK-CD011WL:Prism-2:PCMCIA 206US Robotics 2410:Prism-2:PCMCIA 207US Robotics 2445:Prism-2:PCMCIA 208.TE 209.in -\n(dIu 210.Pp 211Note that some of the PRISM-II adapters only work at 3.3V, hence 212.Xr cardbus 4 213support is required for those cards to set VCC correctly, even 214though they are really 16bit cards. 215.Pp 216USB support is still experimental and the device may stop functioning 217during normal use. 218Resetting the device by configuring the interface down and back up again will 219normally reactivate it. 220.Pp 221Several vendors sell PCI adapters built around the PLX Technology 9050 222or 9052 chip. 223The following such adapters are supported or expected to work: 224.Pp 225.Bl -tag -width Ds -offset indent -compact 226.It 3Com AirConnect 3CRWE777A (3.3V) 227.It Belkin F5D6000 (a rebadged WL11000P) 228.It Eumitcom WL11000P 229.It Global Sun Technology GL24110P (untested) 230.It Global Sun Technology GL24110P02 231.It LinkSys WDT11 (a rebadged GL24110P02) 232.It Netgear MA301 233.It US Robotics 2415 (rebadged WL11000P) 234.It Siemens/Efficient Networks SpeedStream 1023 235.El 236.Sh EXAMPLES 237The following examples utilize 238.Xr ifconfig 8 239for simplicity, however, 240.Xr wicontrol 8 241can also be used to set wireless parameters. 242.Pp 243Join an existing BSS network (ie: connect to an access point): 244.Dl # ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 245.Pp 246Join a specific BSS network with network name 247.Dq my_net : 248.Dl # ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net 249.Pp 250Join a specific BSS network with WEP encryption: 251.Bd -literal -compact -offset indent 252# ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net \e 253 nwkey 0x8736639624 254.Ed 255.Pp 256Join an ad-hoc network with network name 257.Dq my_net : 258.Bd -literal -compact -offset indent 259# ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net \e 260 mediaopt adhoc 261.Ed 262.Pp 263Create an IBBS network with network name 264.Dq my_net : 265.Bd -literal -compact -offset indent 266# ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net \e 267 mediaopt ibss-master 268.Ed 269.Pp 270Join an IBBS network with network name 271.Dq my_net : 272.Bd -literal -compact -offset indent 273# ifconfig wi0 inet 192.168.0.22 netmask 0xffffff00 nwid my_net \e 274 mediaopt ibss 275.Ed 276.Pp 277Create a host-based access point (Prism only): 278.Bd -literal -compact -offset indent 279# ifconfig wi0 inet 192.168.0.10 netmask 0xffffff00 nwid my_ap \e 280 mediaopt hostap 281.Ed 282.Pp 283Create a host-based access point with WEP enabled (Prism only): 284.Bd -literal -compact -offset indent 285# ifconfig wi0 inet 192.168.0.10 netmask 0xffffff00 nwid my_ap \e 286 nwkey 0x1234567890 mediaopt hostap 287.Ed 288.Pp 289Create a host-based wireless bridge to fxp0 (Prism only): 290.Bd -literal -compact -offset indent 291# ifconfig wi0 inet up nwid my_ap mediaopt hostap 292# brconfig bridge0 add fxp0 add wi0 up 293.Ed 294.Pp 295The following examples utilize 296.Xr wicontrol 8 297to set options not supported by 298.Xr ifconfig 8 . 299.Pp 300Enable software-based WEP (Prism only, see 301.Sx CAVEATS 302below): 303.Dl # wicontrol wi0 -x 1 304.Pp 305Hide the SSID of a HostAP server (Prism only, requires firmware >= 1.6.3) 306.Dl # wicontrol wi0 -E 3 307.Pp 308Note that when setting options via 309.Xr wicontrol 8 310in a 311.Xr hostname.if 5 312file (e.g.\& 313.Pa /etc/hostname.wi0 ) , 314the 315.Xr wicontrol 8 316commands should be specified first. 317.Pp 318The following 319.Xr hostname.if 5 320example will set the channel to 11, enable software 321WEP, and turn on enhanced security (SSID hiding) before configuring 322the interface as a host-based access point: 323.Bd -literal -offset indent 324!/sbin/wicontrol \e$if -f 11 -x 1 -E 3 325inet 192.168.1.1 255.255.255.0 NONE nwid my_net \e 326 nwkey 0x8736639624 mediaopt hostap 327.Ed 328.Pp 329Note that the line beginning with "inet" has been split for readability. 330.Sh DIAGNOSTICS 331.Bl -diag 332.It "wi%d: init failed" 333The WaveLAN card failed to come ready after an initialization command 334was issued. 335.It "wi%d: failed to allocate %d bytes on NIC" 336The driver was unable to allocate memory for transmit frames in the 337NIC's on-board RAM. 338.It "wi%d: device timeout" 339The WaveLAN failed to generate an interrupt to acknowledge a transmit 340command. 341.El 342.Sh SEE ALSO 343.Xr an 4 , 344.Xr arp 4 , 345.Xr ifmedia 4 , 346.Xr intro 4 , 347.Xr macobio 4 , 348.Xr netintro 4 , 349.Xr pci 4 , 350.Xr pcmcia 4 , 351.Xr usb 4 , 352.Xr hostname.if 5 , 353.Xr ifconfig 8 , 354.Xr wicontrol 8 355.Rs 356.%T HCF Light programming specification 357.%O http://www.wavelan.com 358.Re 359.Sh HISTORY 360The 361.Nm 362device driver first appeared in 363.Fx 3.0 . 364.Ox 365support was added in 366.Ox 2.6 . 367.Sh AUTHORS 368The 369.Nm 370driver was written by 371.An Bill Paul Aq wpaul@ctr.columbia.edu 372and ported to 373.Ox 374by 375.An Niklas Hallqvist Aq niklas@appli.se . 376.Sh CAVEATS 377The original Lucent WaveLAN cards usually default to channel 3; 378newer cards use channel 10 by default. 379Non-Lucent cards vary, for instance the Addtron cards use channel 38011 by default. 381See 382.Xr wicontrol 8 383for information on how to change the channel. 384.Pp 385Not all 3.3V 386.Nm 387PCMCIA cards work. 388.Pp 389IBSS creation does not currently work with Symbol cards. 390.Pp 391The host-based access point mode on the Intersil PRISM cards has 392bugs when used with firmware versions prior to 0.8.3 and is completely 393unusable with firmware versions prior to 0.8.0 and 1.4.0-1.4.2. 394.Pp 395Software WEP is currently only supported in HostAP and BSS modes. 396Furthermore, Software WEP is currently incapable of decrypting 397fragmented frames. 398Lucent-based cards using firmware 8.10 and above fragment encrypted 399frames sent at 11Mbps. 400To work around this, Lucent clients with this firmware revision 401connecting to a HostAP server should use a 2Mbps connection or 402upgrade their firmware to version 8.72. 403.Pp 404HostAP mode doesn't support WDS or power saving. 405Clients attempting to use power saving mode may experience 406significant packet loss 407(disabling power saving on the client will fix this). 408.Pp 409Support for USB devices is buggy. 410HostAP mode and AP scanning are not currently supported with USB devices. 411