Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


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

     wl	-- T1 speed ISA/radio lan card

     device wl0	at isa?	port 0x300 irq 5

     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 (indoors, more outdoors) can be covered in circumference.  This card
     can talk to the companion (wlp0) pccard.  Speeds vary from	1 megabit to
     theoretically 2 megabits (roughly T1 in speed).

     The card has three	fundamental hardware units, a so-called	PSA or pro-
     grammable storage area, a radio modem, and	a ethernet lan controller.
     The latter	component is the ancient (and not very honorable) Intel	82586
     ethernet chip.  Fundamentally it appears to the operating system as an
     ethernet system, and speaks IEEE MAC addresses.  The radio	modem simply
     translates	ethernet 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, broad-
     cast, 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.

     The card can either be initialized	with the vendor	supplied DOS setup
     software.	Typically minimally an IRQ, port, and Network ID must be sup-
     plied.  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

     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

     machdep.wl_xmit_delay <useconds>  This variable will cause	the driver to
     insert a delay on transmit.  250 is the default.  The delay should	proba-
     bly 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	use-

     machdep.wl_gather_snr <milliseconds>  This	switch is not currently	use-

     There is also a signal strength cache in the driver.  It may be interro-
     gated with	wlconfig(8).  Incoming packets are checked for certain hard-
     ware 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 signal	strenth	values to see how close/far peer nodes are.  The sig-
     nal 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 bar-
     ring IPv4 packets.

     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 configuration code.

     sysctl(8),	wlconfig(8)

     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 con-
     troller 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.

     Too numerous to mention.  See above.

BSD				 July 7, 1997				   BSD


Want to link to this manual page? Use this URL:

home | help