wireless: add VHT (802.11ac) definitions

Add the VHT definitions to be used by drivers supporting it.

Signed-off-by: Mahesh Palivela <maheshp@posedge.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: ce0e169529a2db1cd910d2d45a5713fcdc29f6e1
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: Iccbc9c8c1f0182c93d2476fd520d6d8070c5acdf
Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
cfg80211: allow advertising VHT capabilities

Allow drivers to advertise their VHT capabilities
and export them to userspace via nl80211.

Signed-off-by: Mahesh Palivela <maheshp@posedge.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: bf0c111ec80355ee9fe2e2bdb609a536b54768d8
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I467d7a3386053eb23d92e5f3f4e4a92a8e01c95f
Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
mac80211: include VHT capability IE in probe requests

Insert the VHT capability IE into probe requests.

Signed-off-by: Mahesh Palivela <maheshp@posedge.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: ba0afa2f22e1e3f332e45460f99328025d44564e
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[jjohnson@codeaurora.org: resolved 3.4 backport issues]
Change-Id: I3f9e19c85a76664abda65f4ef52672328ff31a0c
Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
mac80211: VHT (11ac) association.

Insert VHT IEs into association frames to allow
mac80211 to connect as a VHT client.

Signed-off-by: Mahesh Palivela <maheshp@posedge.com>
[clarify commit message]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: d545daba5357c1ca377a4fe917ccf4de3a3031e0
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[duttus@codeaurora.org: resolved 3.4 backport issues]
Change-Id: Idac8e490ad25636c7056101b9e8073830b74a783
Signed-off-by: Sunil Dutt <duttus@codeaurora.org>
ieee80211: Rename VHT cap struct

Rename struct ieee80211_vht_capabilities to ieee80211_vht_cap
and renamed its member vht_capabilities_info to vht_cap_info.

Signed-off-by: Mahesh Palivela <maheshp@posedge.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: d4950281d72d8845225e3a39dbeb366c40c824c9
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: Ib595d501a8049042f36640b5e8f0fa66ec8403f7
CRs-fixed: 452921
Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
{nl,cfg}80211: Peer STA VHT caps

To save STAs VHT caps in AP mode

Signed-off-by: Mahesh Palivela <maheshp@posedge.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: f461be3eff662f01a177ecea8c1d7b040bb6bfbe
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[duttus@codeaurora.org: backport to 3.4 excluding the change in
net/mac80211/cfg.c-This commit includes the changes from following commits
in include/linux/nl80211.h and net/wireless/nl80211.c to compile for
msm-3.4.
89a54e48b9cbb44aed1bf6cd712e087b96b6ae65:
nl80211: prepare for non-netdev wireless devs.
57b5ce072e7361218a8e2ea1d62960cbb71d9cff:
cfg80211: add cellular base station regulatory hint support.
ed44a951c72ab409f932b1c15914488308e86da2:
cfg80211/nl80211: Notify connection request failure in AP mode.
e39e5b5e7206767a0f1be0e5cb7acbd0db87ae60:
cfg80211: Allow user space to specify non-IEs to SAE Authentication]
Change-Id: I6030c8c16a146eff7db426346c232a9b1f396951
Signed-off-by: Sunil Dutt <duttus@codeaurora.org>
cfg80211: Pass station (extended) capability info to kernel

The information of the peer's capabilities and extended capabilities are
required for the driver to perform TDLS Peer UAPSD operations and off
channel operations. This information of the peer is passed from user space
using NL80211_CMD_SET_STATION command. This commit enhances
the function nl80211_set_station to pass the capability information of
the peer to the driver.

Similarly, there may be need for capability information for other modes,
so allow this to be provided with both add_station and change_station.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: 9d62a98617298c1da288f50e84c5dd67732e79b7
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I18b19ccdfdd2a6daca4fd5f878f9a8df2598a1e9
CRs-fixed: 452921
[duttus@codeaurora.org: backport to 3.4-This commit includes the
changes from following commits in include/linux/nl80211.h to compile
for msm-3.4.
ed47377154310fd2fd59d75fcdeb3d022344fb31 :
{nl,cfg}80211: add a flags word to scan requests.
3d9d1d6656a73ea8407734cfb00b81d14ef62d4b :
nl80211/cfg80211: support VHT channel configuration.
53cabad70ecf0c245b41285de64a74a6c3ee9933 :
nl80211: support P2P GO powersave configuration.
3b1c5a5307fb5277f395efdcf330c064d79df07d :
{cfg,nl}80211: mesh power mode primitives and userspace access.
77765eaf5cfb6b8dd98ec8b54b411d74ff6095f1 :
cfg80211/nl80211: add API for MAC address ACLs.
04f39047af2a6df64b763ea5a271db24879d0391 :
nl80211/cfg80211: add radar detection command/event.
a50df0c4c0d97170a6c43573612acacc43e62fe7 :
cfg80211: advertise extended capabilities to userspace.]
Signed-off-by: Sunil Dutt <duttus@codeaurora.org>
cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station

The information of the peer's capabilities is required for the driver
to perform TDLS Peer UAPSD operations. This information of the peer is
passed by the supplicant using NL80211_CMD_SET_STATION command. This
commit enhances the function nl80211_set_station to pass this
information of the peer to the driver in case this command is used
with the TDLS peer STA.

In addition, make the HT/VHT capability configuration handled more
consistently for other STA cases (reject both instead of just HT).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: df881293c6ba9a12868491a717b25cb14ec1fa4a
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
CRs-fixed: 452921
Change-Id: Idf5c8e29de9c81e3fc6e9faf9ea785e9b505d89b
[duttus@codeaurora.org: resolved 3.4 backport issues]
Signed-off-by: Sunil Dutt <duttus@codeaurora.org>
cfg80211: fix station change if TDLS isn't supported

Larry noticed (and bisected) that commit df881293c6ba9a12868491a717b25
"cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station"
broke secure connections. This is is the case only for drivers that
don't support TDLS, where any kind of change, even just the change of
authorized flag that is required for normal operation, was rejected
now. To fix this, remove the checks. I have some patches that will add
proper verification for all the different cases later.

Cc: Jouni Malinen <j@w1.fi>
Bisected-by: Larry Finger <Larry.Finger@lwfinger.net>
Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: 8c6d59ee3509acd474365c34db291b950d2e66bf
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I6620b36c9c8b6304e21c44894d1295316fb7884b
CRs-fixed: 452921
Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
nl80211/cfg80211: add VHT MCS support

Add support for reporting and calculating VHT MCSes.

Note that I'm not completely sure that the bitrate
calculations are correct, nor that they can't be
simplified.

Change-Id: Id4c132850a85ff59f0fc16396763ed717689bec0
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Git-commit: db9c64cf8d9d3fcbc34b09d037f266d1fc9f928c
Git-repo:
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>