aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-12-27 12:45:41 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-02-15 03:41:31 -0500
commit7bf9b9a0f0372d45b581f00173505fb76a9c5d23 (patch)
tree0dd97c8d203cefcc21f25bfc3abc77a3237aaf92 /include
parente1a0c6b3a4b27ed5f21291d0bbee2167ec201ef5 (diff)
wireless: define operating mode action frame
Define the action frame format, the VHT category and its action types and the field format and EID for operating mode notifications. The frame may be used outside of VHT context as well, so don't include "VHT" in the names. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ieee80211.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 7e8a498efe6d..67c1a6c45837 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -714,6 +714,30 @@ enum ieee80211_ht_chanwidth_values {
714 IEEE80211_HT_CHANWIDTH_ANY = 1, 714 IEEE80211_HT_CHANWIDTH_ANY = 1,
715}; 715};
716 716
717/**
718 * enum ieee80211_opmode_bits - VHT operating mode field bits
719 * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK: channel width mask
720 * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ: 20 MHz channel width
721 * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ: 40 MHz channel width
722 * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ: 80 MHz channel width
723 * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ: 160 MHz or 80+80 MHz channel width
724 * @IEEE80211_OPMODE_NOTIF_RX_NSS_MASK: number of spatial streams mask
725 * (the NSS value is the value of this field + 1)
726 * @IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT: number of spatial streams shift
727 * @IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF: indicates streams in SU-MIMO PPDU
728 * using a beamforming steering matrix
729 */
730enum ieee80211_vht_opmode_bits {
731 IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 3,
732 IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ = 0,
733 IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ = 1,
734 IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ = 2,
735 IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ = 3,
736 IEEE80211_OPMODE_NOTIF_RX_NSS_MASK = 0x70,
737 IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT = 4,
738 IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF = 0x80,
739};
740
717#define WLAN_SA_QUERY_TR_ID_LEN 2 741#define WLAN_SA_QUERY_TR_ID_LEN 2
718 742
719struct ieee80211_mgmt { 743struct ieee80211_mgmt {
@@ -844,6 +868,10 @@ struct ieee80211_mgmt {
844 __le16 capability; 868 __le16 capability;
845 u8 variable[0]; 869 u8 variable[0];
846 } __packed tdls_discover_resp; 870 } __packed tdls_discover_resp;
871 struct {
872 u8 action_code;
873 u8 operating_mode;
874 } __packed vht_opmode_notif;
847 } u; 875 } u;
848 } __packed action; 876 } __packed action;
849 } u; 877 } u;
@@ -1598,6 +1626,7 @@ enum ieee80211_eid {
1598 1626
1599 WLAN_EID_VHT_CAPABILITY = 191, 1627 WLAN_EID_VHT_CAPABILITY = 191,
1600 WLAN_EID_VHT_OPERATION = 192, 1628 WLAN_EID_VHT_OPERATION = 192,
1629 WLAN_EID_OPMODE_NOTIF = 199,
1601 1630
1602 /* 802.11ad */ 1631 /* 802.11ad */
1603 WLAN_EID_NON_TX_BSSID_CAP = 83, 1632 WLAN_EID_NON_TX_BSSID_CAP = 83,
@@ -1652,6 +1681,7 @@ enum ieee80211_category {
1652 WLAN_CATEGORY_WMM = 17, 1681 WLAN_CATEGORY_WMM = 17,
1653 WLAN_CATEGORY_FST = 18, 1682 WLAN_CATEGORY_FST = 18,
1654 WLAN_CATEGORY_UNPROT_DMG = 20, 1683 WLAN_CATEGORY_UNPROT_DMG = 20,
1684 WLAN_CATEGORY_VHT = 21,
1655 WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, 1685 WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126,
1656 WLAN_CATEGORY_VENDOR_SPECIFIC = 127, 1686 WLAN_CATEGORY_VENDOR_SPECIFIC = 127,
1657}; 1687};
@@ -1677,6 +1707,13 @@ enum ieee80211_ht_actioncode {
1677 WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7, 1707 WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7,
1678}; 1708};
1679 1709
1710/* VHT action codes */
1711enum ieee80211_vht_actioncode {
1712 WLAN_VHT_ACTION_COMPRESSED_BF = 0,
1713 WLAN_VHT_ACTION_GROUPID_MGMT = 1,
1714 WLAN_VHT_ACTION_OPMODE_NOTIF = 2,
1715};
1716
1680/* Self Protected Action codes */ 1717/* Self Protected Action codes */
1681enum ieee80211_self_protected_actioncode { 1718enum ieee80211_self_protected_actioncode {
1682 WLAN_SP_RESERVED = 0, 1719 WLAN_SP_RESERVED = 0,