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