Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce0e1695 authored by Mahesh Palivela's avatar Mahesh Palivela Committed by Johannes Berg
Browse files

wireless: add VHT (802.11ac) definitions



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

Signed-off-by: default avatarMahesh Palivela <maheshp@posedge.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent c9b22fb8
Loading
Loading
Loading
Loading
+70 −0
Original line number Diff line number Diff line
@@ -1092,6 +1092,73 @@ struct ieee80211_ht_operation {
#define WLAN_HT_SMPS_CONTROL_STATIC	1
#define WLAN_HT_SMPS_CONTROL_DYNAMIC	3

#define VHT_MCS_SUPPORTED_SET_SIZE      8

struct ieee80211_vht_capabilities {
	__le32 vht_capabilities_info;
	u8 vht_supported_mcs_set[VHT_MCS_SUPPORTED_SET_SIZE];
} __packed;

struct ieee80211_vht_operation {
	u8 vht_op_info_chwidth;
	u8 vht_op_info_chan_center_freq_seg1_idx;
	u8 vht_op_info_chan_center_freq_seg2_idx;
	__le16 vht_basic_mcs_set;
} __packed;

/**
 * struct ieee80211_vht_mcs_info - VHT MCS information
 * @rx_mcs_map: RX MCS map 2 bits for each stream, total 8 streams
 * @rx_highest: Indicates highest long GI VHT PPDU data rate
 *	STA can receive. Rate expressed in units of 1 Mbps.
 *	If this field is 0 this value should not be used to
 *	consider the highest RX data rate supported.
 * @tx_mcs_map: TX MCS map 2 bits for each stream, total 8 streams
 * @tx_highest: Indicates highest long GI VHT PPDU data rate
 *	STA can transmit. Rate expressed in units of 1 Mbps.
 *	If this field is 0 this value should not be used to
 *	consider the highest TX data rate supported.
 */
struct ieee80211_vht_mcs_info {
	__le16 rx_mcs_map;
	__le16 rx_highest;
	__le16 tx_mcs_map;
	__le16 tx_highest;
} __packed;

#define IEEE80211_VHT_MCS_ZERO_TO_SEVEN_SUPPORT 0
#define IEEE80211_VHT_MCS_ZERO_TO_EIGHT_SUPPORT 1
#define IEEE80211_VHT_MCS_ZERO_TO_NINE_SUPPORT  2
#define IEEE80211_VHT_MCS_NOT_SUPPORTED 3

/* 802.11ac VHT Capabilities */
#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895                0x00000000
#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991                0x00000001
#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454               0x00000002
#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ              0x00000004
#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ     0x00000008
#define IEEE80211_VHT_CAP_RXLDPC                              0x00000010
#define IEEE80211_VHT_CAP_SHORT_GI_80                         0x00000020
#define IEEE80211_VHT_CAP_SHORT_GI_160                        0x00000040
#define IEEE80211_VHT_CAP_TXSTBC                              0x00000080
#define IEEE80211_VHT_CAP_RXSTBC_1                            0x00000100
#define IEEE80211_VHT_CAP_RXSTBC_2                            0x00000200
#define IEEE80211_VHT_CAP_RXSTBC_3                            0x00000300
#define IEEE80211_VHT_CAP_RXSTBC_4                            0x00000400
#define IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE               0x00000800
#define IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE               0x00001000
#define IEEE80211_VHT_CAP_BEAMFORMER_ANTENNAS_MAX             0x00006000
#define IEEE80211_VHT_CAP_SOUNDING_DIMENTION_MAX              0x00030000
#define IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE               0x00080000
#define IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE               0x00100000
#define IEEE80211_VHT_CAP_VHT_TXOP_PS                         0x00200000
#define IEEE80211_VHT_CAP_HTC_VHT                             0x00400000
#define IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT          0x00800000
#define IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_UNSOL_MFB   0x08000000
#define IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB     0x0c000000
#define IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN                  0x10000000
#define IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN                  0x20000000

/* Authentication algorithms */
#define WLAN_AUTH_OPEN 0
#define WLAN_AUTH_SHARED_KEY 1
@@ -1352,6 +1419,9 @@ enum ieee80211_eid {
	WLAN_EID_DSE_REGISTERED_LOCATION = 58,
	WLAN_EID_SUPPORTED_REGULATORY_CLASSES = 59,
	WLAN_EID_EXT_CHANSWITCH_ANN = 60,

	WLAN_EID_VHT_CAPABILITY = 191,
	WLAN_EID_VHT_OPERATION = 192,
};

/* Action category code */