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>
This commit is contained in:
Родитель
e1a0c6b3a4
Коммит
7bf9b9a0f0
|
@ -714,6 +714,30 @@ enum ieee80211_ht_chanwidth_values {
|
||||||
IEEE80211_HT_CHANWIDTH_ANY = 1,
|
IEEE80211_HT_CHANWIDTH_ANY = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum ieee80211_opmode_bits - VHT operating mode field bits
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK: channel width mask
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ: 20 MHz channel width
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ: 40 MHz channel width
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ: 80 MHz channel width
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ: 160 MHz or 80+80 MHz channel width
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_RX_NSS_MASK: number of spatial streams mask
|
||||||
|
* (the NSS value is the value of this field + 1)
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT: number of spatial streams shift
|
||||||
|
* @IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF: indicates streams in SU-MIMO PPDU
|
||||||
|
* using a beamforming steering matrix
|
||||||
|
*/
|
||||||
|
enum ieee80211_vht_opmode_bits {
|
||||||
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 3,
|
||||||
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ = 0,
|
||||||
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ = 1,
|
||||||
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ = 2,
|
||||||
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ = 3,
|
||||||
|
IEEE80211_OPMODE_NOTIF_RX_NSS_MASK = 0x70,
|
||||||
|
IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT = 4,
|
||||||
|
IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF = 0x80,
|
||||||
|
};
|
||||||
|
|
||||||
#define WLAN_SA_QUERY_TR_ID_LEN 2
|
#define WLAN_SA_QUERY_TR_ID_LEN 2
|
||||||
|
|
||||||
struct ieee80211_mgmt {
|
struct ieee80211_mgmt {
|
||||||
|
@ -844,6 +868,10 @@ struct ieee80211_mgmt {
|
||||||
__le16 capability;
|
__le16 capability;
|
||||||
u8 variable[0];
|
u8 variable[0];
|
||||||
} __packed tdls_discover_resp;
|
} __packed tdls_discover_resp;
|
||||||
|
struct {
|
||||||
|
u8 action_code;
|
||||||
|
u8 operating_mode;
|
||||||
|
} __packed vht_opmode_notif;
|
||||||
} u;
|
} u;
|
||||||
} __packed action;
|
} __packed action;
|
||||||
} u;
|
} u;
|
||||||
|
@ -1598,6 +1626,7 @@ enum ieee80211_eid {
|
||||||
|
|
||||||
WLAN_EID_VHT_CAPABILITY = 191,
|
WLAN_EID_VHT_CAPABILITY = 191,
|
||||||
WLAN_EID_VHT_OPERATION = 192,
|
WLAN_EID_VHT_OPERATION = 192,
|
||||||
|
WLAN_EID_OPMODE_NOTIF = 199,
|
||||||
|
|
||||||
/* 802.11ad */
|
/* 802.11ad */
|
||||||
WLAN_EID_NON_TX_BSSID_CAP = 83,
|
WLAN_EID_NON_TX_BSSID_CAP = 83,
|
||||||
|
@ -1652,6 +1681,7 @@ enum ieee80211_category {
|
||||||
WLAN_CATEGORY_WMM = 17,
|
WLAN_CATEGORY_WMM = 17,
|
||||||
WLAN_CATEGORY_FST = 18,
|
WLAN_CATEGORY_FST = 18,
|
||||||
WLAN_CATEGORY_UNPROT_DMG = 20,
|
WLAN_CATEGORY_UNPROT_DMG = 20,
|
||||||
|
WLAN_CATEGORY_VHT = 21,
|
||||||
WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126,
|
WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126,
|
||||||
WLAN_CATEGORY_VENDOR_SPECIFIC = 127,
|
WLAN_CATEGORY_VENDOR_SPECIFIC = 127,
|
||||||
};
|
};
|
||||||
|
@ -1677,6 +1707,13 @@ enum ieee80211_ht_actioncode {
|
||||||
WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7,
|
WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* VHT action codes */
|
||||||
|
enum ieee80211_vht_actioncode {
|
||||||
|
WLAN_VHT_ACTION_COMPRESSED_BF = 0,
|
||||||
|
WLAN_VHT_ACTION_GROUPID_MGMT = 1,
|
||||||
|
WLAN_VHT_ACTION_OPMODE_NOTIF = 2,
|
||||||
|
};
|
||||||
|
|
||||||
/* Self Protected Action codes */
|
/* Self Protected Action codes */
|
||||||
enum ieee80211_self_protected_actioncode {
|
enum ieee80211_self_protected_actioncode {
|
||||||
WLAN_SP_RESERVED = 0,
|
WLAN_SP_RESERVED = 0,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче