aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211/_ieee80211.h
Commit message (Collapse)AuthorAgeFilesLines
* Add a check for dynamic OFDM/CCK channel types.Adrian Chadd2012-07-011-0/+2
| | | | Notes: svn path=/head/; revision=237871
* Revert r220907 and r220915.Adrian Chadd2011-04-221-9/+4
| | | | | | | | Changing the size of struct ieee80211_mimo_info changes the STA info data, breaking ifconfig in general. Notes: svn path=/head/; revision=220935
* Change the MIMO userland export ABI to include flags, number of radio chains,Adrian Chadd2011-04-211-4/+9
| | | | | | | | | extended EVM statistics and EXT channel data. ifconfig still displays 3 chains worth of ctl noise/rssi. Notes: svn path=/head/; revision=220907
* Re-add the pad[2] I deleted by accident.Adrian Chadd2011-04-081-0/+1
| | | | Notes: svn path=/head/; revision=220446
* Add initial support for MIMO statistics to net80211.Adrian Chadd2011-04-081-3/+9
| | | | | | | | | | | | | | | | | | | | | This introduces struct ieee80211_rx_stats - which stores the various kinds of RX statistics which a MIMO and non-MIMO 802.11 device can export. It also fleshes out the mimo export to userland (node_getmimoinfo()). It assumes that MIMO radios (for now) export both ctl and ext channels. Non-11n MIMO radios are possible (and I believe Atheros made at least one), so if that chipset support is added, extra flags to the struct ieee80211_rx_stats can be added to extend this support. Two new input functions have been added - ieee80211_input_mimo() and ieee80211_input_mimo_all() - which MIMO-aware devices can call with MIMO specific statistics. 802.11 devices calling the non-MIMO input functions will still function. Notes: svn path=/head/; revision=220445
* Constantly use MHz instead of Mhz.Bernhard Schmidt2011-03-131-1/+1
| | | | | | | Pointed out by: N.J. Mann <njm at njm.me.uk> Notes: svn path=/head/; revision=219606
* Complete the MCS rate table based on the final 802.11n std. While hereBernhard Schmidt2011-03-101-1/+1
| | | | | | | | | adjust the IEEE80211_HTRATE_MAXSIZE constant, only MCS0 - 76 are valid the other bits in the mcsset IE (77 - 127) are either reserved or used for TX parameters. Notes: svn path=/head/; revision=219456
* Implementation of the upcoming Wireless Mesh standard, 802.11s, on theRui Paulo2009-07-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | net80211 wireless stack. This work is based on the March 2009 D3.0 draft standard. This standard is expected to become final next year. This includes two main net80211 modules, ieee80211_mesh.c which deals with peer link management, link metric calculation, routing table control and mesh configuration and ieee80211_hwmp.c which deals with the actually routing process on the mesh network. HWMP is the mandatory routing protocol on by the mesh standard, but others, such as RA-OLSR, can be implemented. Authentication and encryption are not implemented. There are several scripts under tools/tools/net80211/scripts that can be used to test different mesh network topologies and they also teach you how to setup a mesh vap (for the impatient: ifconfig wlan0 create wlandev ... wlanmode mesh). A new build option is available: IEEE80211_SUPPORT_MESH and it's enabled by default on GENERIC kernels for i386, amd64, sparc64 and pc98. Drivers that support mesh networks right now are: ath, ral and mwl. More information at: http://wiki.freebsd.org/WifiMesh Please note that this work is experimental. Also, please note that bridging a mesh vap with another network interface is not yet supported. Many thanks to the FreeBSD Foundation for sponsoring this project and to Sam Leffler for his support. Also, I would like to thank Gateworks Corporation for sending me a Cambria board which was used during the development of this project. Reviewed by: sam Approved by: re (kensmith) Obtained from: projects/mesh11s Notes: svn path=/head/; revision=195618
* make implicit pad visibleSam Leffler2009-06-111-0/+1
| | | | Notes: svn path=/head/; revision=194022
* Add modes for 1/2 and 1/4-width channels so we have separate roamingSam Leffler2009-02-191-1/+3
| | | | | | | | | | | | | | | | | | | | | and xmit parameters. This makes it possible to use tdma on fractional channels. o add IEEE80211_MODE_HALF and IEEE80211_MODE_QUARTER; note these are band-agnostic (may need revisiting) o setup all default rates in ic_sup_rates instead of doing it only for active modes; we need these to calculate the default tx parameters which are not recalculated after a regulatory update (can't just recalculate after installing a new channel list because we might clobber user settings) o remove special case code in ieee80211_get_suprates; this is now a candidate for an inline or removal o add various entries for new modes (roaming+tx params, wme, rate mapping, scan set setup, country ie construction, tdma, basic rates) Note these modes are intentionally not visible through if_media. Notes: svn path=/head/; revision=188782
* add phy types for 1/2 and 1/4-rate modesSam Leffler2009-02-191-0/+2
| | | | Notes: svn path=/head/; revision=188772
* Extend channel definition with:Sam Leffler2009-01-271-0/+3
| | | | | | | | | | | o max antenna gain o driver private opaque data Note this grows the size of a channel to 16 bytes; which makes the default channel table 4Kbytes (up from 3Kbytes). Notes: svn path=/head/; revision=187803
* o make %b msg bit defines public (to user apps too)Sam Leffler2009-01-271-0/+5
| | | | | | | o rename IEEE80211_C_CRYPTO_BITS to IEEE80211_CRYPTO_BITS Notes: svn path=/head/; revision=187797
* add new state bit to indicate when interference is observed on the channelSam Leffler2009-01-271-0/+3
| | | | Notes: svn path=/head/; revision=187795
* change IEEE80211_IS_CHAN_OFDM and IEEE80211_IS_CHAN_CCK to return trueSam Leffler2009-01-271-2/+2
| | | | | | | for 11g (dynamic CCK/OFDM) Notes: svn path=/head/; revision=187794
* define IEEE80211_CHAN_108A and IEEE80211_CHAN_108G in terms of theirSam Leffler2009-01-271-2/+2
| | | | | | | non-turbo names to make the relationship more clear Notes: svn path=/head/; revision=187793
* add defines for driver-private bits to eliminate use of constantsSam Leffler2009-01-231-1/+4
| | | | Notes: svn path=/head/; revision=187634
* Fix definition of IEEE80211_CHAN_MAX; it was defined as 255 butSam Leffler2008-12-151-1/+1
| | | | | | | | | | really was meant to be 256. Adjust usage accordingly and replace bogus usage of this value in checking IEEE channel #'s. NB: this causes an ABI change; ifconfig must be recompiled Notes: svn path=/head/; revision=186107
* add 1/2 and 1/4 channel flags to IEEE80211_CHAN_ALL so that operationsSam Leffler2008-10-251-0/+1
| | | | | | | like ieee80211_find_channel are more useful Notes: svn path=/head/; revision=184269
* Multi-bss (aka vap) support for 802.11 devices.Sam Leffler2008-04-201-27/+92
| | | | | | | | | | | | | | 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) Notes: svn path=/head/; revision=178354
* o add IEEE80211_RATE_MCS to use instead of naked constant (for marking MCS)Sam Leffler2007-09-181-0/+2
| | | | | | | | | | o correct ieee80211_rate2media handling of MCS o correct rate HT announcements for 11n devices Approved by: re (blanket wireless) Notes: svn path=/head/; revision=172226
* o move IEEE80211_NONQOS_TID into a public locationSam Leffler2007-09-181-0/+3
| | | | | | | | | o add IEEE80211_TID_SIZE and replace all the nake constants Approved by: re (blanket wireless) Notes: svn path=/head/; revision=172225
* Update channel definition:Sam Leffler2007-09-051-16/+40
| | | | | | | | | | | | | o add ic_extieee to hold the HT40 extension channel number o add ic_state to track dynamic channel state for DFS o add flags to mark regulatory channel requirements o add state defs for DFS/radar support Reviewed by: avatar Approved by: re (blanket wireless) Notes: svn path=/head/; revision=172056
* Change the channel number in the scan results struct to be a pointer to theAndrew Thompson2007-06-301-0/+2
| | | | | | | | | | | | | | | operating channel and use this in the scan cache rather than directly using ic_curchan. Some firmware cards can only do a full scan and so ic_curchan does not have the correct value. Also add IEEE80211_CHAN2IEEE to directly dereference ic_ieee from the channel to be used in the fast path. Reviewed by: sam, sephe Approved by: re (kensmith) Notes: svn path=/head/; revision=171124
* Update 802.11 wireless support:Sam Leffler2007-06-111-25/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=170530
* copyright updates:Sam Leffler2007-06-061-7/+1
| | | | | | | | | | o update to include 2007 o switch back to a 2-clause bsd-only license Reviewed by: onoe Notes: svn path=/head/; revision=170360
* add ieee80211_opmode_name array for mapping the opmode to a stringSam Leffler2007-03-071-0/+1
| | | | | | | | | for printing diagnostic msgs MFC after: 2 weeks Notes: svn path=/head/; revision=167283
* add IEEE80211_IS_CHAN_PASSIVESam Leffler2007-02-021-0/+2
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=166409
* Add initial support for 900MHz cards like the Ubiquiti SR9:Sam Leffler2007-01-151-0/+5
| | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=166012
* First cut at half/quarter-rate 11a channel support (e.g. for useSam Leffler2006-12-271-0/+6
| | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=165569
* add some useful definitions that'll be used soonSam Leffler2005-12-121-0/+6
| | | | Notes: svn path=/head/; revision=153347
* Don't use ic_curmode to decide when to do 11g station accounting,Sam Leffler2005-08-101-0/+2
| | | | | | | | | | | | | use the station channel properties. Fixes assert failure/bogus operation when an ap is operating in 11a and has associated stations then switches to 11g. Noticed by: Michal Mertl Reviewed by: avatar MFC after: 2 weeks Notes: svn path=/head/; revision=148941
* bump copyright for 2005Sam Leffler2004-12-311-1/+1
| | | | Notes: svn path=/head/; revision=139530
* Update 802.11 support; too much new functionality to fully describeSam Leffler2004-12-081-0/+188
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. Notes: svn path=/head/; revision=138568