summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_ht.c
Commit message (Collapse)AuthorAgeFilesLines
* o change ieee80211_mgmt_output to take a raw xmit parameters block sosam2008-10-261-1/+9
| | | | | | | | | the net80211 layer has complete control over the handling of mgt frames (in particular, the ac, tx rate, and retry count); this also allows us to purge the M_LINK0 flag that was attached to mbufs to mark them as needing encryption for shared key auth o change ieee80211_send_setup to take a tid parameter so it can be used to setup QoS frames
* Sync BAR frame handling with out of tree work:sam2008-10-251-52/+181
| | | | | | | | | | | | | o correct BAR frame construction for AMPDU o retransmit BAR frames until ACK'd or timeout (use tunables to control behaviour, default is very aggressive) o defer seq# update until BAR frame is ACK'd o add BAR response handling callback for driver to interpose and push new state to device or push pending aggregates While here also: o add backpointer to node in the per-tid tx aggregation data structure o move ampdu tx state setup/teardown work to separate functions
* cleanup after mergesam2008-09-221-1/+0
|
* Fix handling of shortgi: use the local configuration (and implicitlysam2008-09-221-0/+20
| | | | | device capabilities) to decide whether to use short gi. Drivers inspect ni_flags to decide whether to send a frame w/ short sgi.
* RIFS support; needs driver callback for dynamic state changesam2008-09-221-2/+22
|
* MIMO power save support; still needs callbacks for notifying driverssam2008-09-211-2/+50
| | | | of dynamic state change in station mode.
* Revamp ht ie handling:sam2008-09-211-42/+98
| | | | | | | | | | | | | | | o change ieee80211_parse_htcap and ieee80211_parse_htinfo to save only internal state obtained from the ie's; no dynamic state such as ni_chw is altered o add ieee80211_ht_updateparams to parse ht cap+info ie's and update dynamic node state o change ieee80211_ht_node_init to not take an htcap ie that is parsed; instead have the caller make a separate call as one caller wants to parse the ie while another wants to parse both cap+info ie's and update state so can better do this with ieee80211_ht_updateparams These changes fix sta mode state handling where the node's channel width was shifted to ht20/ht40 prematurely.
* don't propagate ht bss occupancy changes to legacy vaps;sam2008-09-211-0/+3
| | | | they won't have an htinfo ie to update
* change ieee80211_ampdu_stop to take an explicit reason codesam2008-09-211-5/+7
|
* simplify debug msgsam2008-09-211-3/+2
|
* Cleanup AMPDU handling:sam2008-09-211-4/+12
| | | | | | | | | | | | | | | | | | | | | | For receive: o explicitly tag rx frames w/ M_AMPDU instead of passing frames through the reorder processing according to the node having HT and the frame being QoS data o relax ieee80211_ampdu_reorder asserts to allow any frame to be passed in, unsuitable frames are returned to the caller for normal processing; this permits drivers that cannot inspect the PLCP to mark all data frames as potential ampdu candidates with only a small penalty o add M_AMPDU_MPDU to identify frames resubmitted from the reorder q For transmit: o tag aggregation candidates with M_AMPDU_MPDU o fix the QoS ack policy set in ampdu subframes; we only support immediate BA streams which should be marked for "normal ack" to get implicit block ack behaviour; interestingly certain vendor parts BA'd frames with the 11e BA ack policy set o do not assign a sequence # to aggregation candidates; this must be done when frames are submitted for transmit (NB: this can/will be handled better when aggregation is pulled up to net80211)
* Always update ic_lastnonht so we track overlapping legacy bsssam2008-09-211-10/+9
| | | | | | | properly; was doing this only on a change in the protection mode so the advertised protection mode in the beacon would oscillate. Submitted by: Chris Zimmermann
* Cleanup starting seq# for tx ampdu:sam2008-09-211-3/+5
| | | | | | o use txa_start to form the addba request and purge txa_seqstart o fill txa_start before calling ic_addba_request to permit drivers to override when they handle seq# generation (e.g. mwl)
* o kill IEEE80211_NODE_PSUPDATE; it was never usedsam2008-09-061-7/+5
| | | | | o kill IEEE80211_NODE_CHWUPDATE; it's use was pointless and it was defined wrong (overlap w/ existing flags)
* put back placeholder commentsam2008-09-061-0/+1
|
* o validate the ba policy in addba responsesam2008-09-061-1/+27
| | | | | o leave a check for the max ba window disabled; we accept out of range values and just truncate them but may want to act differently in the future
* add IEEE80211_NODE_HT_ALL to collect up all the HT-related node flagssam2008-09-061-2/+1
|
* don't do ampdu reordering of fragments; they should never happensam2008-09-061-1/+15
|
* moreve the aggregation q; it's not being used andsam2008-09-061-4/+0
| | | | there's a better way to do this
* add missing lock for htinfo updatesam2008-08-021-0/+2
| | | | Submitted by: Chris Zimmermann
* correct construction of delba action frame; don't shift+mask the initiatorsam2008-07-051-1/+1
| | | | | | argument Submitted by: Marvell
* use the current left edge of the BA window when forming ADDBA requestsam2008-05-111-3/+4
| | | | so an existing session is re-established with the correct seq#
* Multi-bss (aka vap) support for 802.11 devices.sam2008-04-201-226/+365
| | | | | | | | | | | 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)
* o correct typo that broke check when handling addba responsesam2008-02-011-1/+2
| | | | | | | o add a comment about the ht rates being for 20MHz channels w/ long GI; needs a separate fix after more thought MFC after: 3 days
* correct sta mode setup: adopt ap's ampdu density and max ampdu sizesam2007-11-231-2/+8
| | | | | | instead of using local settings MFC after: 3 days
* correct termination check doing amsdu de-aggregationsam2007-11-081-4/+3
| | | | MFC after: 3 days
* sync 11n support with vap code base; many changes based on interopsam2007-11-021-193/+686
| | | | | | testing with all major vendors MFC after: 1 week
* o add IEEE80211_RATE_MCS to use instead of naked constant (for marking MCS)sam2007-09-181-1/+2
| | | | | | | o correct ieee80211_rate2media handling of MCS o correct rate HT announcements for 11n devices Approved by: re (blanket wireless)
* Update beacon handling to sync w/ vap code base:sam2007-09-171-3/+33
| | | | | | | | | | | | | | | | | | | o add driver callback to handle notification of beacon changes; this is required for devices that manage beacon frames themselves (devices must override the default handler which does nothing) o move beacon update-related flags from ieee80211com to the beacon offsets storage (or handle however a driver wants) o expand beacon offsets structure with members needed for 11h/dfs and appie's o change calling convention for ieee80211_beacon_alloc and ieee80211_beacon_update o add overlapping bss support for 11g; requires driver to pass beacon frames from overlapping bss up to net80211 which is not presently done by any driver o move HT beacon contents update to a routine in the HT code area Reviewed by: avatar, thompsa, sephe Approved by: re (blanket wireless)
* Miscellaneous fixups to 802.11 defs:sam2007-09-051-1/+1
| | | | | | | | | | | | | o update 11n definitions to D2.0 spec o add IEEE80211_CAPINFO_SPECTRUM_MGMT for DFS support o add CSA ie definition for DFS support o purge some unused definitions o correct 802.11 reason and status codes o correct reason code returned when a sta tries to associate to an ap operating with WPA/RSN but without a WPA/RSN ie Reviewed by: thompsa, avatar Approved by: re (blanket wireless)
* Update 802.11 wireless support:sam2007-06-111-0/+1472
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.
OpenPOWER on IntegriCloud