home | help
WL(4)			  i386 Kernel Interfaces Manual 		   WL(4)

NAME
     wl -- T1 speed ISA/radio lan card

SYNOPSIS
     device wl0 at isa? port 0x300 irq 5

DESCRIPTION
     The wl driver controls a radio lan card system made originally by NCR, then
     ATT, now Lucent.  The system is spread-spectrum radio at around 915 mhz (or
     2.4 ghz).	With the supplied omni-directional antennae, about 400 feet (in-
     doors,  more outdoors) can be covered in circumference.  This card can talk
     to the companion (wlp0) pccard.  Speeds vary from 1  megabit  to  theoreti-
     cally 2 megabits (roughly T1 in speed).

     The  card has three fundamental hardware units, a so-called PSA or program-
     mable storage area, a radio modem, and a ethernet lan controller.	The lat-
     ter component is the ancient (and not very honorable) Intel 82586	ethernet
     chip.  Fundamentally it appears to the operating system as an ethernet sys-
     tem, and speaks IEEE MAC addresses.  The radio modem simply translates eth-
     ernet  packets to/from radio packets, that are either at 2.4 Ghz or 915 mhz
     depending on the radio modem.  It supports a  collision  avoidance  scheme.
     The  lan  controller supports promiscuous mode, broadcast, and multicasting
     (although there is a glitch in the latter).  "It thinks it is ethernet".

     How it is used depends on the kind of antennae deployed with it.  Point  to
     point  applications  are possible as are ethernet-like lan use.  The vendor
     ships an omni-directional antennae that works in the vicinity of  400  feet
     (indoors).  Point to point antennae can be purchased that will go miles.

SETUP
     The card can either be initialized with the vendor supplied DOS setup soft-
     ware.   Typically	minimally an IRQ, port, and Network ID must be supplied.
     Michael Smith's wlconfig(8) utility can now be used to do	this  work  from
     the  UNIX	side.  The card is "not" plug and play.  The network id controls
     whether one set of cards can hear another.  If different, cards  will  read
     physical packets, but they will be discarded by the radio modem.

CONTROL
     In  addition  to the config utility, there are several sysctl switches that
     can be used to modify runtime parameters.	The sysctl(8) variables  are  as
     follows:

     machdep.wl_xmit_delay  <useconds>	  This variable will cause the driver to
     insert a delay on transmit.  250 is the default.  The delay should probably
     be a bit longer on faster cpus and less on slower cpus.  It exists  because
     the  82586  was  not designed to work with pentium-speed cpu systems and if
     overdriven will have copious xmit side errors.

     machdep.wl_ignore_nwid <0 | 1>  This switch defaults to 0; i.e.,  the  nwid
     is not ignored.  It can be set to 1 to cause the nwid to not be used.  This
     may  be  useful when the device is in promiscuous mode as one can watch for
     all packets and ignore nwid differences.

     machdep.wl_xmit_watch <milliseconds>  This switch is not currently useful.

     machdep.wl_gather_snr <milliseconds>  This switch is not currently useful.

     There is also a signal strength cache in the driver.  It  may  be	interro-
     gated  with wlconfig(8).  Incoming packets are checked for certain hardware
     radio-modem values including signal strength, silence, and  quality,  which
     range fro 0..63, 0..63, and 0..15 respectively.  Thus one can read out sig-
     nal  strenth  values  to  see  how  close/far  peer  nodes are.  The signal
     strength cache is indexed by sender MAC address.	There  are  two  sysctls
     that change how it filters packets.  Both are on by default.

     machdep.wl_wlcache_mcastonly  <0  |  1>   By default this switch is on.  It
     forces the cache to filter out unicast packets.  Only broadcast  or  multi-
     cast packets are accepted.

     machdep.wl_wlcache_iponly <0 | 1>	By default this switch is on.  It forces
     the  driver  to  discard non-IP packets and also stores the IP src address.
     ARP packets are ignored, as are any other	network  protocol  barring  IPv4
     packets.

CAVEATS
     The  82586  has  numerous	defects.  It may experience transmit-side errors
     when modern faster cpus send packets at it faster than it can handle.   The
     driver  (and probably the chip) does not support an all multicast mode.  As
     a result, it can be used with applications like mrouted(8), but it must  go
     into promiscuous mode for that to work.  The driver is slow to change modes
     from "normal" to promiscuous mode, presumably due to delays in the configu-
     ration code.

SEE ALSO
     sysctl(8), wlconfig(8)

     http://www.wavelan.com

HISTORY
     The  wl  driver was written by Anders Klemets (thousands of years ago?) and
     appears to be based on an even older Intel 82586 driver.	The  82586  con-
     troller  was one of the first (if not the first?) integrated lan controller
     on the block.  That does not mean it was the best	either.   Anders  ported
     and  or  created a driver for the ISA wavelan and PCCARD wavelan system too
     (wlp).  Robert T. Morris, Jr. ported the Mach drivers to BSDI.  Jim Binkley
     ported them to FreeBSD 2.1.  Michael Smith ported the  wl	driver	only  to
     2.2.2.   Jim  and Michael have been maintaining them.  The current state of
     the driver is NOT ANYONE'S FAULT.	Thanks	to  Bernie  Doehner  and  Robert
     Buaas for contributions.

AUTHORS
     Too numerous to mention.  See above.

FreeBSD 4.5			  July 7, 1997				   WL(4)

home | help