	The Wavelan drivers saga
	------------------------

	By Jean Tourrilhes <jt@hpl.hp.com>

	The Wavelan is a Radio network adapter designed by
Lucent. Under this generic name is hidden quite a variety of hardware,
and many Linux driver to support it.
	The get the full story on Wireless LANs, please consult :
		http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/

"wavelan" driver (old ISA Wavelan)
----------------
	o Config :	Network device -> Wireless LAN -> AT&T WaveLAN
	o Location :	.../drivers/net/wireless/wavelan*
	o in-line doc :	.../drivers/net/wireless/wavelan.p.h
	o on-line doc :
	    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wavelan.html

	This is the driver for the ISA version of the first generation
of the Wavelan, now discontinued. The device is 2 Mb/s, composed of a
Intel 82586 controller and a Lucent Modem, and is NOT 802.11 compliant.
	The driver has been tested with the following hardware :
	o Wavelan ISA 915 MHz (full length ISA card) 
	o Wavelan ISA 915 MHz 2.0 (half length ISA card) 
	o Wavelan ISA 2.4 GHz (full length ISA card, fixed frequency) 
	o Wavelan ISA 2.4 GHz 2.0 (half length ISA card, frequency selectable) 
	o Above cards with the optional DES encryption feature 

"wavelan_cs" driver (old Pcmcia Wavelan)
-------------------
	o Config :	Network device -> PCMCIA network ->
				Pcmcia Wireless LAN -> AT&T/Lucent WaveLAN
	o Location :	.../drivers/net/pcmcia/wavelan*
	o in-line doc :	.../drivers/net/pcmcia/wavelan_cs.h
	o on-line doc :
	    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wavelan.html

	This is the driver for the PCMCIA version of the first
generation of the Wavelan, now discontinued. The device is 2 Mb/s,
composed of a Intel 82593 controller (totally different from the 82586)
and a Lucent Modem, and NOT 802.11 compatible.
	The driver has been tested with the following hardware :
	o Wavelan Pcmcia 915 MHz 2.0 (Pcmcia card + separate
					modem/antenna block) 
	o Wavelan Pcmcia 2.4 GHz 2.0 (Pcmcia card + separate
					modem/antenna block) 

"wvlan_cs" driver (Wavelan IEEE, GPL)
-----------------
	o Config :	Not yet in kernel
	o Location :	Pcmcia package 3.1.10+
	o on-line doc :	http://www.fasta.fh-dortmund.de/users/andy/wvlan/

	This is the driver for the current generation of Wavelan IEEE,
which is 802.11 compatible. Depending on version, it is 2 Mb/s or 11
Mb/s, with or without encryption, all implemented in Lucent specific
DSP (the Hermes).
	This is a GPL full source PCMCIA driver (ISA is just a Pcmcia
card with ISA-Pcmcia bridge).

"wavelan2_cs" driver (Wavelan IEEE, binary)
--------------------
	o Config :	Not yet in kernel
	o Location :	ftp://sourceforge.org/pcmcia/contrib/

	This driver support exactly the same hardware as the previous
driver, the main difference is that it is based on a binary library
and supported by Lucent.

	I hope it clears the confusion ;-)

	Jean
