freebsd-nq/sys/net80211
Adrian Chadd b83391bf44 Fix kern/196290 - don't announce 11n HTINFO rates if the channel is
configured as 11b.

This came up when debugging other issues surrounding scanning and
channel modes.

What's going on:

* The VAP comes up as an 11b VAP, but on an 11n capable NIC;
* .. it announces HTINFO and MCS rates;
* The AP thinks it's an 11n capable device and transmits 11n frames
  to the STA;
* But the STA is in 11b mode, and thus doesn't receive/ACK the frames.

It didn't happen for the ath(4) devices as the AR5416/AR9300 HALs
unconditionally enable MCS frame reception, even if the channel
mode is not 11n.  But the Intel NICs are configured in 11b/11a/11g
modes when doing those, even if 11n is enabled and available.

So, don't announce 11n capabilities if the VAP isn't on an 11n
channel when sending management assocation request / reassociation
request frames.

TODO:

* Lots more testing - 11n should be "upgraded" after association,
  and I just want to make sure I haven't broken 11n upgrade.
  I shouldn't have - this is only happening for /sending/ association
  requests, which APs aren't doing.

Tested:

* ath(4) APs (AR9331, AR7161+AR9280, AR934x)
* AR5416, STA mode
* Intel 5100, STA mode

PR:		kern/196290
2015-02-27 04:45:47 +00:00
..
_ieee80211.h
ieee80211_acl.c
ieee80211_action.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
ieee80211_action.h
ieee80211_adhoc.c Mechanically convert to if_inc_counter(). 2014-09-19 09:20:55 +00:00
ieee80211_adhoc.h
ieee80211_ageq.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
ieee80211_ageq.h
ieee80211_alq.c - Provide necessary includes, that before came via if.h pollution. 2013-10-28 22:26:03 +00:00
ieee80211_alq.h
ieee80211_amrr.c After much toying around with this AMRR initial rate stuff, 2014-08-20 09:10:03 +00:00
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 The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
ieee80211_dfs.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
ieee80211_dfs.h
ieee80211_freebsd.c To ease changes to underlying mbuf structure and the mbuf allocator, reduce 2015-01-05 09:58:32 +00:00
ieee80211_freebsd.h Add in some backwards compatability hacks to make -HEAD net80211 compile 2013-08-22 05:53:47 +00:00
ieee80211_hostap.c Mechanically convert to if_inc_counter(). 2014-09-19 09:20:55 +00:00
ieee80211_hostap.h
ieee80211_ht.c Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
ieee80211_ht.h
ieee80211_hwmp.c Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
ieee80211_input.c Mechanically convert to if_inc_counter(). 2014-09-19 09:20:55 +00:00
ieee80211_input.h
ieee80211_ioctl.c Use logical rather than bitwise OR in if() expression. 2014-04-26 23:22:49 +00:00
ieee80211_ioctl.h Update net80211 mesh struct ieee80211_meshgann_ie. 2013-02-07 21:20:28 +00:00
ieee80211_mesh.c Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
ieee80211_mesh.h HWMP: ic->raw_xmit didn't always point to correct ni. 2013-02-07 21:26:40 +00:00
ieee80211_monitor.c Mechanically convert to if_inc_counter(). 2014-09-19 09:20:55 +00:00
ieee80211_monitor.h
ieee80211_node.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
ieee80211_node.h Stop a mesh STA from flooding with peer frames. 2013-02-07 21:12:55 +00:00
ieee80211_output.c Fix kern/196290 - don't announce 11n HTINFO rates if the channel is 2015-02-27 04:45:47 +00:00
ieee80211_phy.c Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
ieee80211_phy.h Implement basic 802.11n awareness in the PHY and AMRR rate control code. 2013-07-04 21:16:49 +00:00
ieee80211_power.c Update ieee80211_sta_tim_notify() to do double duty - handle STA sleep 2014-12-21 04:58:45 +00:00
ieee80211_power.h Begin fleshing out support for net80211 provided (legacy) sleep management. 2014-04-24 01:39:53 +00:00
ieee80211_proto.c Rename definition of IEEE80211_FC1_WEP to IEEE80211_FC1_PROTECTED. 2014-01-08 08:06:56 +00:00
ieee80211_proto.h Make ieee80211_add_ssid() public. 2014-12-19 01:39:58 +00:00
ieee80211_radiotap.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
ieee80211_radiotap.h Add in the missing radiotap definitions from the sipsolutions.net 2013-01-08 06:59:21 +00:00
ieee80211_ratectl_none.c Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
ieee80211_ratectl.c Provide includes that are needed in these files, and before were read 2013-10-26 18:18:50 +00:00
ieee80211_ratectl.h Switch around the order of static inline to be in line with how it's 2015-01-11 18:43:45 +00:00
ieee80211_regdomain.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
ieee80211_regdomain.h
ieee80211_rssadapt.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
ieee80211_rssadapt.h
ieee80211_scan_sta.c Fix the scan handling for 11b->11g upgrades in a world where, well, 2014-12-18 05:17:18 +00:00
ieee80211_scan_sw.c Global-ify channel_type() - this fixes non-debug net80211 builds. 2015-01-06 18:25:10 +00:00
ieee80211_scan_sw.h Refactor and split out the net80211 software scan engine from the rest 2015-01-06 02:08:45 +00:00
ieee80211_scan.c Global-ify channel_type() - this fixes non-debug net80211 builds. 2015-01-06 18:25:10 +00:00
ieee80211_scan.h Refactor and split out the net80211 software scan engine from the rest 2015-01-06 02:08:45 +00:00
ieee80211_sta.c Break out the unicast/multicast TIM bit setting into "set something 2014-12-21 04:48:54 +00:00
ieee80211_sta.h
ieee80211_superg.c Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
ieee80211_superg.h
ieee80211_tdma.c Don't return ENOTSUPP here - the net80211 pluggable ioctl API will treat 2013-08-18 23:40:30 +00:00
ieee80211_tdma.h
ieee80211_var.h Global-ify channel_type() - this fixes non-debug net80211 builds. 2015-01-06 18:25:10 +00:00
ieee80211_wds.c Mechanically convert to if_inc_counter(). 2014-09-19 09:20:55 +00:00
ieee80211_wds.h
ieee80211_xauth.c
ieee80211.c Global-ify channel_type() - this fixes non-debug net80211 builds. 2015-01-06 18:25:10 +00:00
ieee80211.h Rename definition of IEEE80211_FC1_WEP to IEEE80211_FC1_PROTECTED. 2014-01-08 08:06:56 +00:00