qcacld-3.0: Update dot11f frame spec files for 6Ghz support

Add 6GHZ operation information element structure and HE extended
capabilities for 6GHZ information element structure to dot11f frame
specification and parsing files. Also add them as optional IE in
required managment frames.

Change-Id: I5da20543c245e3e02806a20fbfe3ff4326db61f4
CRs-fixed: 2530409
This commit is contained in:
Manikandan Mohan 2019-07-24 11:06:37 -07:00 • committed by nshrivas
commit 5953215f9b
3 changed files with 1295 additions and 967 deletions

View file

@ -2988,7 +2988,8 @@ IE he_op (EID_EXTN_ID_ELEMENT) OUI (0x24)
}
{
er_su_disable: 1;
reserved2: 7;
oper_info_6g_present: 1;
reserved2: 6;
}
{
bss_color:6;
@ -3012,6 +3013,35 @@ IE he_op (EID_EXTN_ID_ELEMENT) OUI (0x24)
data, 1;
}
};
OPTIONAL UNION oper_info_6g (DISCRIMINATOR oper_info_6g_present)
{
info (oper_info_6g_present IS 1)
{
primary_ch, 1;
{ // control
ch_width: 2;
dup_bcon: 1;
reserved: 5;
}
center_freq_seg0, 1;
center_freq_seg1, 1;
min_rate, 1;
}
};
}
IE he_6ghz_band_cap (EID_EXTN_ID_ELEMENT) OUI (0x3B)
{
{ // capabilities_information
min_mpdu_start_spacing :3;
max_ampdu_len_exp: 3;
max_mpdu_len: 3;
sm_pow_save: 2;
rd_responder: 1;
rx_ant_pattern_consistency: 1;
tx_ant_pattern_consistency: 1;
reserved: 2;
}
}
IE mu_edca_param_set (EID_EXTN_ID_ELEMENT) OUI (0x26)
@ -3480,6 +3510,7 @@ FRAME Beacon // C.f. Sec. 7.2.3.1
OPTIE qcn_ie;
OPTIE he_cap;
OPTIE he_op;
OPTIE he_6ghz_band_cap;
OPTIE bss_color_change;
OPTIE mu_edca_param_set;
OPTIE esp_information;
@ -3576,6 +3607,7 @@ FRAME Beacon2
OPTIE qcn_ie;
OPTIE he_cap;
OPTIE he_op;
OPTIE he_6ghz_band_cap;
OPTIE bss_color_change;
OPTIE mu_edca_param_set;
OPTIE esp_information;
@ -3648,6 +3680,7 @@ FRAME BeaconIEs
OPTIE qcn_ie;
OPTIE he_cap;
OPTIE he_op;
OPTIE he_6ghz_band_cap;
OPTIE bss_color_change;
OPTIE mu_edca_param_set;
OPTIE esp_information;
@ -3699,6 +3732,7 @@ FRAME AssocRequest // 7.2.3.4
OPTIE hs20vendor_ie;
OPTIE qcn_ie;
OPTIE he_cap;
OPTIE he_6ghz_band_cap;
OPTIE osen_ie;
OPTIE roaming_consortium_sel;
} // End frame AssocRequest.
@ -3744,6 +3778,7 @@ FRAME AssocResponse // 7.2.3.5
OPTIE qcn_ie;
OPTIE he_cap;
OPTIE he_op;
OPTIE he_6ghz_band_cap;
OPTIE bss_color_change;
OPTIE mu_edca_param_set;
OPTIE MBO_IE;
@ -3786,6 +3821,7 @@ FRAME ReAssocRequest // 7.2.3.6
OPTIE vendor_vht_ie;
OPTIE hs20vendor_ie;
OPTIE he_cap;
OPTIE he_6ghz_band_cap;
} // End frame ReAssocRequest.
FRAME ReAssocResponse // 7.2.3.7
@ -3823,6 +3859,7 @@ FRAME ReAssocResponse // 7.2.3.7
OPTIE vendor_vht_ie;
OPTIE he_cap;
OPTIE he_op;
OPTIE he_6ghz_band_cap;
OPTIE bss_color_change;
OPTIE mu_edca_param_set;
OPTIE MBO_IE;
@ -3843,6 +3880,7 @@ FRAME ProbeRequest // 7.2.3.8
OPTIE ExtCap;
OPTIE qcn_ie;
OPTIE he_cap;
OPTIE he_6ghz_band_cap;
} // End frame ProbeRequest.
FRAME ProbeResponse // 7.2.3.9
@ -3905,6 +3943,7 @@ FRAME ProbeResponse // 7.2.3.9
OPTIE qcn_ie;
OPTIE he_cap;
OPTIE he_op;
OPTIE he_6ghz_band_cap;
OPTIE bss_color_change;
OPTIE mu_edca_param_set;
OPTIE esp_information;

View file

@ -26,7 +26,7 @@
*
*
* This file was automatically generated by 'framesc'
* Wed Aug 7 14:47:51 2019 from the following file(s):
* Fri Sep 13 10:34:49 2019 from the following file(s):
*
* dot11f.frms
*
@ -8863,6 +8863,52 @@ uint32_t dot11f_get_packed_ie_fragment_ie(
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 59 (0x3b) */
typedef struct sDot11fIEhe_6ghz_band_cap {
uint8_t present;
uint16_t min_mpdu_start_spacing:3;
uint16_t max_ampdu_len_exp:3;
uint16_t max_mpdu_len:3;
uint16_t sm_pow_save:2;
uint16_t rd_responder:1;
uint16_t rx_ant_pattern_consistency:1;
uint16_t tx_ant_pattern_consistency:1;
uint16_t reserved:2;
} tDot11fIEhe_6ghz_band_cap;
#define DOT11F_EID_HE_6GHZ_BAND_CAP (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HE_6GHZ_BAND_CAP_MIN_LEN (2)
#define DOT11F_IE_HE_6GHZ_BAND_CAP_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_he_6ghz_band_cap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEhe_6ghz_band_cap*,
bool);
uint32_t dot11f_pack_ie_he_6ghz_band_cap(
tpAniSirGlobal,
tDot11fIEhe_6ghz_band_cap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_he_6ghz_band_cap(
tpAniSirGlobal,
tDot11fIEhe_6ghz_band_cap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 35 (0x23) */
typedef struct sDot11fIEhe_cap {
uint8_t present;
@ -9016,7 +9062,8 @@ typedef struct sDot11fIEhe_op {
uint16_t vht_oper_present:1;
uint16_t co_located_bss:1;
uint8_t er_su_disable:1;
uint8_t reserved2:7;
uint8_t oper_info_6g_present:1;
uint8_t reserved2:6;
uint8_t bss_color:6;
uint8_t partial_bss_col:1;
uint8_t bss_col_disabled:1;
@ -9033,6 +9080,17 @@ typedef struct sDot11fIEhe_op {
uint8_t data;
} info; /* co_located_bss = 1 */
} maxbssid_ind;
union {
struct {
uint8_t primary_ch;
uint8_t ch_width:2;
uint8_t dup_bcon:1;
uint8_t reserved:5;
uint8_t center_freq_seg0;
uint8_t center_freq_seg1;
uint8_t min_rate;
} info; /* oper_info_6g_present = 1 */
} oper_info_6g;
} tDot11fIEhe_op;
#define DOT11F_EID_HE_OP (255)
@ -9040,7 +9098,7 @@ typedef struct sDot11fIEhe_op {
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HE_OP_MIN_LEN (6)
#define DOT11F_IE_HE_OP_MAX_LEN (10)
#define DOT11F_IE_HE_OP_MAX_LEN (15)
#ifdef __cplusplus
extern "C" {
@ -9587,6 +9645,7 @@ typedef struct sDot11fAssocRequest{
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
tDot11fIEosen_ie osen_ie;
tDot11fIEroaming_consortium_sel roaming_consortium_sel;
} tDot11fAssocRequest;
@ -9653,6 +9712,7 @@ typedef struct sDot11fAssocResponse{
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEMBO_IE MBO_IE;
@ -9776,6 +9836,7 @@ typedef struct sDot11fBeacon{
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
@ -9878,6 +9939,7 @@ typedef struct sDot11fBeacon2{
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
@ -9961,6 +10023,7 @@ typedef struct sDot11fBeaconIEs{
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
@ -10290,19 +10353,20 @@ uint32_t dot11f_get_packed_operating_mode_size(tpAniSirGlobal pCtx,
#endif /* C++ */
typedef struct sDot11fProbeRequest{
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIERequestedInfo RequestedInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIEDSParams DSParams;
tDot11fIEHTCaps HTCaps;
tDot11fIEWscProbeReq WscProbeReq;
tDot11fIEWFATPC WFATPC;
tDot11fIEP2PProbeReq P2PProbeReq;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEExtCap ExtCap;
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIERequestedInfo RequestedInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIEDSParams DSParams;
tDot11fIEHTCaps HTCaps;
tDot11fIEWscProbeReq WscProbeReq;
tDot11fIEWFATPC WFATPC;
tDot11fIEP2PProbeReq P2PProbeReq;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEExtCap ExtCap;
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
} tDot11fProbeRequest;
#define DOT11F_PROBEREQUEST (21)
@ -10382,6 +10446,7 @@ typedef struct sDot11fProbeResponse{
tDot11fIEqcn_ie qcn_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
@ -10528,6 +10593,7 @@ typedef struct sDot11fReAssocRequest{
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
} tDot11fReAssocRequest;
#define DOT11F_REASSOCREQUEST (26)
@ -10586,6 +10652,7 @@ typedef struct sDot11fReAssocResponse{
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEMBO_IE MBO_IE;

File diff suppressed because it is too large Load diff