Add device driver support for the Lucent WaveLAN/IEEE 802.11 wireless

network adapters. These are all PCMCIA devices (the ISA version is a
PCMCIA to ISA bridge with a PCMCIA card plugged into it). Also add a
wicontrol utility to read and write some of the card's parameters.

Note: I do not have access to a WavePOINT access point, so I have only
been able to test this driver in ad-hoc (point to point) mode. The
wicontrol utility allows programming the desired service set name (SSID)
and enabling BSS mode, but I can't tell for sure if it works (I know the
card switches modes, but I can't verify that it joins a service set
correctly).

This driver was written using information gleaned from the Lucent HCF Light
library, which is an API library designed to simplify driver development
for devices based on the Lucent Hermes chip. Unfortunately, the HCF Light
is missing certain features (like 802.11 frame encapsulation!) which are
available only in the proprietary complete HCF code, which is not available
to the public. This driver uses none of the HCF Light code: it's very ugly
and contaminated by the GPL. IP and ARP packets are encapsulated as 802.11
frames, everything else is encapsulated as 802.3.

(It would be easier to just get the Hermes programming manual, but that's
not publically available either. For those who are wondering, the Linux
WaveLAN/IEEE driver uses the proprietary HCF code, which is provided in
object code form only. So much for supporting open source sofware.)

Multicast filter support is implemented, however it appears that the
filter doesn't work: programming in one IP mutlicast group enables them
all.
This commit is contained in:
Bill Paul 1999-05-05 07:11:38 +00:00
parent 42c4c73e52
commit 113a394c06
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=46492
2 changed files with 2630 additions and 0 deletions

1315
sys/dev/wi/if_wi.c Normal file

File diff suppressed because it is too large Load Diff

1315
sys/i386/isa/if_wi.c Normal file

File diff suppressed because it is too large Load Diff