summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211.c
Commit message (Collapse)AuthorAgeFilesLines
...
* honor IEEE80211_CLONE_NOBEACONS for type of vap, not just a sta mode vapsam2008-10-251-5/+3
|
* o add support for ifconfig wlanX mode foosam2008-10-251-62/+8
| | | | | | o yank useless code for setting fixed rate through media opts: this mechanism didn't scale to HT rates and couldn't handle multiple bands; fixed tx rates are set with the IEEE80211_IOC_TXPARAMS ioctl
* Replace a line matching /^ $/ with one matching /^$/.brooks2008-09-031-1/+1
| | | | Obtained from: //depot/projects/vimage-commit2/...
* free ifp allocated at ieee80211_vap_setup.weongyo2008-09-021-0/+2
| | | | Reviewed by: sam, thompsa
* Revise lock name handling:sam2008-05-281-1/+1
| | | | | | | | o construct a name for the com lock as done for other locks o pass the device name to IEEE80211_LOCK_INIT so the mtx name is constructed as foo_com_lock o introduce *_LOCK_OBJ macro's to hide the lock contents and minimize redundant code
* Minor cleanup of vap create work:sam2008-05-121-18/+12
| | | | | | | | | | | | | o add IEEE80211_C_STA capability to indicate sta mode is supported (was previously assumed) and mark drivers as capable o add ieee80211_opcap array to map an opmode to the equivalent capability bit o move IEEE80211_C_OPMODE definition to where capabilities are defined so it's clear it should be kept in sync (on future additions) o check device capabilities in clone create before trying to create a vap; this makes driver checks unneeded o make error codes return on failed clone request unique o temporarily add console printfs on clone request failures to aid in debugging; these will move under DIAGNOSTIC or similar before release
* use c99-style initialization for ieee80211_phymode_namesam2008-05-111-11/+11
|
* add DFS capability bit and use it to auto-enable DFS supportsam2008-05-111-2/+3
|
* re-enable WME by default; after a full day of testing on iwi I see nosam2008-05-011-3/+0
| | | | issues and the only way we'll identify them is for people to use it
* disable default enabling of WME until we resolve driver regressionssam2008-04-301-0/+3
|
* hookup the parent device's if_input and if_output to stub routinessam2008-04-251-0/+19
| | | | | | | to catch unintended use (one might argue about if_output but it's behaviour is ill-defined without vap context) Noticed by: Paul B. Mahol
* Multi-bss (aka vap) support for 802.11 devices.sam2008-04-201-361/+641
| | | | | | | | | | | Note this includes changes to all drivers and moves some device firmware loading to use firmware(9) and a separate module (e.g. ral). Also there no longer are separate wlan_scan* modules; this functionality is now bundled into the wlan module. Supported by: Hobnob and Marvell Reviewed by: many Obtained from: Atheros (some bits)
* Add padding for anticipated functionalitykmacy2007-12-071-2/+2
| | | | | | | | | | | | - vimage - TOE - multiq - host rtentry caching Rename spare used by 80211 to if_llsoftc Reviewed by: rwatson, gnn MFC after: 1 day
* add ieee80211_find_channel_byieee to lookup a channel by ieee channel #sam2007-11-231-0/+26
| | | | | Reviewed by: thompsa MFC after: 1 week
* invalidate ic_prevchan when constructing a new channel listsam2007-09-181-0/+1
| | | | Approved by: re (blanket wireless)
* skip IEEE80211_MODE_AUTO in announcing supported rates in ieee80211_announce;sam2007-09-181-1/+2
| | | | | | there won't be any Approved by: re (blanket wireless)
* o add IEEE80211_RATE_MCS to use instead of naked constant (for marking MCS)sam2007-09-181-2/+4
| | | | | | | o correct ieee80211_rate2media handling of MCS o correct rate HT announcements for 11n devices Approved by: re (blanket wireless)
* remove IFM_IEEE80211_HT40PLUS and IFM_IEEE80211_HT40MINUS; theysam2007-09-181-4/+0
| | | | | | never got used so nuke 'em before we branch Approved by: re (blanket wireless)
* Update 802.11 wireless support:sam2007-06-111-388/+457
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o major overhaul of the way channels are handled: channels are now fully enumerated and uniquely identify the operating characteristics; these changes are visible to user applications which require changes o make scanning support independent of the state machine to enable background scanning and roaming o move scanning support into loadable modules based on the operating mode to enable different policies and reduce the memory footprint on systems w/ constrained resources o add background scanning in station mode (no support for adhoc/ibss mode yet) o significantly speedup sta mode scanning with a variety of techniques o add roaming support when background scanning is supported; for now we use a simple algorithm to trigger a roam: we threshold the rssi and tx rate, if either drops too low we try to roam to a new ap o add tx fragmentation support o add first cut at 802.11n support: this code works with forthcoming drivers but is incomplete; it's included now to establish a baseline for other drivers to be developed and for user applications o adjust max_linkhdr et. al. to reflect 802.11 requirements; this eliminates prepending mbufs for traffic generated locally o add support for Atheros protocol extensions; mainly the fast frames encapsulation (note this can be used with any card that can tx+rx large frames correctly) o add sta support for ap's that beacon both WPA1+2 support o change all data types from bsd-style to posix-style o propagate noise floor data from drivers to net80211 and on to user apps o correct various issues in the sta mode state machine related to handling authentication and association failures o enable the addition of sta mode power save support for drivers that need net80211 support (not in this commit) o remove old WI compatibility ioctls (wicontrol is officially dead) o change the data structures returned for get sta info and get scan results so future additions will not break user apps o fixed tx rate is now maintained internally as an ieee rate and not an index into the rate set; this needs to be extended to deal with multi-mode operation o add extended channel specifications to radiotap to enable 11n sniffing Drivers: o ath: add support for bg scanning, tx fragmentation, fast frames, dynamic turbo (lightly tested), 11n (sniffing only and needs new hal) o awi: compile tested only o ndis: lightly tested o ipw: lightly tested o iwi: add support for bg scanning (well tested but may have some rough edges) o ral, ural, rum: add suppoort for bg scanning, calibrate rssi data o wi: lightly tested This work is based on contributions by Atheros, kmacy, sephe, thompsa, mlaier, kevlo, and others. Much of the scanning work was supported by Atheros. The 11n work was supported by Marvell.
* copyright updates:sam2007-06-061-7/+1
| | | | | | | o update to include 2007 o switch back to a 2-clause bsd-only license Reviewed by: onoe
* change ic_modecaps to a bit vector and use setbit, et. al.sam2007-03-111-14/+14
|
* change ieee80211_mhz2ieee to use the PSB mapping when the frequencysam2007-03-111-2/+4
| | | | | | falls in the proper place, not when we're handed a 1/2 or 1/4-rate channel MFC after: 2 weeks
* Add initial support for 900MHz cards like the Ubiquiti SR9:sam2007-01-151-36/+52
| | | | | | | | | | | | | | | | o add channel flag to enable freq <-> ieee channel # mapping (can go away in the future when ieee number is precomputed) o add mapping between 900mhz freq's and channel #'s that gives a unique channel # for each half/quarter/full width channel o remove assumptions that half/quarter rate channels on happen in 11a o remove assumptions that all 11g channels are full width o ensure ic_curchan is reset on mode change so changing the channel list (e.g. on countrycode change) doesn't leave curchan set to an invalid channel There is still an issue with switching rate sets; to be fixed separately. MFC after: 1 month
* Fix compile error.mjacob2007-01-061-1/+1
|
* o unbreak rate set defaultingsam2006-12-281-5/+3
| | | | | | o mark 11g mode support on finding 11g or pure 11g (OFDM-only) channels; was requiring pure 11g which caused some contortions in drivers that manually setup their channel lists
* First cut at half/quarter-rate 11a channel support (e.g. for usesam2006-12-271-42/+103
| | | | | | | | | | | | | | | | | | | | in the Public Safety Band): o add channel flags to identify half/quarter-rate operation o add rate sets (need to check spec on 4Mb/s in 1/4 rate) o add if_media definitions for new rates o split net80211 channel setup out into ieee80211_chan_init o fixup ieee80211_mhz2ieee and ieee80211_ieee2mhz to understand half/quarter rate channels: note we temporarily use a nonstandard/hack numbering that avoids overlap with 2.4G channels because we don't (yet) have enough state to identify and/or map overlapping channel sets o fixup ieee80211_ifmedia_init so it can be called post attach and will recalculate the channel list and associated state; this enables changing channel-related state like the regulatory domain after attach (will be needed for 802.11d support too) o add ieee80211_get_suprates to return a reference to the supported rate set for a given channel o add 3, 4.5, and 27 MB/s tx rates to rate <-> media conversion routines o const-poison channel arg to ieee80211_chan2mode
* Default the rate sets for 802.11 operating modes so drivers aren'tsam2006-11-261-0/+28
| | | | | | | | required to. Note this only happens when drivers don't set them up before calling ieee80211_ifattach so this change is backwards compatible. MFC after: 1 month
* add support for 802.11 packet injection via bpfsam2006-07-261-0/+5
| | | | | | Together with: Andrea Bittau <a.bittau@cs.ucl.ac.uk> Reviewed by: arch@ MFC after: 1 month
* back out public safety-specific channel number mapping; we can't dosam2006-04-261-9/+1
| | | | | | it until we know it should be applied as otherwise we can map 11a channels into the 2.4G range and choose the wrong item from the chanenl array
* o make driver override of net80211 parameter state consistentsam2006-02-141-5/+3
| | | | | | | | with methods: instead of honoring non-zero values expect drivers to write their own values on return from ieee80211_ifattach o add a define for the default h/w bmiss count MFC after: 2 weeks
* switch beacon miss threshold from a time to the number of beaconsam2006-01-231-1/+1
| | | | | | frames; the time value was implicitly based on the beacon interval but never being updated so wrong when the negotiated beacon interval was not 100 TU
* correct checking for turbo channels: rev 1.24 fixed static turbo channelssam2005-12-301-4/+4
| | | | | | | | but broke handling of the turboG channel; since we aren't ready to revamp the channel list just check for turboA channels for now so channel 6 is considered in auto mode Noticed by: gibbs
* make packet bursting configurable (default to on if device is capable)sam2005-12-141-0/+2
|
* o correct auto mode logic for avoiding turbo channelssam2005-12-121-9/+9
| | | | | | | o correct assumption that a static turbo channel is also usable in 11a; the opposite is true MFC after: 1 week
* Update ieee80211_mhz2ieee to understand public safety bands and spectrumsam2005-11-151-7/+22
| | | | | | | that can potentially be mapped to negative ieee #'s. NB: before operation on the latter can be supported we need to cleanup various code that assumes ieee channel #'s are >= 0
* Clarify/fix handling of the current channel:sam2005-08-101-0/+4
| | | | | | | | | | | | | | | | | | | o add ic_curchan and use it uniformly for specifying the current channel instead of overloading ic->ic_bss->ni_chan (or in some drivers ic_ibss_chan) o add ieee80211_scanparams structure to encapsulate scanning-related state captured for rx frames o move rx beacon+probe response frame handling into separate routines o change beacon+probe response handling to treat the scan table more like a scan cache--look for an existing entry before adding a new one; this combined with ic_curchan use corrects handling of stations that were previously found at a different channel o move adhoc neighbor discovery by beacon+probe response frames to a new ieee80211_add_neighbor routine Reviewed by: avatar Tested by: avatar, Michal Mertl MFC after: 2 weeks
* Cleanup beacon/listen interval handling:sam2005-08-081-3/+5
| | | | | | | | | | | | | | | | | o separate configured beacon interval from listen interval; this avoids potential use of one value for the other (e.g. setting powersavesleep to 0 clobbers the beacon interval used in hostap or ibss mode) o bounds check the beacon interval received in probe response and beacon frames and drop frames with bogus settings; not clear if we should instead clamp the value as any alteration would result in mismatched sta+ap configuration and probably be more confusing (don't want to log to the console but perhaps ok with rate limiting) o while here up max beacon interval to reflect WiFi standard Noticed by: Martin <nakal@nurfuerspam.de> MFC after: 1 week
* diff reduction against p4: define IEEE80211_FIXED_RATE_NONE and usesam2005-07-221-1/+1
| | | | it instead of -1
* supply a default ic_reset method for drivers; the ioctl code expect thissam2005-01-271-0/+22
| | | | | | method to always be setup Submitted by: Tai-hwa Liang
* statically allocate the station/neighbor node table; the deferredsam2005-01-241-2/+2
| | | | | allocation scheme introduced a race condition during device state transitions
* bump copyright for 2005sam2004-12-311-1/+1
|
* disable default use of wme until we can sort out interoperability issues;sam2004-12-311-2/+2
| | | | users that want it can explicitly enable it
* expose ieee80211_phymode_name for use in debug msgssam2004-12-311-1/+1
|
* Update 802.11 support; too much new functionality to fully describesam2004-12-081-184/+275
| | | | | | here but it includes completed 802.11g, WPA, 802.11i, 802.1x, WME/WMM, AP-side power-save, crypto plugin framework, authenticator plugin framework, and access control plugin frameowrk.
* Add some missing <sys/module.h> includes which are masked by thephk2004-05-301-0/+1
| | | | one on death-row in <sys/kernel.h>
* Link state change notification of ethernet media to the routing socket.andre2004-05-051-1/+10
| | | | | | | o The ieee80211_media_status() function updates the ifi_link_state field and calls rt_ifmsg() to notify listeners on the routing socket. Approved by: sam
* diff reduction against madwifi/p4sam2004-04-021-2/+2
|
* Add explicit dependency on "ether", since we use ether_ifattach().mux2004-03-161-0/+1
|
* Add support for FH phy, which will be used by awi driver.onoe2004-01-151-43/+58
| | | | | Also some if_media constants to indicate operational mode are changed to bitmasks to reduce diffs from NetBSD.
* short preamble capability is not just for 11g; mark IEEE80211_F_SHPREAMBLEsam2003-09-141-3/+3
| | | | | | regardless of the operating mode Obtained from: MADWIFI
OpenPOWER on IntegriCloud