freebsd-dev/sys/net80211
Adrian Chadd b94299c437 Create a new task to handle 802.11n channel width changes.
Currently, a channel width change updates the 802.11n HT info data in
net80211 but it doesn't trigger any device changes.  So the device
driver may decide that HT40 frames can be transmitted but the last
device channel set only had HT20 set.

Now, a task is scheduled so a hardware reset or change isn't done
during any active ongoing RX. It also means that it's serialised
with the other task operations (eg channel change.)

This isn't the final incantation of this work, see below.

For now, any unmodified drivers will simply receive a channel
change log entry.  A subsequent patch to ath(4) will introduce
some basic channel change handling (by resetting the NIC.)
Other NICs may need to update their rate control information.

TODO:

* There's still a small window at the present moment where the
  channel width has been updated but the task hasn't been fired.
  The final version of this should likely pass in a channel width
  field to the driver and let the driver atomically do whatever
  it needs to before changing the channel.

PR:		kern/166286
2012-03-25 03:11:57 +00:00
..
_ieee80211.h Revert r220907 and r220915. 2011-04-22 00:44:27 +00:00
ieee80211_acl.c Remove now redundant mac argument. 2011-12-17 10:32:31 +00:00
ieee80211_action.c * Added IEEE80211_ACTION_CAT_MESH in ieee80211.h as specified amendment spec; 2012-03-04 05:49:39 +00:00
ieee80211_action.h Revamp 802.11 action frame handling: 2009-07-05 17:59:19 +00:00
ieee80211_adhoc.c Fix some corner cases in the net80211 sequence number retransmission 2011-05-04 02:23:59 +00:00
ieee80211_adhoc.h
ieee80211_ageq.c Fix memset sizeofs 2011-07-07 15:41:40 +00:00
ieee80211_ageq.h Add ieee80211_ageq; a facility for staging packets that require 2009-07-05 18:17:37 +00:00
ieee80211_alq.c Re-commit this - store the alq payload in network order. 2012-03-21 03:19:50 +00:00
ieee80211_alq.h .. revert out a local change that I hadn't yet completely finished fleshing 2012-03-18 21:54:59 +00:00
ieee80211_amrr.c sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:53:50 +00:00
ieee80211_amrr.h net80211 rate control framework (net80211 ratectl). 2010-04-07 15:29:13 +00:00
ieee80211_crypto_ccmp.c - Introduce IEEE80211_KEY_NOREPLAY, a per-key flag to ignore replay 2010-07-01 20:50:12 +00:00
ieee80211_crypto_none.c
ieee80211_crypto_tkip.c - Introduce IEEE80211_KEY_NOREPLAY, a per-key flag to ignore replay 2010-07-01 20:50:12 +00:00
ieee80211_crypto_wep.c
ieee80211_crypto.c Correct handling of keys that already have a hardware/device key index: 2009-07-21 19:36:32 +00:00
ieee80211_crypto.h - Introduce IEEE80211_KEY_NOREPLAY, a per-key flag to ignore replay 2010-07-01 20:50:12 +00:00
ieee80211_ddb.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
ieee80211_dfs.c Add a DFS debugging mode which is useful when doing automated DFS 2012-01-31 00:03:49 +00:00
ieee80211_dfs.h Add a DFS debugging mode which is useful when doing automated DFS 2012-01-31 00:03:49 +00:00
ieee80211_freebsd.c Pull in a dependency on ALQ if it's compiled with IEEE80211_ALQ. 2012-03-16 23:08:13 +00:00
ieee80211_freebsd.h Make this code a little more portable by wrapping the mtx calls into 2010-04-14 18:29:40 +00:00
ieee80211_hostap.c Remove now redundant mac argument. 2011-12-17 10:32:31 +00:00
ieee80211_hostap.h
ieee80211_ht.c Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211_ht.h Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211_hwmp.c Modify HWMP to be able to allocate memory for PREQ/PREP/PERR for all scenarios. 2012-03-06 21:20:16 +00:00
ieee80211_input.c Fix build w/o 'options IEEE80211_SUPPORT_MESH'. 2012-03-04 09:45:43 +00:00
ieee80211_input.h Fix some corner cases in the net80211 sequence number retransmission 2011-05-04 02:23:59 +00:00
ieee80211_ioctl.c Add the ability to kick an existing mesh node without waiting for it 2012-01-11 17:10:27 +00:00
ieee80211_ioctl.h Track the number of bad beacons received. 2012-02-28 04:05:35 +00:00
ieee80211_mesh.c Modify HWMP to be able to allocate memory for PREQ/PREP/PERR for all scenarios. 2012-03-06 21:20:16 +00:00
ieee80211_mesh.h Modify HWMP to be able to allocate memory for PREQ/PREP/PERR for all scenarios. 2012-03-06 21:20:16 +00:00
ieee80211_monitor.c count packets 2009-06-02 00:04:10 +00:00
ieee80211_monitor.h
ieee80211_node.c Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211_node.h Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211_output.c * Introduce new flag for QoS control field; 2012-03-04 05:52:26 +00:00
ieee80211_phy.c
ieee80211_phy.h add ieee80211_isratevalid 2009-05-29 23:39:16 +00:00
ieee80211_power.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
ieee80211_power.h
ieee80211_proto.c Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211_proto.h Remove now redundant mac argument. 2011-12-17 10:32:31 +00:00
ieee80211_radiotap.c Add missing \n's. 2012-03-08 23:46:42 +00:00
ieee80211_radiotap.h Add a radiotap vendor header definition. 2012-02-24 05:33:11 +00:00
ieee80211_ratectl_none.c Some device drivers calculate various timing related things based on 2010-11-13 14:59:54 +00:00
ieee80211_ratectl.c Instead of using the AMRR ratectl algo as default for drivers which have 2010-11-06 18:17:20 +00:00
ieee80211_ratectl.h The ni_rctls checks are used to verify that a ratectl algo has set up 2010-11-14 09:59:52 +00:00
ieee80211_regdomain.c
ieee80211_regdomain.h
ieee80211_rssadapt.c Remove GNU-style struct initialization. 2010-06-12 07:02:43 +00:00
ieee80211_rssadapt.h net80211 rate control framework (net80211 ratectl). 2010-04-07 15:29:13 +00:00
ieee80211_scan_sta.c When setting a fixed channel on adapters with 11n support the scan 2011-08-08 16:29:07 +00:00
ieee80211_scan.c Attempt to catch scan cancellations at exactly the wrong time from occuring. 2012-03-02 02:53:43 +00:00
ieee80211_scan.h Add 802.11h quiet time element support into net80211. 2011-11-08 04:00:24 +00:00
ieee80211_sta.c Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211_sta.h
ieee80211_superg.c distribute sysctl decls so global variables can be made static 2009-05-30 20:11:23 +00:00
ieee80211_superg.h make superg/fast-frames state dynamically-allocated (and indirect off 2009-05-02 20:16:55 +00:00
ieee80211_tdma.c Fix the situation where net80211 is built with IEEE80211_SUPPORT_TDMA but a module 2012-01-15 19:45:23 +00:00
ieee80211_tdma.h Overhaul monitor mode handling: 2009-05-20 20:00:40 +00:00
ieee80211_var.h Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211_wds.c Fix some corner cases in the net80211 sequence number retransmission 2011-05-04 02:23:59 +00:00
ieee80211_wds.h
ieee80211_xauth.c
ieee80211.c Create a new task to handle 802.11n channel width changes. 2012-03-25 03:11:57 +00:00
ieee80211.h * Introduce new flag for QoS control field; 2012-03-04 05:52:26 +00:00