Commit Graph

36 Commits

Author SHA1 Message Date
dyoung
4451fcd003 From Sam Leffler/FreeBSD: AP scanning code, for forthcoming ADM8211
driver (and for eventual synchronization w/ Sam's enhancements to
FreeBSD).

From dyoung@netbsd.org, factor ieee80211_create_ibss and
ieee80211_match_bss out of ieee80211_end_scan for re-use in the
forthcoming ADM8211 driver.
2003-07-06 20:54:24 +00:00
dyoung
9311a1d632 Move the logic to find out what channel to transmit a packet on
into ieee80211_get_channel, rather than duplicate it in ieee80211_ioctl
and in the ADM8211 driver.
2003-07-06 08:39:59 +00:00
dyoung
725bfbdab7 More 802.11 media-handling consolidation. ieee80211_media_status
and ieee80211_media_change are factorizations of the media
status/change functions for wi and awi. Inspired by Sam Leffler/FreeBSD.
2003-07-06 08:06:20 +00:00
dyoung
030634087a Prepare to consolidate 802.11 media handling (which is handled in
code duplicated by each driver, now) into the 802.11 framework.
2003-07-06 07:54:43 +00:00
dyoung
045ad0db5e IEEE80211_LOCK and WI_LOCK conceal enormous differences in locking
semantics on FreeBSD and NetBSD, so I am backing them out until
the macro set is enriched.
2003-05-16 01:26:17 +00:00
dyoung
541c2cdd2e Sync with FreeBSD. Spelling fix. Make ieee80211_decap a little more
readable. Accomodate both FreeBSD arpcom and NetBSD ethercom with
conditional compilation.
2003-05-13 10:05:05 +00:00
dyoung
d3f1cc6bf2 Add utility routine ieee80211_get_rate(). 2003-05-13 09:31:56 +00:00
dyoung
1786077eef Begin sync with 802.11 framework in FreeBSD: adopt macros for
locking.
2003-05-13 09:22:31 +00:00
dyoung
9302269223 Define an 802.11 PLCP header and constants.
Define two new status codes for management frames.

Define 802.11 durations of important frame sequences, as will be
needed for ADMtek ADM8211 driver and others.
2003-05-13 05:51:46 +00:00
kml
0ad9e0dccc Host AP power saving support. The Host AP notices that the power
saving bit is set in incoming frames from a station, and buffers the
outgoing frames for the station until they are polled for.  This
requires support in the driver to set a bit in the TIM bitmap sent
during 802.11 beacons.

So far, support for power saving in Host AP mode is only available
for the PRISM2 chipset.
2003-04-08 04:31:23 +00:00
dyoung
595c6d88b2 Add support for Prism monitor mode. From Kevin Lahey
<kml@patheticgeek.net>.

This patch does NOT add monitor mode support for the Lucent radios.

awi(4) was only modified for compatibility with the new mediaopt.
It does NOT support monitor mode.

Tested by Kevin, Daniel Carosone, and I.
2003-02-25 01:57:35 +00:00
dyoung
1cfe0913f5 Fix typo: IEEE80211_FC0_SUBTYPE_CF_ACK_CF_ACK becomes
IEEE80211_FC0_SUBTYPE_CF_ACK_CF_POLL. This is the name the IEEE
802.11 specification indicates.
2002-11-16 06:08:31 +00:00
perry
6858187df6 /*CONTCOND*/ while (0)'ed macros 2002-11-02 07:20:42 +00:00
onoe
4b4897a156 Clear wep key when 'ifconfig -nwkey'.
Change the name for the size of driver private structure:
	ic_bss_privlen -> ic_node_privlen
Add a hook to free node for the driver private structure, though there are
no consumer of the structure in the tree for now.
2002-10-15 08:51:50 +00:00
onoe
9fadcea372 old lucent adhoc-demo mode (adhoc,flag0 or wiconfig -p 3) wasn't handled
correctly.  To avoid massive extra code in each driver, now if_iee80211subr.c
also handles non-standard old lucent adhoc-demo mode.
This also fixes PR 14227.
2002-09-30 15:48:41 +00:00
onoe
ed3b52f295 Obtain some functionality from wi_hostap;
use hash for device node list.
	Avoid use weak IV value, increment IV for each packet.
2002-09-30 05:35:28 +00:00
onoe
30d884d47c Add support for SIOC[SG]80211BSSID, SIOC[SG]80211CHANNEL.
Change the name of structure ieee80211_bss to ieee80211_node, which is
used for management of stations in hostap mode, and peers in ibss mode.
Split off ic_opmode, ic_phytype from ic_flags.
Preparation to merge 'wi' driver into 80211subr.c.
2002-09-27 05:36:04 +00:00
thorpej
cccd4bd402 Fix thinko in the SIOC{G,S}80211CHANNEL and SIOC{G,S}80211BSSID
ioctls.
2002-09-22 01:56:08 +00:00
thorpej
4c3ae4bbc8 Add new ioctls:
* SIOCS80211CHANNEL, SIOCG80211CHANNEL -- set/get the 802.11 channel.
* SIOCS80211BSSID, SIOCG80211BSSID -- set desired/get current BSSID.

From David Young <dyoung@ojctech.com>.
2002-09-15 23:27:08 +00:00
onoe
26ebf5f371 Several fixes hostap for awi driver:
- aging ang clear inactivity stations
- DTIM field in beacon/probe response.
- ignore IFF_PROMISC for hostap mode, since 802.11 has 3 address fields,
  so that promisc mode is not required for AP function.
2002-09-03 14:54:00 +00:00
onoe
efcfc3e1c8 Add experimental support of Host-AP mode for awi driver.
It works also with WEP enabled.
But aging the associated clients is not implemented yet, so that the number
of clients may increase unlimitedly..
2002-09-02 13:37:35 +00:00
onoe
fd9daca7ea Attach another DLTs for bpf: DLT_IEEE802_11 to capture raw 802.11 frame. 2002-08-28 09:38:08 +00:00
thorpej
2faddb9f3d * Additional frame control types.
* BEACON and AUTH management packet info.
* Add ioctl for configuring 802.11 auth mode.

From OpenBSD.
2002-08-11 03:39:21 +00:00
onoe
248c861292 Fix IBSS for awi driver. 2002-08-05 06:55:05 +00:00
onoe
aebd449baa Fix for FH infrastructure mode.
XXX: FH chanset should be calculated by FH hop pattern, but BayStack 650 AP
     always specify chanset to fixed value 1.  The previous code try to this
     hack into awi driver, but it is insufficient because the chanset value
     in awi driver may change while scan and it may be different from the
     value in receiving beacon/probe-response.  So we save encoded FH chanset
     into channel in 802.11 common bss information for now.
2001-09-19 04:09:54 +00:00
onoe
6a617566bc Move IEEE 802.11 MAC management functions from awi driver to
if_ieee80211subr.c, which can be shared between any IEEE 802.11
drivers.
However, most of current working IEEE 802.11b wireless LAN cards
have rich firmware and we cannot have a control to management frames
for such cards.

IBSS creation is now supported for the awi driver.
2001-09-18 09:09:57 +00:00
onoe
a939e73e00 Add definition of mask/shift for seqence/fragment in sequence control field. 2001-09-11 12:25:18 +00:00
onoe
ed965d38ff add more capability information and status from IEEE802.11b 2001-06-25 12:02:53 +00:00
onoe
dd3d1120f0 Add definitions of the value for 'i_wepon' of ieee80211_nwkey to prepare
support for persistent keys.
2001-06-21 12:29:39 +00:00
thorpej
721139924d Add a version of the 802.11 frame header that includes the 4th address. 2000-12-18 18:00:23 +00:00
thorpej
589bc762b7 Add a way to manipulate the power management parameters specified in
802.11.
2000-12-12 04:03:38 +00:00
onoe
f4aa4a560c add following two ioctls to handle WEP key for IEEE 802.11 wireless
LAN drivers: SIOCS80211NWKEY and SIOCG80211NWKEY.
2000-07-21 04:47:40 +00:00
onoe
807a12c8cd change the argument of SIOCS80211NWID and SIOCG80211NWID ioctls from
u_int8_t array to struct ieee80211_nwid to prepend length field.
The length field is necessary because IEEE 802.11 spec doesn't prohibit
even '\0' for SSID.
Though the name and the value of SIOC... macro is unchanged, this change
breaks binary compatibility.  The only affected userland program on the
tree is ifconfig(8).
As Jason suggested on tech-net, it is better than live with problems
since there are no releases for this ioctls yet.
2000-07-05 02:35:53 +00:00
onoe
4da3935bae cleanup haeders.
add opt_awi.h to define AWI_DEBUG, AWI_WEP_ARC4.
show the firmware version at attach.
create a framework to support WEP (encryption code is not included for now).
a new wiconfig compatible ioctl interface replaced the awictl interface.
fix memory leak in selecting AP
fix bugs in ESSID selection
changes from FreeBSD-current by Warner Losh:
  revision 1.2
  date: 2000/04/17 22:58:15;  author: imp;  state: Exp;  lines: +16 -1
  Provide mem* for compat with NetBSD to fix LINT
fixes from FreeBSD-current by Guido van Rooij:
  revision 1.4
  date: 2000/05/29 19:58:10;  author: guido;  state: Exp;  lines: +5 -2
  Fix a panic resulting from an obvious null pointer deref.
  Apparently some other panics still exist in this driver, but with
  this fix, it was at least possible to run the Nokia card at SANE 2000.
2000-06-09 05:31:15 +00:00
onoe
85656424da Rename the macro IEEE80211_FC1_RCVFROM_XXX to IEEE80211_FC1_DIR_XXX
and fix the value to be consistent with IEEE 802.11 spec.
The only customer of this macro is if_ray driver for now.
2000-03-10 05:44:23 +00:00
chopps
93d5e38d57 Add beginnings of ieee 802.11 generic stuff 2000-01-23 23:50:13 +00:00