Date: Fri, 8 Jan 2021 03:44:16 GMT From: Warner Losh <imp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: a21def4d568f - main - pccard: Remove wi(4) driver Message-ID: <202101080344.1083iGii006695@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=a21def4d568fd2f6723252c16e116b5e7d8125eb commit a21def4d568fd2f6723252c16e116b5e7d8125eb Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2021-01-07 22:45:23 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2021-01-08 03:41:06 +0000 pccard: Remove wi(4) driver Remove wi(4). pccard is going away, and wi only supports PC Card devices, though it has a minor amount of glue to also support PCI cards. However, removing the one without removing the other is hard, so the whole driver is being removed. Relnotes: Yes --- ObsoleteFiles.inc | 6 +- include/Makefile | 2 +- share/man/man4/Makefile | 2 - share/man/man4/wi.4 | 380 ------ sys/amd64/conf/GENERIC | 1 - sys/conf/NOTES | 4 - sys/conf/files | 3 - sys/dev/wi/if_wavelan_ieee.h | 747 ------------ sys/dev/wi/if_wi.c | 2088 -------------------------------- sys/dev/wi/if_wi_macio.c | 148 --- sys/dev/wi/if_wi_pccard.c | 205 ---- sys/dev/wi/if_wi_pci.c | 267 ---- sys/dev/wi/if_wireg.h | 726 ----------- sys/dev/wi/if_wivar.h | 189 --- sys/i386/conf/GENERIC | 1 - sys/modules/Makefile | 3 - sys/modules/wi/Makefile | 15 - tools/kerneldoc/subsys/Doxyfile-dev_wi | 21 - 18 files changed, 6 insertions(+), 4802 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 85d6e3eecd43..cf8b2ed118ab 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -36,10 +36,14 @@ # xargs -n1 | sort | uniq -d; # done -# 20210108: retire cmx, ng_bt3c drivers +# 20210108: retire cmx, ng_bt3c, wi drivers +OLD_FILES+=usr/include/dev/wi/if_wireg.h +OLD_FILES+=usr/include/dev/wi/if_wavelan_ieee.h +OLD_FILES+=usr/include/dev/wi/if_wivar.h OLD_FILES+=usr/sbin/bt3cfw OLD_FILES+=usr/share/man/man4/cmw.4.gz OLD_FILES+=usr/share/man/man4/ng_bt3c.4.gz +OLD_FILES+=usr/share/man/man4/wi.4.gz OLD_FILES+=usr/share/man/man8/bt3cfw.8.gz # 20210107: retire a.out support diff --git a/include/Makefile b/include/Makefile index 59f62f1d4897..4533dfea1b67 100644 --- a/include/Makefile +++ b/include/Makefile @@ -46,7 +46,7 @@ LSUBDIRS= cam/ata cam/mmc cam/nvme cam/scsi \ dev/hwpmc dev/hyperv \ dev/ic dev/iicbus dev/io dev/mfi dev/mmc dev/nvme \ dev/ofw dev/pbio dev/pci ${_dev_powermac_nvram} dev/ppbus dev/pwm \ - dev/smbus dev/speaker dev/tcp_log dev/veriexec dev/vkbd dev/wi \ + dev/smbus dev/speaker dev/tcp_log dev/veriexec dev/vkbd \ fs/devfs fs/fdescfs fs/msdosfs fs/nfs fs/nullfs \ fs/procfs fs/smbfs fs/udf fs/unionfs \ geom/cache geom/concat geom/eli geom/gate geom/journal geom/label \ diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 95f11ed3ca1b..c72caf0199c9 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -580,7 +580,6 @@ MAN= aac.4 \ ${_vtnet.4} \ watchdog.4 \ ${_wbwd.4} \ - wi.4 \ witness.4 \ wlan.4 \ wlan_acl.4 \ @@ -763,7 +762,6 @@ MLINKS+=vr.4 if_vr.4 MLINKS+=vte.4 if_vte.4 MLINKS+=${_vtnet.4} ${_if_vtnet.4} MLINKS+=watchdog.4 SW_WATCHDOG.4 -MLINKS+=wi.4 if_wi.4 MLINKS+=${_wpi.4} ${_if_wpi.4} MLINKS+=xl.4 if_xl.4 diff --git a/share/man/man4/wi.4 b/share/man/man4/wi.4 deleted file mode 100644 index c3a6a2b713c2..000000000000 --- a/share/man/man4/wi.4 +++ /dev/null @@ -1,380 +0,0 @@ -.\" Copyright (c) 1997, 1998, 1999 -.\" Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by Bill Paul. -.\" 4. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" $OpenBSD: wi.4tbl,v 1.14 2002/04/29 19:53:50 jsyn Exp $ -.\" -.Dd July 23, 2011 -.Dt WI 4 -.Os -.Sh NAME -.Nm wi -.Nd "Lucent Hermes, and Intersil PRISM IEEE 802.11 driver" -.Sh SYNOPSIS -To compile this driver into the kernel, -place the following lines in your -kernel configuration file: -.Bd -ragged -offset indent -.Cd "device wi" -.Cd "device wlan" -.Ed -.Pp -Alternatively, to load the driver as a -module at boot time, place the following line in -.Xr loader.conf 5 : -.Bd -literal -offset indent -if_wi_load="YES" -.Ed -.Sh DEPRECATION NOTICE -This driver is scheduled for removal prior to the release of -.Fx 13.0 -.Sh DESCRIPTION -The -.Nm -driver provides support for 802.11b wireless network adapters based around -the Lucent Hermes, Intersil PRISM-II, Intersil PRISM-2.5, and Intersil -Prism-3 chipsets. -All chipsets provide a similar interface to the driver. -Only the Intersil chipsets support access point operation or WPA. -Very old versions of firmware are not supported at all. -Older versions of the firmware that are supported may severely limit -the ability to use these cards in newer networks. -Only relatively recent versions of Intersil firmware supports WPA. -See CAVEATS for details. -All host/device interaction is via programmed I/O, even on those cards -that support a DMA interface. -.Pp -For more information on configuring this device, see -.Xr ifconfig 8 . -.Pp -.Nm -supports -.Cm station , -.Cm adhoc , -.Cm adhoc-demo , -.Cm hostap , -and -.Cm monitor -mode operation. -Only one -virtual interface may be configured at a time. -For more information on configuring this device, see -.Xr ifconfig 8 . -.Pp -Cards supported by the -.Nm -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. -.Pp -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. -.Pp -The following cards are among those supported by the -.Nm -driver: -.Pp -.Bl -column -compact "Linksys Instant Wireless WPC11 2.5" "Spectrum24" "PCI or PCMCIA" -.Em "Card Chip Bus" -3Com AirConnect 3CRWE777A Prism-II PCI -Accton airDirect WN3301 PCMCIA -ACTIONTEC HWC01170 Prism-2.5 PCMCIA -Adaptech ANW-8030 Prism-3 PCMCIA -Addtron AWP-100 Prism-II PCMCIA -Adtec Adlink/340C Prism-II PCMCIA -Airvast WN 100 Prism-3 PCMCIA -Airway 802.11 Adapter PCMCIA -Agere Orinoco Hermes PCMCIA -Allied Telesis WR211PCM Prism-II PCMCIA -ArTem OnAir Prism? PCMCIA -Asus WL100 Prism-2.5 PCMCIA -Avaya Wireless Prism-II PCMCIA -Bay eMobility 11B Prism-2.5? PCMCIA -Blue Concentric Circle WL-379F Prism-II CF -BreezeNet Wireless Prism-II PCMCIA -Buffalo WLI-PCM-S11 Prism-II PCMCIA -Buffalo WLI-PCM-L11G Hermes PCMCIA -Buffalo WLI-CF-S11G Prism-II CF -Buffalo WLI2-CF-S11G Prism 2.5 CF -Cabletron RoamAbout Hermes PCMCIA -Compaq Agency NC5004 Prism-II PCMCIA -Compaq WL100 Prism-II PCMCIA -Compaq WL110 Hermes PCMCIA -Compaq WL200 Prism-II PCMCIA -Contec FLEXLAN/FX-DS110-PCC Prism-II PCMCIA -Corega PCC-11 Prism-II PCMCIA -Corega PCCA-11 Prism-II PCMCIA -Corega PCCB-11 Prism-II PCMCIA -Corega CGWLPCIA11 Prism-II PCI -Dell TrueMobile 1150 Hermes PCMCIA -Dlink Air 660 Prism-II PCMCIA -Dlink DWL520 Prism-2.5 PCI -Dlink DWL650 Prism-2.5 PCMCIA -ELECOM Air@Hawk/LD-WL11/PCC PCMCIA -ELSA MC-11 PCMCIA -ELSA XI300 Prism-II PCMCIA -ELSA XI325 Prism-2.5 PCMCIA -ELSA APDL325 Prism-2.5 PCMCIA -ELSA XI330 Prism-3 PCMCIA -ELSA XI800 Prism-II CF -EMTAC A2424i Prism-II PCMCIA -Farallon Skyline Prism-II PCMCIA -Gemtek WL-311 Prism-2.5 PCMCIA -Hawking Technology WE110P Prism-2.5 PCMCIA -Home Wireless Networks Prism-II PCMCIA -IBM High Rate Wireless Hermes PCMCIA -ICOM SL-1100 Prism-II PCMCIA -I-O DATA WN-B11/PCM Prism-II PCMCIA -Intersil Prism II Prism-II PCMCIA -Intersil Mini-PCI Prism-2.5 PCI -Intersil ISL37100P Prism-3 PCMCIA -Intersil ISL37110P Prism-3 PCMCIA -Intersil ISL37300P Prism-3 PCMCIA -Laneed Wireless PCMCIA -Linksys Instant Wireless WPC11 Prism-II PCMCIA -Linksys Instant Wireless WPC11 2.5 Prism-2.5 PCMCIA -Linksys Instant Wireless WPC11 3.0 Prism-3 PCMCIA -Linksys WCF11 Prism-3 PCMCIA -Linksys WCF12 Prism-3 CF -Lucent WaveLAN Hermes PCMCIA -Melco Airconnect Prism-II PCMCIA -Microsoft MN-520 WLAN Prism-II PCMCIA -NANOSPEED ROOT-RZ2000 Prism-II PCMCIA -NCR WaveLAN/IEEE 802.11 PCMCIA -NDC/Sohoware NCP130 Prism-II PCI -NEC CMZ-RT-WP Prism-II PCMCIA -NEC PK-WL001 Lucent PCMCIA -NEC PC-WL/11C Prism-II PCMCIA -Netgear MA311 Prism-2.5 PCI -Netgear MA401 Prism-II/2.5 PCMCIA -Netgear MA401RA Prism-II PCMCIA -Netgear MA701 Prism-II CF -NOKIA C020 WLAN Prism-II PCMCIA -NOKIA C110 WLAN Prism-2.5 PCMCIA -NTT-ME 11Mbps Wireless LAN Prism-II PCMCIA -Planex GeoWave/GW-NS110 Prism-II PCMCIA -Planex GW-NS11H Prism-II PCMCIA -Proxim Harmony Prism-II PCMCIA -Proxim RangeLAN-DS Prism-II PCMCIA -Samsung MagicLAN SWL-2000N Prism-II PCMCIA -SENAO SL-2511CD Prism-3 PCMCIA -Siemens SpeedStream SS1021 Prism-II PCMCIA -Siemens SpeedStream SS1021 Prism-3 PCMCIA -SMC 2532W-B Prism-II PCMCIA -SMC 2602 EZ Connect (3.3V) Prism-II PCI or PCMCIA -SMC 2632 EZ Connect Prism-II PCMCIA -Socket Low Power WLAN-CF Prism-II CF -Sony PCWA-C100 Lucent PCMCIA -Sony PEGA-WL110 Prism-2.5 PCMCIA -TDK LAK-CD011WL Prism-II PCMCIA -Toshiba Wireless LAN Card Prism-II PCMCIA -U.S.\& Robotics Wireless Card 2410 Prism-II PCMCIA -YIS YWL-11B Prism-II PCMCIA -.El -.Pp -Several vendors sell PCI adapters built around the PLX Technology 9050 -or 9052 chip. -The following such adapters are supported or expected to work: -.Pp -.Bl -item -compact -.It -3Com AirConnect 3CRWE777A (3.3V) -.It -Belkin F5D6000 (a rebadged WL11000P) -.It -Eumitcom WL11000P -.It -Global Sun Technology GL24110P (untested) -.It -Global Sun Technology GL24110P02 -.It -LinkSys WDT11 (a rebadged GL24110P02) -.It -Netgear MA301 -.It -US Robotics 2415 (rebadged WL11000P) -.It -Wisecom Wireless LAN PCI Adapter -.El -.Pp -The following adapters have the same model numbers as those listed -above, but might not work if the actual card is after the change away -from the Prism family: -.Pp -.Bl -item -compact -.It -DLink DWL520 -.El -.Sh EXAMPLES -Join an existing BSS network (ie: connect to an access point): -.Bd -literal -offset indent -ifconfig wlan create wlandev wi0 inet 192.168.0.20 \e - netmask 0xffffff00 -.Ed -.Pp -Join a specific BSS network with network name -.Dq Li my_net : -.Bd -literal -offset indent -ifconfig wlan create wlandev wi0 inet 192.168.0.20 \e - netmask 0xffffff00 ssid my_net -.Ed -.Pp -Join a specific BSS network with WEP encryption: -.Bd -literal -offset indent -ifconfig wlan create wlandev wi0 inet 192.168.0.20 \e - netmask 0xffffff00 ssid my_net \e - wepmode on wepkey 0x8736639624 weptxkey 1 -.Ed -.Pp -Join a Lucent legacy demo ad-hoc network with network name -.Dq Li my_net : -.Bd -literal -offset indent -ifconfig wlan create wlandev wi0 wlanmode ahdemo \e - inet 192.168.0.20 netmask 0xffffff00 ssid my_net -.Ed -.Pp -Join/create an IBSS network with network name -.Dq Li my_net : -.Bd -literal -offset indent -ifconfig wlan create wlandev wi0 wlanmode adhoc wi0 \e - inet 192.168.0.22 netmask 0xffffff00 ssid my_net -.Ed -.Pp -Create a host-based access point (Prism only): -.Bd -literal -offset indent -ifconfig wlan create wlandev wi0 wlanmode hostap \e - inet 192.168.0.10 netmask 0xffffff00 ssid my_ap -.Ed -.Pp -Create a host-based access point with WEP enabled (Prism only) -and plumb it into bridge to fxp0: -.Bd -literal -offset indent -ifconfig wlan0 create wlandev wi0 wlanmode hostap \e - inet 192.168.0.10 netmask 0xffffff00 ssid my_ap \e - wepmode on wepkey 0x1234567890 weptxkey 1 -ifconfig bridge0 create -ifconfig bridge0 addm wlan0 addm fxp0 up -.Ed -.Pp -This will give you the same functionality as an access point. -.Sh DIAGNOSTICS -.Bl -diag -.It "wi%d: init failed" -The WaveLAN card failed to become ready after an initialization command -was issued. -.It "wi%d: failed to allocate %d bytes on NIC" -The driver was unable to allocate memory for transmit frames in the -NIC's on-board RAM. -This can also be an indication of an incorrectly configured interrupt. -.It "wi%d: device timeout" -The WaveLAN card failed to generate an interrupt to acknowledge a transmit -command. -.El -.Sh SEE ALSO -.Xr intro 4 , -.Xr pccard 4 , -.Xr pccbb 4 , -.Xr pcic 4 , -.Xr wlan 4 , -.Xr wlan_ccmp 4 , -.Xr wlan_tkip 4 , -.Xr wlan_wep 4 , -.Xr wlan_xauth 4 , -.Xr hostapd 8 , -.Xr ifconfig 8 , -.Xr wpa_supplicant 8 -.Rs -.%T HCF Light programming specification -.%U http://web.archive.org/web/20040130141721/http://wavelan.com/ -.Re -.Sh HISTORY -The -.Nm -device driver first appeared in -.Fx 3.0 . -.Sh AUTHORS -The original -.Nm -driver was written by -.An Bill Paul Aq Mt wpaul@ctr.columbia.edu . -This man page comes from -.Ox . -.Sh CAVEATS -The driver will reject devices with old firmware to -avoid dealing with numerous defects. -Unfortunately the driver does not support downloading new firmware -to the card so if new firmware is needed users will have to boot -a different system to accomplish this. -.Pp -Intersil Prism cards must have firmware versions 0.8.0 or later and -version 1.7.0 or later are required to support functionality such as WPA. -Some users of Prism-II and 2.5 based cards report that station firmware -version 1.3.4 works better for them in hostap than 1.4.9. -Older versions of the Prism station firmware have a number of issues -with hostap mode. -The IBSS/adhoc mode appears to work well on station firmware 1.3.1 and -later. -The IBSS/adhoc mode appears to have problems for some people with -older versions of station firmware. -.Pp -Lucent cards prior to firmware version 6.0.6 do not implement IBSS -mode and are not supported. -.Pp -Prior versions of -.Nm -supported Symbol firmware. -That support has been removed due to persistent problems with this -firmware as well as getting proper documentation on this firmware. -.Pp -Hermes 2 and Hermes 3 chips are not supported by this driver. -.Pp -Here's the above requirements in the form of a table -.Pp -.Bl -column -compact "Prims II/2.5" "xxxxxxxx" "xxxxxxxx" "xxxxxxxx" "xxxxxxxx" -.Em "Firmware Minimum WPA Host AP Adhoc/IBSS" -Prism II/2.5 0.8.0 1.7.0 1.3.4 1.3.1 -Prism 3 0.8.0 1.7.0 1.4.9 1.3.1 -Hermes 6.0.6 none none 6.0.6 -Symbol none none none none -.El -.Sh BUGS -Not all the new messages are documented here, and many of them are -indications of transient errors that are not indications of serious -problems. diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index 94f184334648..1ccd06669951 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -311,7 +311,6 @@ device iwn # Intel 4965/1000/5000/6000 wireless NICs. device malo # Marvell Libertas wireless NICs. device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. -device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. device wpi # Intel 3945ABG wireless NICs. # Pseudo devices. diff --git a/sys/conf/NOTES b/sys/conf/NOTES index c3a9c097dedb..4a9e09184caa 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -1923,9 +1923,6 @@ device xmphy # XaQti XMAC II # including the D-Link DFE520TX and D-Link DFE530TX (see 'rl' for # DFE530TX+), the Hawking Technologies PN102TX, and the AOpen/Acer ALN-320. # vte: DM&P Vortex86 RDC R6040 Fast Ethernet -# wi: Lucent WaveLAN/IEEE 802.11 PCMCIA adapters. Note: this supports both -# the PCMCIA and ISA cards: the ISA card is really a PCMCIA to ISA -# bridge with a PCMCIA adapter plugged into it. # xl: Support for the 3Com 3c900, 3c905, 3c905B and 3c905C (Fast) # Etherlink XL cards and integrated controllers. This includes the # integrated 3c905B-TX chips in certain Dell Optiplex and Dell @@ -1936,7 +1933,6 @@ device xmphy # XaQti XMAC II # Order for ISA devices is important here device an -device wi # PCI Ethernet NICs that use the common MII bus controller code. device ae # Attansic/Atheros L2 FastEthernet diff --git a/sys/conf/files b/sys/conf/files index 370b67709ad6..860fae3c8273 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -3499,9 +3499,6 @@ dev/vt/vt_font.c optional vt dev/vt/vt_sysmouse.c optional vt dev/vte/if_vte.c optional vte pci dev/watchdog/watchdog.c standard -dev/wi/if_wi.c optional wi -dev/wi/if_wi_pccard.c optional wi pccard -dev/wi/if_wi_pci.c optional wi pci dev/wpi/if_wpi.c optional wpi pci wpifw.c optional wpifw \ compile-with "${AWK} -f $S/tools/fw_stub.awk wpi.fw:wpifw:153229 -mwpi -c${.TARGET}" \ diff --git a/sys/dev/wi/if_wavelan_ieee.h b/sys/dev/wi/if_wavelan_ieee.h deleted file mode 100644 index 27b7ed0f80bb..000000000000 --- a/sys/dev/wi/if_wavelan_ieee.h +++ /dev/null @@ -1,747 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-4-Clause - * - * Copyright (c) 1997, 1998, 1999 - * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Bill Paul. - * 4. Neither the name of the author nor the names of any co-contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _IF_WAVELAN_IEEE_H -#define _IF_WAVELAN_IEEE_H - -/* - * This header defines a simple command interface to the FreeBSD - * WaveLAN/IEEE driver (wi) driver, which is used to set certain - * device-specific parameters which can't be easily managed through - * ifconfig(8). No, sysctl(2) is not the answer. I said a _simple_ - * interface, didn't I. - */ - -#ifndef SIOCSWAVELAN -#define SIOCSWAVELAN SIOCSIFGENERIC -#endif - -#ifndef SIOCGWAVELAN -#define SIOCGWAVELAN SIOCGIFGENERIC -#endif - -/* - * Technically I don't think there's a limit to a record - * length. The largest record is the one that contains the CIS - * data, which is 240 words long, so 256 should be a safe - * value. - */ -#define WI_MAX_DATALEN 512 - -#if 0 -struct wi_req { - u_int16_t wi_len; - u_int16_t wi_type; - u_int16_t wi_val[WI_MAX_DATALEN]; -}; -#endif - -/* - * Private LTV records (interpreted only by the driver). This is - * a minor kludge to allow reading the interface statistics from - * the driver. - */ -#define WI_RID_IFACE_STATS 0x0100 -#define WI_RID_MGMT_XMIT 0x0200 -#define WI_RID_ZERO_CACHE 0x0300 -#define WI_RID_READ_CACHE 0x0400 -#define WI_RID_FWDOWNLOAD 0x0500 -#define WI_RID_MONITOR_MODE 0x0600 -#define WI_RID_MIF 0x0700 -#define WI_RID_SCAN_APS 0x0800 -#define WI_RID_READ_APS 0x0900 - -struct wi_80211_hdr { - u_int16_t frame_ctl; - u_int16_t dur_id; - u_int8_t addr1[6]; - u_int8_t addr2[6]; - u_int8_t addr3[6]; - u_int16_t seq_ctl; - u_int8_t addr4[6]; -}; - -#define WI_FCTL_VERS 0x0002 -#define WI_FCTL_FTYPE 0x000C -#define WI_FCTL_STYPE 0x00F0 -#define WI_FCTL_TODS 0x0100 -#define WI_FCTL_FROMDS 0x0200 -#define WI_FCTL_MOREFRAGS 0x0400 -#define WI_FCTL_RETRY 0x0800 -#define WI_FCTL_PM 0x1000 -#define WI_FCTL_MOREDATA 0x2000 -#define WI_FCTL_WEP 0x4000 -#define WI_FCTL_ORDER 0x8000 - -#define WI_FTYPE_MGMT 0x0000 -#define WI_FTYPE_CTL 0x0004 -#define WI_FTYPE_DATA 0x0008 - -#define WI_STYPE_MGMT_ASREQ 0x0000 /* association request */ -#define WI_STYPE_MGMT_ASRESP 0x0010 /* association response */ -#define WI_STYPE_MGMT_REASREQ 0x0020 /* reassociation request */ -#define WI_STYPE_MGMT_REASRESP 0x0030 /* reassociation response */ -#define WI_STYPE_MGMT_PROBEREQ 0x0040 /* probe request */ -#define WI_STYPE_MGMT_PROBERESP 0x0050 /* probe response */ -#define WI_STYPE_MGMT_BEACON 0x0080 /* beacon */ -#define WI_STYPE_MGMT_ATIM 0x0090 /* announcement traffic ind msg */ -#define WI_STYPE_MGMT_DISAS 0x00A0 /* disassociation */ -#define WI_STYPE_MGMT_AUTH 0x00B0 /* authentication */ -#define WI_STYPE_MGMT_DEAUTH 0x00C0 /* deauthentication */ - -#define WI_STYPE_CTL_PSPOLL 0x00A0 -#define WI_STYPE_CTL_RTS 0x00B0 -#define WI_STYPE_CTL_CTS 0x00C0 -#define WI_STYPE_CTL_ACK 0x00D0 -#define WI_STYPE_CTL_CFEND 0x00E0 -#define WI_STYPE_CTL_CFENDACK 0x00F0 - -struct wi_mgmt_hdr { - u_int16_t frame_ctl; - u_int16_t duration; - u_int8_t dst_addr[6]; - u_int8_t src_addr[6]; - u_int8_t bssid[6]; - u_int16_t seq_ctl; -}; - -/* - * Lucent/wavelan IEEE signal strength cache - * - * driver keeps cache of last - * MAXWICACHE packets to arrive including signal strength info. - * daemons may read this via ioctl - * - * Each entry in the wi_sigcache has a unique macsrc. - */ -struct wi_sigcache { - char macsrc[6]; /* unique MAC address for entry */ - int ipsrc; /* ip address associated with packet */ - int signal; /* signal strength of the packet */ - int noise; /* noise value */ - int quality; /* quality of the packet */ -}; - -/* - * Firmware downloading API. We support downloading into RAM and into - * flash. We copy the entire .hex file for both the primary and secondary - * firmware into the kernel, which is minorly gross, but matches the - * format of the compiled in firmware. - */ -struct wi_fwdownload { - int type; /* What type of download. */ -#define WI_FW_RAM 1 -#define WI_FW_FLASH 2 - size_t pri_len; /* Primary firmware length */ - size_t sec_len; /* Secondary firmware length */ - caddr_t pri_data; /* Pointer (user) to primary data */ - caddr_t sec_data; /* Pointer (user) to secondary data */ -}; - -struct wi_counters { - u_int32_t wi_tx_unicast_frames; - u_int32_t wi_tx_multicast_frames; - u_int32_t wi_tx_fragments; - u_int32_t wi_tx_unicast_octets; - u_int32_t wi_tx_multicast_octets; - u_int32_t wi_tx_deferred_xmits; - u_int32_t wi_tx_single_retries; - u_int32_t wi_tx_multi_retries; - u_int32_t wi_tx_retry_limit; - u_int32_t wi_tx_discards; - u_int32_t wi_rx_unicast_frames; - u_int32_t wi_rx_multicast_frames; - u_int32_t wi_rx_fragments; - u_int32_t wi_rx_unicast_octets; - u_int32_t wi_rx_multicast_octets; - u_int32_t wi_rx_fcs_errors; - u_int32_t wi_rx_discards_nobuf; - u_int32_t wi_tx_discards_wrong_sa; - u_int32_t wi_rx_WEP_cant_decrypt; - u_int32_t wi_rx_msg_in_msg_frags; - u_int32_t wi_rx_msg_in_bad_msg_frags; -}; - -/* - * Network parameters, static configuration entities. - */ -#define WI_RID_PORTTYPE 0xFC00 /* Connection control characteristics */ -#define WI_RID_MAC_NODE 0xFC01 /* MAC address of this station */ -#define WI_RID_DESIRED_SSID 0xFC02 /* Service Set ID for connection */ -#define WI_RID_OWN_CHNL 0xFC03 /* Comm channel for BSS creation */ -#define WI_RID_OWN_SSID 0xFC04 /* IBSS creation ID */ -#define WI_RID_OWN_ATIM_WIN 0xFC05 /* ATIM window time for IBSS creation */ -#define WI_RID_SYSTEM_SCALE 0xFC06 /* scale that specifies AP density */ -#define WI_RID_MAX_DATALEN 0xFC07 /* Max len of MAC frame body data */ -#define WI_RID_MAC_WDS 0xFC08 /* MAC addr of corresponding WDS node */ -#define WI_RID_PM_ENABLED 0xFC09 /* ESS power management enable */ -#define WI_RID_PM_EPS 0xFC0A /* PM EPS/PS mode */ -#define WI_RID_MCAST_RX 0xFC0B /* ESS PM mcast reception */ -#define WI_RID_MAX_SLEEP 0xFC0C /* max sleep time for ESS PM */ -#define WI_RID_HOLDOVER 0xFC0D /* holdover time for ESS PM */ -#define WI_RID_NODENAME 0xFC0E /* ID name of this node for diag */ -#define WI_RID_DTIM_PERIOD 0xFC10 /* beacon interval between DTIMs */ -#define WI_RID_WDS_ADDR1 0xFC11 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR2 0xFC12 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR3 0xFC13 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR4 0xFC14 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR5 0xFC15 /* port 1 MAC of WDS link node */ -#define WI_RID_WDS_ADDR6 0xFC16 /* port 1 MAC of WDS link node */ -#define WI_RID_MCAST_PM_BUF 0xFC17 /* PM buffering of mcast */ -#define WI_RID_ENCRYPTION 0xFC20 /* enable/disable WEP */ -#define WI_RID_AUTHTYPE 0xFC21 /* specify authentication type */ -#define WI_RID_P2_TX_CRYPT_KEY 0xFC23 -#define WI_RID_P2_CRYPT_KEY0 0xFC24 -#define WI_RID_P2_CRYPT_KEY1 0xFC25 -#define WI_RID_MICROWAVE_OVEN 0xFC25 -#define WI_RID_P2_CRYPT_KEY2 0xFC26 -#define WI_RID_P2_CRYPT_KEY3 0xFC27 -#define WI_RID_P2_ENCRYPTION 0xFC28 -#define WI_RID_ALT_RETRY_CNT 0xFC32 -#define PRIVACY_INVOKED 0x01 -#define EXCLUDE_UNENCRYPTED 0x02 -#define HOST_ENCRYPT 0x10 -#define IV_EVERY_FRAME 0x00 /* IV = Initialization Vector */ -#define IV_EVERY10_FRAME 0x20 /* every 10 frame IV reuse */ -#define IV_EVERY50_FRAME 0x40 /* every 50 frame IV reuse */ -#define IV_EVERY100_FRAME 0x60 /* every 100 frame IV reuse */ -#define HOST_DECRYPT 0x80 -#define WI_RID_WEP_MAPTABLE 0xFC29 -#define WI_RID_CNFAUTHMODE 0xFC2A -#define WI_RID_ROAMING_MODE 0xFC2D -#define WI_RID_OWN_BEACON_INT 0xFC33 /* beacon xmit time for BSS creation */ -#define WI_RID_ENH_SECURITY 0xFC43 /* enhanced security (AP mode) */ -#define WI_RID_CNF_DBM_ADJUST 0xFC46 -#define WI_RID_DBM_ADJUST 0xFC46 /* RSSI - WI_RID_DBM_ADJUST ~ dBm */ -#define WI_RID_WPA_DATA 0xFC48 /* WPA IE */ -#define WI_RID_BASIC_RATE 0xFCB3 -#define WI_RID_SUPPORT_RATE 0xFCB4 -#define WI_RID_WPA_HANDLING 0xFCBB /* WPA handling procedures */ - -/* - * Network parameters, dynamic configuration entities - */ -#define WI_RID_MCAST_LIST 0xFC80 /* list of multicast addrs */ -#define WI_RID_CREATE_IBSS 0xFC81 /* create IBSS */ -#define WI_RID_FRAG_THRESH 0xFC82 /* frag len, unicast msg xmit */ -#define WI_RID_RTS_THRESH 0xFC83 /* frame len for RTS/CTS handshake */ -#define WI_RID_TX_RATE 0xFC84 /* data rate for message xmit - * 0 == Fixed 1mbps - * 1 == Fixed 2mbps - * 2 == auto fallback - */ -#define WI_RID_PROMISC 0xFC85 /* enable promisc mode */ -#define WI_RID_FRAG_THRESH0 0xFC90 -#define WI_RID_FRAG_THRESH1 0xFC91 -#define WI_RID_FRAG_THRESH2 0xFC92 -#define WI_RID_FRAG_THRESH3 0xFC93 -#define WI_RID_FRAG_THRESH4 0xFC94 -#define WI_RID_FRAG_THRESH5 0xFC95 -#define WI_RID_FRAG_THRESH6 0xFC96 -#define WI_RID_RTS_THRESH0 0xFC97 -#define WI_RID_RTS_THRESH1 0xFC98 -#define WI_RID_RTS_THRESH2 0xFC99 -#define WI_RID_RTS_THRESH3 0xFC9A -#define WI_RID_RTS_THRESH4 0xFC9B -#define WI_RID_RTS_THRESH5 0xFC9C -#define WI_RID_RTS_THRESH6 0xFC9D -#define WI_RID_TX_RATE0 0xFC9E -#define WI_RID_TX_RATE1 0xFC9F -#define WI_RID_TX_RATE2 0xFCA0 -#define WI_RID_TX_RATE3 0xFCA1 -#define WI_RID_TX_RATE4 0xFCA2 -#define WI_RID_TX_RATE5 0xFCA3 -#define WI_RID_TX_RATE6 0xFCA4 -#define WI_RID_DEFLT_CRYPT_KEYS 0xFCB0 -#define WI_RID_TX_CRYPT_KEY 0xFCB1 -#define WI_RID_TICK_TIME 0xFCE0 - -struct wi_key { - u_int16_t wi_keylen; - u_int8_t wi_keydat[14]; -}; - -#define WI_NLTV_KEYS 4 -struct wi_ltv_keys { - u_int16_t wi_len; - u_int16_t wi_type; - struct wi_key wi_keys[WI_NLTV_KEYS]; -}; - -/* - * NIC information - */ -#define WI_RID_DNLD_BUF 0xFD01 -#define WI_RID_MEMSZ 0xFD02 /* memory size info (XXX Lucent) */ - /* Looks like on lucnet pri firm too */ -#define WI_RID_PRI_IDENTITY 0xFD02 /* primary funcs firmware ident (PRISM2) */ -#define WI_RID_PRI_SUP_RANGE 0xFD03 /* primary supplier compatibility */ -#define WI_RID_CIF_ACT_RANGE 0xFD04 /* controller sup. compatibility */ -#define WI_RID_SERIALNO 0xFD0A /* card serial number */ -#define WI_RID_CARD_ID 0xFD0B /* card identification */ -#define WI_RID_MFI_SUP_RANGE 0xFD0C /* modem supplier compatibility */ -#define WI_RID_CFI_SUP_RANGE 0xFD0D /* controller sup. compatibility */ -#define WI_RID_CHANNEL_LIST 0xFD10 /* allowd comm. frequencies. */ -#define WI_RID_REG_DOMAINS 0xFD11 /* list of intendted regulatory doms */ -#define WI_RID_TEMP_TYPE 0xFD12 /* hw temp range code */ -#define WI_RID_CIS 0xFD13 /* PC card info struct */ -#define WI_RID_STA_IDENTITY 0xFD20 /* station funcs firmware ident */ -#define WI_RID_STA_SUP_RANGE 0xFD21 /* station supplier compat */ -#define WI_RID_MFI_ACT_RANGE 0xFD22 -#define WI_RID_SYMBOL_IDENTITY 0xFD24 -#define WI_RID_CFI_ACT_RANGE 0xFD33 -#define WI_RID_COMMQUAL 0xFD43 -#define WI_RID_SCALETHRESH 0xFD46 -#define WI_RID_PCF 0xFD87 - -/* - * MAC information - */ -#define WI_RID_PORT_STAT 0xFD40 /* actual MAC port con control stat */ -#define WI_RID_CURRENT_SSID 0xFD41 /* ID of actually connected SS */ -#define WI_RID_CURRENT_BSSID 0xFD42 /* ID of actually connected BSS */ -#define WI_RID_COMMS_QUALITY 0xFD43 /* quality of BSS connection */ -#define WI_RID_CUR_TX_RATE 0xFD44 /* current TX rate */ -#define WI_RID_CUR_BEACON_INT 0xFD45 /* current beacon interval */ -#define WI_RID_CUR_SCALE_THRESH 0xFD46 /* actual system scane thresh setting */ -#define WI_RID_PROT_RESP_TIME 0xFD47 /* time to wait for resp to req msg */ -#define WI_RID_SHORT_RTR_LIM 0xFD48 /* max tx attempts for short frames */ -#define WI_RID_LONG_RTS_LIM 0xFD49 /* max tx attempts for long frames */ -#define WI_RID_MAX_TX_LIFE 0xFD4A /* max tx frame handling duration */ -#define WI_RID_MAX_RX_LIFE 0xFD4B /* max rx frame handling duration */ -#define WI_RID_CF_POLL 0xFD4C /* contention free pollable ind */ -#define WI_RID_AUTH_ALGS 0xFD4D /* auth algorithms available */ -#define WI_RID_AUTH_TYPE 0xFD4E /* availanle auth types */ -#define WI_RID_WEP_AVAIL 0xFD4F /* WEP privacy option available */ -#define WI_RID_DBM_COMMS_QUAL 0xFD51 /* CommQuality normalized to dBm */ -#define WI_RID_CUR_TX_RATE1 0xFD80 -#define WI_RID_CUR_TX_RATE2 0xFD81 -#define WI_RID_CUR_TX_RATE3 0xFD82 -#define WI_RID_CUR_TX_RATE4 0xFD83 -#define WI_RID_CUR_TX_RATE5 0xFD84 -#define WI_RID_CUR_TX_RATE6 0xFD85 -#define WI_RID_OWN_MAC 0xFD86 /* unique local MAC addr */ -#define WI_RID_PCI_INFO 0xFD87 /* point coordination func cap */ - -/* - * Scan Information - */ -#define WI_RID_BCAST_SCAN_REQ 0xFCAB /* Broadcast Scan request (Symbol) */ -#define BSCAN_5SEC 0x01 -#define BSCAN_ONETIME 0x02 -#define BSCAN_PASSIVE 0x40 -#define BSCAN_BCAST 0x80 -#define WI_RID_SCAN_REQ 0xFCE1 /* Scan request (STA only) */ -#define WI_RID_JOIN_REQ 0xFCE2 /* Join request (STA only) */ -#define WI_RID_AUTH_STATION 0xFCE3 /* Authenticates Station (AP) */ -#define WI_RID_CHANNEL_REQ 0xFCE4 /* Channel Information Request (AP) */ -#define WI_RID_SCAN_RESULTS 0xFD88 /* Scan Results Table */ - -struct wi_apinfo { - int scanreason; /* ScanReason */ - char bssid[6]; /* BSSID (mac address) */ - int channel; /* Channel */ - int signal; /* Signal level */ - int noise; /* Average Noise Level*/ - int quality; /* Quality */ - int namelen; /* Length of SSID string */ - char name[32]; /* SSID string */ - int capinfo; /* Capability info. */ - int interval; /* BSS Beacon Interval */ - int rate; /* Data Rate */ -}; - -/* - * Modem information - */ -#define WI_RID_PHY_TYPE 0xFDC0 /* phys layer type indication */ -#define WI_RID_CURRENT_CHAN 0xFDC1 /* current frequency */ -#define WI_RID_PWR_STATE 0xFDC2 /* pwr consumption status */ -#define WI_RID_CCA_MODE 0xFDC3 /* clear chan assess mode indication */ -#define WI_RID_CCA_TIME 0xFDC4 /* clear chan assess time */ -#define WI_RID_MAC_PROC_DELAY 0xFDC5 /* MAC processing delay time */ -#define WI_RID_DATA_RATES 0xFDC6 /* supported data rates */ - -/* - * bsd-airtools v0.2 - source-mods v0.2 [common.h] - * by h1kari - (c) Dachb0den Labs 2001 - */ - -/* - * Copyright (c) 2001 Dachb0den Labs. - * David Hulton <h1kari@dachb0den.com>. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by David Hulton. - * 4. Neither the name of the author nor the names of any co-contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY David Hulton AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL David Hulton OR THE VOICES IN HIS HEAD - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * standard hermes receive frame used by wavelan/prism2 cards - */ -struct wi_rx_frame { - /* - * hermes prefix header. supplies information on the current status of - * the network and various other statistics gathered from the - * management/control frames as used internally. - */ - u_int16_t wi_status; - u_int16_t wi_ts0; - u_int16_t wi_ts1; - u_int8_t wi_silence; - u_int8_t wi_signal; - u_int8_t wi_rate; - u_int8_t wi_rx_flow; - u_int16_t wi_rsvd0; - u_int16_t wi_rsvd1; - /* - * standard 80211 frame header. all packets have to use this header as - * per the AN9900 from intersil, even management/control. for *** 4039 LINES SKIPPED ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101080344.1083iGii006695>