WI(4)                     OpenBSD Programmer's Manual                    WI(4)

NAME
     wi - WaveLAN/IEEE, PRISM 2-3 and Spectrum24 802.11DS wireless network
     driver

SYNOPSIS
     # all architectures
     wi* at pci? dev ? function ?
     wi* at pcmcia? function ?
     wi* at uhub? port ?

     # macppc extra attachment
     wi* at macobio?

DESCRIPTION
     The wi driver provides support for wireless network adapters based around
     the Lucent Hermes, Intersil PRISM-2, Intersil PRISM-2.5, Intersil PRISM-3
     and Symbol Spectrum24 chipsets.  All five chipsets provide a similar in-
     terface to the driver.

     All host/device interaction is via programmed I/O.  Supported features
     include 802.11 and 802.3 frames, power management, BSS, IBSS, WDS and ad-
     hoc operation modes.  Cards based on the Intersil chips also support a
     host-based access point mode which allows a card to act as a normal ac-
     cess point (with some assistance from the wi driver).  The Lucent Hermes
     and Symbol Spectrum24 chipsets do not contain this functionality.

     The wi driver encapsulates all IP and ARP traffic as 802.11 frames, how-
     ever it can receive either 802.11 or 802.3 frames.  Transmit speed is se-
     lectable between 1Mbps fixed, 2Mbps fixed, 2Mbps with auto fallback,
     5.5Mbps, 8Mbps, or 11Mbps depending on your hardware.  The Lucent Wave-
     LAN/IEEE Silver and Gold cards as well as the Intersil and Symbol cards
     have support for WEP encryption.  The WaveLAN Gold as well as newer In-
     tersil and Symbol cards support 104bit keys, the others only accept 40bit
     keys.  The Lucent WaveLAN/IEEE Bronze cards do not support WEP at all.
     To enable encryption, use the wicontrol(8) utility to set your keys, or
     use ifconfig(8) as shown below.

     By default, the wi driver configures the card for BSS operation (aka in-
     frastructure mode).  This mode requires the use of an access point (base
     station).

     The wi driver also supports an ad-hoc (point-to-point) mode where the
     nwid is ignored and stations can communicate amongst themselves without
     the aid of an access point.  Note that there are two possible ad-hoc
     modes.  One mode, referred to as ``ad-hoc demo mode'', predates the IEEE
     802.11 specification and so may not interoperate with cards from other
     vendors.  The standardized ad-hoc mode, also known as IBSS mode, is not
     supported by cards with very old firmware revisions.

     Cards based on the Intersil chipsets also have a host-based access point
     mode which allows the card to act as an access point (base station).

     For more information on configuring this device, see ifconfig(8).

     Cards supported by the wi driver come in a variety of packages, though
     the most common are of the PCMCIA type.  In many cases, the PCI version
     of a wireless card is simply a PCMCIA card bundled with a PCI adapter.
     The PCI adapters come in two flavors: true PCMCIA bridges and dumb PCMCIA
     bridges.  A true PCMCIA bridge (such as those sold by Lucent) will attach
     as a real PCMCIA controller.  The wireless card will then attach to the
     PCMCIA bus.  Wireless cards in PCMCIA slots may be inserted and ejected
     on the fly.

     A dumb bridge, on the other hand, does not show up as a true PCMCIA bus.
     The wireless card will simply appear to the host as a normal PCI device
     and will not require any PCMCIA support.  Cards in this type of adapter
     should only be removed when the machine is powered down.

     The following cards are among those supported by the wi driver:

           Card                                 Chip         Bus
           ----------------------------------------------------------
           3Com AirConnect 3CRWE737A            Spectrum24   PCMCIA
           3Com AirConnect 3CRWE777A            Prism-2      PCI
           Acer Warplink USB-400                Prism-3      USB
           Actiontec HWC01170                   Prism-2.5    PCMCIA
           Actiontec HWU01170                   Prism-3      USB
           Addtron AWP-100                      Prism-2      PCMCIA
           Agere Orinoco                        Hermes       PCMCIA
           Apple Airport                        Hermes       macobio
           Buffalo AirStation                   Prism-2      PCMCIA
           Buffalo AirStation                   Prism-2      CF
           Cabletron RoamAbout                  Hermes       PCMCIA
           Compaq Agency NC5004                 Prism-2      PCMCIA
           Contec FLEXLAN/FX-DS110-PCC          Prism-2      PCMCIA
           Corega PCC-11                        Prism-2      PCMCIA
           Corega PCCA-11                       Prism-2      PCMCIA
           Corega PCCB-11                       Prism-2      PCMCIA
           Corega CGWLPCIA11                    Prism-2      PCI
           Corega WLUSB-11                      Prism-3      USB
           Dlink DWL520                         Prism-2.5    PCI
           Dlink DWL650                         Prism-2.5    PCMCIA
           ELSA XI300                           Prism-2      PCMCIA
           ELSA XI325                           Prism-2.5    PCMCIA
           ELSA XI325H                          Prism-2.5    PCMCIA
           ELSA XI800                           Prism-2      CF
           EMTAC A2424i                         Prism-2      PCMCIA
           Ericsson Wireless LAN CARD C11       Spectrum24   PCMCIA
           Gemtek WL-311                        Prism-2.5    PCMCIA
           Hawking Technology WE110P            Prism-2.5    PCMCIA
           I-O DATA WN-B11/PCM                  Prism-2      PCMCIA
           I-O DATA WN-B11/USB                  Prism-3      USB
           Intel PRO/Wireless 2011              Spectrum24   PCMCIA
           Intel PRO/Wireless 2011B             Prism-3      USB
           Intersil Prism II                    Prism-2      PCMCIA
           Intersil Mini-PCI                    Prism-2.5    PCI
           Intersil Prism 2X                    Prism-3      USB
           JVC MP-XP7250                        Prism-3      USB
           Linksys Instant Wireless WPC11       Prism-2      PCMCIA
           Linksys Instant Wireless WPC11 2.5   Prism-2.5    PCMCIA
           Linksys Instant Wireless WPC11 3.0   Prism-3      PCMCIA
           Linksys WUSB11 v3.0                  Prism-3      USB
           Linksys WUSB12                       Prism-3      USB
           Lucent WaveLAN                       Hermes       PCMCIA
           Melco WLI-USB-KS11G                  Prism-3      USB
           MicroSoft MN510                      Prism-3      USB
           NANOSPEED ROOT-RZ2000                Prism-2      PCMCIA
           NDC/Sohoware NCP130                  Prism-2      PCI
           NEC CMZ-RT-WP                        Prism-2      PCMCIA
           Netgear MA111                        Prism-3      USB
           Netgear MA311                        Prism-2.5    PCI
           Netgear MA401                        Prism-2      PCMCIA
           Netgear MA401RA                      Prism-2.5    PCMCIA
           Nokia C020 Wireless LAN              Prism-I      PCMCIA
           Nokia C110/C111 Wireless LAN         Prism-2      PCMCIA
           Nortel E-mobility 211818-A           Spectrum24   PCI
           NTT-ME 11Mbps Wireless LAN           Prism-2      PCMCIA
           Proxim Harmony                       Prism-2      PCMCIA
           Proxim RangeLAN-DS                   Prism-2      PCMCIA

           Samsung MagicLAN SWL-2000N           Prism-2      PCMCIA
           Siemens SpeedStream SS1021           Prism-2      PCMCIA
           Siemens SpeedStream SS1022           Prism-3      USB
           SMC 2632 EZ Connect                  Prism-2      PCMCIA
           Symbol Spectrum24                    Spectrum24   PCMCIA
           Symbol LA4123                        Spectrum24   PCI
           Syntax USB-400                       Prism-3      USB
           TDK LAK-CD011WL                      Prism-2      PCMCIA
           US Robotics 2410                     Prism-2      PCMCIA
           US Robotics 2445                     Prism-2      PCMCIA

     Note that some of the PRISM-II adapters only work at 3.3V, hence
     cardbus(4) support is required for those cards to set VCC correctly, even
     though they are really 16bit cards.

     USB support is still experimental and the device may stop functioning
     during normal use.  Resetting the device by configuring the interface
     down and back up again will normally reactivate it.

     Several vendors sell PCI adapters built around the PLX Technology 9050 or
     9052 chip.  The following such adapters are supported or expected to
     work:

           3Com AirConnect 3CRWE777A (3.3V)
           Belkin F5D6000 (a rebadged WL11000P)
           Eumitcom WL11000P
           Global Sun Technology GL24110P (untested)
           Global Sun Technology GL24110P02
           LinkSys WDT11 (a rebadged GL24110P02)
           Netgear MA301
           US Robotics 2415 (rebadged WL11000P)
           Siemens/Efficient Networks SpeedStream 1023

EXAMPLES
     The following examples utilize ifconfig(8) for simplicity, however,
     wicontrol(8) can also be used to set wireless parameters.

     Join an existing BSS network (ie: connect to an access point):
           # ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00

     Join a specific BSS network with network name ``my_net'':
           # ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net

     Join a specific BSS network with WEP encryption:
           # ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net \
                   nwkey 0x8736639624

     Join an ad-hoc network with network name ``my_net'':
           # ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net \
                   mediaopt adhoc

     Create an IBBS network with network name ``my_net'':
           # ifconfig wi0 inet 192.168.0.20 netmask 0xffffff00 nwid my_net \
                   mediaopt ibss-master

     Join an IBBS network with network name ``my_net'':
           # ifconfig wi0 inet 192.168.0.22 netmask 0xffffff00 nwid my_net \
                   mediaopt ibss

     Create a host-based access point (Prism only):
           # ifconfig wi0 inet 192.168.0.10 netmask 0xffffff00 nwid my_ap \
                   mediaopt hostap

     Create a host-based access point with WEP enabled (Prism only):
           # ifconfig wi0 inet 192.168.0.10 netmask 0xffffff00 nwid my_ap \
                   nwkey 0x1234567890 mediaopt hostap

     Create a host-based wireless bridge to fxp0 (Prism only):
           # ifconfig wi0 inet up nwid my_ap mediaopt hostap
           # brconfig bridge0 add fxp0 add wi0 up

     The following examples utilize wicontrol(8) to set options not supported
     by ifconfig(8).

     Enable software-based WEP (Prism only, see CAVEATS below):
           # wicontrol wi0 -x 1

     Hide the SSID of a HostAP server (Prism only, requires firmware >= 1.6.3)
           # wicontrol wi0 -E 3

     Note that when setting options via wicontrol(8) in a hostname.if(5) file
     (e.g. /etc/hostname.wi0), the wicontrol(8) commands should be specified
     first.

     The following hostname.if(5) example will set the channel to 11, enable
     software WEP, and turn on enhanced security (SSID hiding) before config-
     uring the interface as a host-based access point:

           !/sbin/wicontrol \$if -f 11 -x 1 -E 3
           inet 192.168.1.1 255.255.255.0 NONE nwid my_net \
                   nwkey 0x8736639624 mediaopt hostap

     Note that the line beginning with "inet" has been split for readability.

DIAGNOSTICS
     wi%d: init failed  The WaveLAN card failed to come ready after an ini-
     tialization command was issued.

     wi%d: failed to allocate %d bytes on NIC  The driver was unable to allo-
     cate memory for transmit frames in the NIC's on-board RAM.

     wi%d: device timeout  The WaveLAN failed to generate an interrupt to ac-
     knowledge a transmit command.

SEE ALSO
     an(4), arp(4), ifmedia(4), intro(4), macobio(4), netintro(4), pci(4),
     pcmcia(4), usb(4), hostname.if(5), ifconfig(8), wicontrol(8)

     HCF Light programming specification, http://www.wavelan.com.

HISTORY
     The wi device driver first appeared in FreeBSD 3.0.  OpenBSD support was
     added in OpenBSD 2.6.

AUTHORS
     The wi driver was written by Bill Paul <wpaul@ctr.columbia.edu> and port-
     ed to OpenBSD by
     Niklas Hallqvist <niklas@appli.se>.

CAVEATS
     The original Lucent WaveLAN cards usually default to channel 3; newer
     cards use channel 10 by default.  Non-Lucent cards vary, for instance the
     Addtron cards use channel 11 by default.  See wicontrol(8) for informa-
     tion on how to change the channel.

     Not all 3.3V wi PCMCIA cards work.

     IBSS creation does not currently work with Symbol cards.

     The host-based access point mode on the Intersil PRISM cards has bugs
     when used with firmware versions prior to 0.8.3 and is completely unus-
     able with firmware versions prior to 0.8.0 and 1.4.0-1.4.2.

     Software WEP is currently only supported in HostAP and BSS modes.  Fur-
     thermore, Software WEP is currently incapable of decrypting fragmented
     frames.  Lucent-based cards using firmware 8.10 and above fragment en-
     crypted frames send at 11Mbps.  To work around this, Lucent clients with
     this firmware revision connecting to a HostAP server should use a 2Mbps
     connection or upgrade their firmware to version 8.72.

     HostAP mode doesn't support WDS or power saving.  Clients attempting to
     use power saving mode may experience significant packet loss (disabling
     power saving on the client will fix this).

     Support for USB devices is buggy.  HostAP mode and AP scanning are not
     currently supported with USB devices.

OpenBSD 3.5                     March 23, 2004                               5
