freebsd-nq/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
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
ieee80211_adhoc.c
ieee80211_adhoc.h
ieee80211_ageq.c
ieee80211_ageq.h
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
ieee80211_amrr.h
ieee80211_crypto_ccmp.c
ieee80211_crypto_none.c
ieee80211_crypto_tkip.c
ieee80211_crypto_wep.c
ieee80211_crypto.c
ieee80211_crypto.h
ieee80211_ddb.c
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
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
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
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
ieee80211_power.c
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
ieee80211_ratectl.c
ieee80211_ratectl.h
ieee80211_regdomain.c
ieee80211_regdomain.h
ieee80211_rssadapt.c
ieee80211_rssadapt.h
ieee80211_scan_sta.c
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
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
ieee80211_superg.h
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
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
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