qcacld-3.0: [11AX] Add 11ax related IEs in dot11f.frms

Add 11ax related IEs in dot11f.frms file.

Add new IEs to support 11ax/High Efficiency(HE). HE capabilities and
HE Operation are the two new IEs added and the IE definition is based on
the 11ax D1.0 specification.

Change-Id: Iab4219a7c068faca0337f70f921ec178f7170952
CRs-Fixed: 1073481
This commit is contained in:
Krishna Kumaar Natarajan
2016-08-29 17:13:47 -07:00
committed by Sandeep Puligilla
parent 639c6ffd72
commit 7ee45235ca
3 changed files with 2228 additions and 1125 deletions

View File

@@ -2621,6 +2621,123 @@ IE MeasurementRequest (EID_MEAS_REQUEST) // 7.3.2.21
};
}
const SUB_EID_PPET = 1;
const SUB_EID_VHT_INFO = 2;
IE vendor_he_cap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x01)
{
{
htc_he:1;
twt_request:1;
twt_responder:1;
fragmentation:2;
max_num_frag_msdu:3;
min_frag_size:2;
trigger_frm_mac_pad:2;
multi_tid_aggr:3;
he_link_adaptation:2;
all_ack:1;
ul_mu_rsp_sched:1;
a_bsr:1;
broadcast_twt:1;
ba_32bit_bitmap:1;
mu_cascade:1;
ack_enabled_multitid:1;
dl_mu_ba:1;
omi_a_ctrl:1;
ofdma_ra:1;
max_ampdu_len:2;
amsdu_frag:1;
flex_twt_sched:1;
rx_ctrl_frame:1;
}
{
bsrp_ampdu_aggr:1;
qtp:1;
a_bqr:1;
reserved1:5;
}
{
dual_band:1;
chan_width:7;
rx_pream_puncturing:4;
device_class:1;
ldpc_coding:1;
he_ltf_gi_ppdu:2;
he_ltf_gi_ndp:2;
stbc:2;
doppler:2;
ul_mu:2;
dcm_enc_tx:3;
dcm_enc_rx:3;
ul_he_mu:1;
su_beamformer:1;
}
{
su_beamformee:1;
mu_beamformer:1;
bfee_sts_lt_80:3;
nsts_tol_lt_80:3;
bfee_sta_gt_80:3;
nsts_tot_gt_80:3;
num_sounding_lt_80:3;
num_sounding_gt_80:3;
su_feedback_tone16:1;
mu_feedback_tone16:1;
codebook_su:1;
codebook_mu:1;
beamforming_feedback:3;
he_er_su_ppdu:1;
dl_mu_mimo_part_bw:1;
ppet_present:1;
srp:1;
power_boost:1;
}
{
he_ltf_gi_4x:1;
reserved2:7;
}
{
nss_supported:3;
mcs_supported:3;
tx_bw_bitmap:5;
rx_bw_bitmap:5;
}
OPTIE IE ppe_threshold (SUB_EID_PPET)
{
{
nss_count:3;
ru_idx_mask:4;
ppet_b1:1;
}
ppet[1..24];
}
}
IE vht_info(SUB_EID_VHT_INFO)
{
chan_width, 1;
center_freq_seg0, 1;
center_freq_seg1, 1;
}
IE vendor_he_op (EID_VENDOR_SPECIFIC) OUI (0x00, 0x13, 0x74, 0x02)
{
{
bss_color: 6;
default_pe: 3;
twt_required: 1;
rts_threshold: 10;
partial_bss_col: 1;
maxbssid_ind: 8;
tx_bssid_ind: 1;
bss_col_disabled: 1;
dual_beacon: 1;
}
basic_mcs_nss[3];
MANDIE IE vht_info;
}
/////////////////////////////////////////////////////////////////////////////
// MULTIIEs //
/////////////////////////////////////////////////////////////////////////////
@@ -3012,6 +3129,8 @@ FRAME Beacon // C.f. Sec. 7.2.3.1
OPTIE ESEVersion;
OPTIE MBO_IE;
OPTIE QCN_IE;
OPTIE vendor_he_cap;
OPTIE vendor_he_op;
} // End frame Beacon.
// Ok, here's the story on Beacon1 & Beacon2. We presumably beacon a lot
@@ -3101,6 +3220,8 @@ FRAME Beacon2
OPTIE QComVendorIE;
OPTIE ESEVersion;
OPTIE QCN_IE;
OPTIE vendor_he_cap;
OPTIE vendor_he_op;
}
// This frame is just Beacon with its Fixed Fields stripped out. It's handy
@@ -3167,6 +3288,8 @@ FRAME BeaconIEs
OPTIE QComVendorIE;
OPTIE MBO_IE;
OPTIE QCN_IE;
OPTIE vendor_he_cap;
OPTIE vendor_he_op;
} // End frame BeaconIEs.
FRAME Disassociation // 7.3.3.3
@@ -3207,6 +3330,7 @@ FRAME AssocRequest // 7.2.3.4
OPTIE vendor_vht_ie;
OPTIE hs20vendor_ie;
OPTIE QCN_IE;
OPTIE vendor_he_cap;
} // End frame AssocRequest.
FRAME AssocResponse // 7.2.3.5
@@ -3242,6 +3366,8 @@ FRAME AssocResponse // 7.2.3.5
OPTIE QosMapSet;
OPTIE vendor_vht_ie;
OPTIE QCN_IE;
OPTIE vendor_he_cap;
OPTIE vendor_he_op;
} // End frame AssocResponse.
FRAME ReAssocRequest // 7.2.3.6
@@ -3280,6 +3406,7 @@ FRAME ReAssocRequest // 7.2.3.6
OPTIE QosMapSet;
OPTIE vendor_vht_ie;
OPTIE hs20vendor_ie;
OPTIE vendor_he_cap;
} // End frame ReAssocRequest.
FRAME ReAssocResponse // 7.2.3.7
@@ -3315,6 +3442,8 @@ FRAME ReAssocResponse // 7.2.3.7
OPTIE OBSSScanParameters;
OPTIE QosMapSet;
OPTIE vendor_vht_ie;
OPTIE vendor_he_cap;
OPTIE vendor_he_op;
} // End frame ReAssocResponse.
FRAME ProbeRequest // 7.2.3.8
@@ -3331,6 +3460,7 @@ FRAME ProbeRequest // 7.2.3.8
OPTIE VHTCaps;
OPTIE ExtCap;
OPTIE QCN_IE;
OPTIE vendor_he_cap;
} // End frame ProbeRequest.
FRAME ProbeResponse // 7.2.3.9
@@ -3390,6 +3520,8 @@ FRAME ProbeResponse // 7.2.3.9
OPTIE ESEVersion;
OPTIE MBO_IE;
OPTIE QCN_IE;
OPTIE vendor_he_cap;
OPTIE vendor_he_op;
} // End frame ProbeResponse.
FRAME Authentication // 7.2.3.10

View File

@@ -35,7 +35,7 @@
*
*
* This file was automatically generated by 'framesc'
* Tue Feb 14 11:22:39 2017 from the following file(s):
* Mon Mar 13 16:57:31 2017 from the following file(s):
*
* dot11f.frms
*
@@ -2276,6 +2276,48 @@ uint32_t dot11f_get_packed_ie_R1KH_ID(
}; /* End extern "C". */
#endif /* C++ */
/* EID 1 (0x01) */
typedef struct sDot11fIEppe_threshold {
uint8_t present;
uint8_t nss_count:3;
uint8_t ru_idx_mask:4;
uint8_t ppet_b1:1;
uint8_t num_ppet;
uint8_t ppet[24];
} tDot11fIEppe_threshold;
#define DOT11F_EID_PPE_THRESHOLD (1)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_PPE_THRESHOLD_MIN_LEN (2)
#define DOT11F_IE_PPE_THRESHOLD_MAX_LEN (25)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_ie_ppe_threshold(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEppe_threshold*);
uint32_t dot11f_pack_ie_ppe_threshold(
tpAniSirGlobal,
tDot11fIEppe_threshold *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ppe_threshold(
tpAniSirGlobal,
tDot11fIEppe_threshold *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 51 (0x33) */
typedef struct sDot11fIEAPChannelReport {
uint8_t present;
@@ -3684,6 +3726,46 @@ uint32_t dot11f_get_packed_ie_tgt_mac_addr(
}; /* End extern "C". */
#endif /* C++ */
/* EID 2 (0x02) */
typedef struct sDot11fIEvht_info {
uint8_t present;
uint8_t chan_width;
uint8_t center_freq_seg0;
uint8_t center_freq_seg1;
} tDot11fIEvht_info;
#define DOT11F_EID_VHT_INFO (2)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VHT_INFO_MIN_LEN (3)
#define DOT11F_IE_VHT_INFO_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_ie_vht_info(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEvht_info*);
uint32_t dot11f_pack_ie_vht_info(
tpAniSirGlobal,
tDot11fIEvht_info *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_vht_info(
tpAniSirGlobal,
tDot11fIEvht_info *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 195 (0xc3) */
typedef struct sDot11fIEvht_transmit_power_env {
uint8_t present;
@@ -7752,6 +7834,157 @@ uint32_t dot11f_get_packed_ie_sec_chan_offset_ele(
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x13, 0x74, 0x01} */
typedef struct sDot11fIEvendor_he_cap {
uint8_t present;
uint32_t htc_he:1;
uint32_t twt_request:1;
uint32_t twt_responder:1;
uint32_t fragmentation:2;
uint32_t max_num_frag_msdu:3;
uint32_t min_frag_size:2;
uint32_t trigger_frm_mac_pad:2;
uint32_t multi_tid_aggr:3;
uint32_t he_link_adaptation:2;
uint32_t all_ack:1;
uint32_t ul_mu_rsp_sched:1;
uint32_t a_bsr:1;
uint32_t broadcast_twt:1;
uint32_t ba_32bit_bitmap:1;
uint32_t mu_cascade:1;
uint32_t ack_enabled_multitid:1;
uint32_t dl_mu_ba:1;
uint32_t omi_a_ctrl:1;
uint32_t ofdma_ra:1;
uint32_t max_ampdu_len:2;
uint32_t amsdu_frag:1;
uint32_t flex_twt_sched:1;
uint32_t rx_ctrl_frame:1;
uint8_t bsrp_ampdu_aggr:1;
uint8_t qtp:1;
uint8_t a_bqr:1;
uint8_t reserved1:5;
uint32_t dual_band:1;
uint32_t chan_width:7;
uint32_t rx_pream_puncturing:4;
uint32_t device_class:1;
uint32_t ldpc_coding:1;
uint32_t he_ltf_gi_ppdu:2;
uint32_t he_ltf_gi_ndp:2;
uint32_t stbc:2;
uint32_t doppler:2;
uint32_t ul_mu:2;
uint32_t dcm_enc_tx:3;
uint32_t dcm_enc_rx:3;
uint32_t ul_he_mu:1;
uint32_t su_beamformer:1;
uint32_t su_beamformee:1;
uint32_t mu_beamformer:1;
uint32_t bfee_sts_lt_80:3;
uint32_t nsts_tol_lt_80:3;
uint32_t bfee_sta_gt_80:3;
uint32_t nsts_tot_gt_80:3;
uint32_t num_sounding_lt_80:3;
uint32_t num_sounding_gt_80:3;
uint32_t su_feedback_tone16:1;
uint32_t mu_feedback_tone16:1;
uint32_t codebook_su:1;
uint32_t codebook_mu:1;
uint32_t beamforming_feedback:3;
uint32_t he_er_su_ppdu:1;
uint32_t dl_mu_mimo_part_bw:1;
uint32_t ppet_present:1;
uint32_t srp:1;
uint32_t power_boost:1;
uint8_t he_ltf_gi_4x:1;
uint8_t reserved2:7;
uint16_t nss_supported:3;
uint16_t mcs_supported:3;
uint16_t tx_bw_bitmap:5;
uint16_t rx_bw_bitmap:5;
tDot11fIEppe_threshold ppe_threshold;
} tDot11fIEvendor_he_cap;
#define DOT11F_EID_VENDOR_HE_CAP (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VENDOR_HE_CAP_MIN_LEN (20)
#define DOT11F_IE_VENDOR_HE_CAP_MAX_LEN (47)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_ie_vendor_he_cap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEvendor_he_cap*);
uint32_t dot11f_pack_ie_vendor_he_cap(
tpAniSirGlobal,
tDot11fIEvendor_he_cap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_vendor_he_cap(
tpAniSirGlobal,
tDot11fIEvendor_he_cap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x13, 0x74, 0x02} */
typedef struct sDot11fIEvendor_he_op {
uint8_t present;
uint32_t bss_color:6;
uint32_t default_pe:3;
uint32_t twt_required:1;
uint32_t rts_threshold:10;
uint32_t partial_bss_col:1;
uint32_t maxbssid_ind:8;
uint32_t tx_bssid_ind:1;
uint32_t bss_col_disabled:1;
uint32_t dual_beacon:1;
uint8_t basic_mcs_nss[3];
tDot11fIEvht_info vht_info;
} tDot11fIEvendor_he_op;
#define DOT11F_EID_VENDOR_HE_OP (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VENDOR_HE_OP_MIN_LEN (11)
#define DOT11F_IE_VENDOR_HE_OP_MAX_LEN (16)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_ie_vendor_he_op(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEvendor_he_op*);
uint32_t dot11f_pack_ie_vendor_he_op(
tpAniSirGlobal,
tDot11fIEvendor_he_op *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_vendor_he_op(
tpAniSirGlobal,
tDot11fIEvendor_he_op *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x90, 0x4c} */
typedef struct sDot11fIEvendor_vht_ie {
uint8_t present;
@@ -7902,6 +8135,7 @@ typedef struct sDot11fAssocRequest{
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEvendor_he_cap vendor_he_cap;
} tDot11fAssocRequest;
#define DOT11F_ASSOCREQUEST (3)
@@ -7958,6 +8192,8 @@ typedef struct sDot11fAssocResponse{
tDot11fIEQosMapSet QosMapSet;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEvendor_he_cap vendor_he_cap;
tDot11fIEvendor_he_op vendor_he_op;
} tDot11fAssocResponse;
#define DOT11F_ASSOCRESPONSE (4)
@@ -8071,6 +8307,8 @@ typedef struct sDot11fBeacon{
tDot11fIEESEVersion ESEVersion;
tDot11fIEMBO_IE MBO_IE;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEvendor_he_cap vendor_he_cap;
tDot11fIEvendor_he_op vendor_he_op;
} tDot11fBeacon;
#define DOT11F_BEACON (6)
@@ -8166,6 +8404,8 @@ typedef struct sDot11fBeacon2{
tDot11fIEQComVendorIE QComVendorIE;
tDot11fIEESEVersion ESEVersion;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEvendor_he_cap vendor_he_cap;
tDot11fIEvendor_he_op vendor_he_op;
} tDot11fBeacon2;
#define DOT11F_BEACON2 (8)
@@ -8243,6 +8483,8 @@ typedef struct sDot11fBeaconIEs{
tDot11fIEQComVendorIE QComVendorIE;
tDot11fIEMBO_IE MBO_IE;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEvendor_he_cap vendor_he_cap;
tDot11fIEvendor_he_op vendor_he_op;
} tDot11fBeaconIEs;
#define DOT11F_BEACONIES (9)
@@ -8581,6 +8823,7 @@ typedef struct sDot11fProbeRequest{
tDot11fIEVHTCaps VHTCaps;
tDot11fIEExtCap ExtCap;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEvendor_he_cap vendor_he_cap;
} tDot11fProbeRequest;
#define DOT11F_PROBEREQUEST (21)
@@ -8657,6 +8900,8 @@ typedef struct sDot11fProbeResponse{
tDot11fIEESEVersion ESEVersion;
tDot11fIEMBO_IE MBO_IE;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEvendor_he_cap vendor_he_cap;
tDot11fIEvendor_he_op vendor_he_op;
} tDot11fProbeResponse;
#define DOT11F_PROBERESPONSE (22)
@@ -8799,6 +9044,7 @@ typedef struct sDot11fReAssocRequest{
tDot11fIEQosMapSet QosMapSet;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEvendor_he_cap vendor_he_cap;
} tDot11fReAssocRequest;
#define DOT11F_REASSOCREQUEST (26)
@@ -8855,6 +9101,8 @@ typedef struct sDot11fReAssocResponse{
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEQosMapSet QosMapSet;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEvendor_he_cap vendor_he_cap;
tDot11fIEvendor_he_op vendor_he_op;
} tDot11fReAssocResponse;
#define DOT11F_REASSOCRESPONSE (27)

File diff suppressed because it is too large Load Diff