mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
qcacld-3.0: Change the QCN IE attributes to TLV type
Use the TLV type for QCN IE attributes to fix the duplicate IE detection and update QCN IE with new attributes. Change-Id: Ia1be2d1754a3ed82ad3f01b68e719c504f624309 CRs-Fixed: 2760822
This commit is contained in:
parent
ed59a452d8
commit
65f53c0f74
5 changed files with 1240 additions and 615 deletions
|
|
@ -2613,27 +2613,74 @@ IE TimeAdvertisement (EID_TIME_ADVERTISEMENT) // 8.4.2.63
|
|||
time_error[5];
|
||||
}
|
||||
|
||||
const QTI_VERSION_ATTR_ID = 1;
|
||||
const QTI_VHT_MCS_10_11_ATTR_ID = 2;
|
||||
const QTI_HE_MCS_11_12_ATTR_ID = 9;
|
||||
const TLV_VERSION_ATTR_ID = 1;
|
||||
const TLV_VHT_MCS_10_11_ATTR_ID = 2;
|
||||
const TLV_HE_400NS_SGI_SUPP_ATTR_ID = 3;
|
||||
const TLV_HE_2XLTF_160_80P80_SUPP_ATTR_ID = 4;
|
||||
const TLV_HE_DL_OFDMA_SUPPP_ATTR_ID = 5;
|
||||
const TLV_TRANSITION_REASONP_ATTR_ID = 6;
|
||||
const TLV_TRANSITION_REJECTIONP_ATTR_ID = 7;
|
||||
const TLV_HE_DL_MUMIMO_SUPPP_ATTR_ID = 8;
|
||||
const TLV_HE_MCS_11_12_ATTR_ID = 9;
|
||||
|
||||
IE qcn_ie (EID_VENDOR_SPECIFIC) OUI ( 0x8C, 0xFD, 0xF0, 0x01 )
|
||||
TLV qcn_version(TLV_VERSION_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
version, 1;
|
||||
sub_version, 1;
|
||||
}
|
||||
TLV vht_mcs11_attr (TLV_VHT_MCS_10_11_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
OPTIE IE version_attr (QTI_VERSION_ATTR_ID)
|
||||
{
|
||||
version, 1;
|
||||
sub_version, 1;
|
||||
}
|
||||
|
||||
OPTIE IE vht_mcs11_attr (QTI_VHT_MCS_10_11_ATTR_ID)
|
||||
{
|
||||
vht_mcs_10_11_supp, 1;
|
||||
}
|
||||
}
|
||||
TLV he_400ns_sgi_attr (TLV_HE_400NS_SGI_SUPP_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
he_ltf1x_400ns_sgi, 1;
|
||||
he_ltf2x_400ns_sgi, 1;
|
||||
he_ltf4x_400ns_sgi, 1;
|
||||
}
|
||||
|
||||
OPTIE IE he_mcs13_attr (QTI_HE_MCS_11_12_ATTR_ID)
|
||||
{
|
||||
he_mcs_12_13_supp, 2;
|
||||
}
|
||||
TLV he_2xltf_160mhz_supp (TLV_HE_2XLTF_160_80P80_SUPP_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
he_2xltf_160MHz_supp, 1;
|
||||
}
|
||||
|
||||
TLV he_dl_ofdma_attr (TLV_HE_DL_OFDMA_SUPPP_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
he_dl_ofdma_supp, 1;
|
||||
}
|
||||
|
||||
TLV trans_reasonp_attr (TLV_TRANSITION_REASONP_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
transition_reasonp, 1;
|
||||
}
|
||||
|
||||
TLV trans_rejectp_attr (TLV_TRANSITION_REJECTIONP_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
transition_rejp, 1;
|
||||
}
|
||||
|
||||
TLV he_dl_mumimo_attr (TLV_HE_DL_MUMIMO_SUPPP_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
he_dl_mumimo_supp, 1;
|
||||
}
|
||||
|
||||
TLV he_mcs13_attr (TLV_HE_MCS_11_12_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
he_mcs_12_13_supp_80, 1;
|
||||
he_mcs_12_13_supp_160, 1;
|
||||
}
|
||||
|
||||
MULTIIE qcn_ie (EID_VENDOR_SPECIFIC) OUI ( 0x8C, 0xFD, 0xF0, 0x01 )
|
||||
{
|
||||
OPTIONALTLV qcn_version;
|
||||
OPTIONALTLV vht_mcs11_attr;
|
||||
OPTIONALTLV he_400ns_sgi_attr;
|
||||
OPTIONALTLV he_2xltf_160mhz_supp;
|
||||
OPTIONALTLV he_dl_ofdma_attr;
|
||||
OPTIONALTLV trans_reasonp_attr;
|
||||
OPTIONALTLV trans_rejectp_attr;
|
||||
OPTIONALTLV he_dl_mumimo_attr;
|
||||
OPTIONALTLV he_mcs13_attr;
|
||||
}
|
||||
|
||||
IE esp_information (EID_EXTN_ID_ELEMENT) OUI ( 0x0B )
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
*
|
||||
*
|
||||
* This file was automatically generated by 'framesc'
|
||||
* Fri Aug 14 16:33:26 2020 from the following file(s):
|
||||
* Tue Sep 29 11:31:39 2020 from the following file(s):
|
||||
*
|
||||
* dot11f.frms
|
||||
*
|
||||
|
|
@ -2212,6 +2212,199 @@ uint32_t dot11f_get_packed_tlv_cellular_data_con_pref(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 4 (0x0004) */
|
||||
typedef struct sDot11fTLVhe_2xltf_160mhz_supp {
|
||||
uint8_t present;
|
||||
uint8_t he_2xltf_160MHz_supp;
|
||||
} tDot11fTLVhe_2xltf_160mhz_supp;
|
||||
|
||||
#define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP (4)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_he_2xltf_160mhz_supp(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVhe_2xltf_160mhz_supp*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_he_2xltf_160mhz_supp(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_2xltf_160mhz_supp *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_he_2xltf_160mhz_supp(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_2xltf_160mhz_supp *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 3 (0x0003) */
|
||||
typedef struct sDot11fTLVhe_400ns_sgi_attr {
|
||||
uint8_t present;
|
||||
uint8_t he_ltf1x_400ns_sgi;
|
||||
uint8_t he_ltf2x_400ns_sgi;
|
||||
uint8_t he_ltf4x_400ns_sgi;
|
||||
} tDot11fTLVhe_400ns_sgi_attr;
|
||||
|
||||
#define DOT11F_TLV_HE_400NS_SGI_ATTR (3)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_HE_400NS_SGI_ATTR_MIN_LEN (3)
|
||||
|
||||
#define DOT11F_TLV_HE_400NS_SGI_ATTR_MAX_LEN (3)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_he_400ns_sgi_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVhe_400ns_sgi_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_he_400ns_sgi_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_400ns_sgi_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_he_400ns_sgi_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_400ns_sgi_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 8 (0x0008) */
|
||||
typedef struct sDot11fTLVhe_dl_mumimo_attr {
|
||||
uint8_t present;
|
||||
uint8_t he_dl_mumimo_supp;
|
||||
} tDot11fTLVhe_dl_mumimo_attr;
|
||||
|
||||
#define DOT11F_TLV_HE_DL_MUMIMO_ATTR (8)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_HE_DL_MUMIMO_ATTR_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_TLV_HE_DL_MUMIMO_ATTR_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_he_dl_mumimo_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVhe_dl_mumimo_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_he_dl_mumimo_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_dl_mumimo_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_he_dl_mumimo_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_dl_mumimo_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 5 (0x0005) */
|
||||
typedef struct sDot11fTLVhe_dl_ofdma_attr {
|
||||
uint8_t present;
|
||||
uint8_t he_dl_ofdma_supp;
|
||||
} tDot11fTLVhe_dl_ofdma_attr;
|
||||
|
||||
#define DOT11F_TLV_HE_DL_OFDMA_ATTR (5)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_HE_DL_OFDMA_ATTR_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_TLV_HE_DL_OFDMA_ATTR_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_he_dl_ofdma_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVhe_dl_ofdma_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_he_dl_ofdma_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_dl_ofdma_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_he_dl_ofdma_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_dl_ofdma_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 9 (0x0009) */
|
||||
typedef struct sDot11fTLVhe_mcs13_attr {
|
||||
uint8_t present;
|
||||
uint8_t he_mcs_12_13_supp_80;
|
||||
uint8_t he_mcs_12_13_supp_160;
|
||||
} tDot11fTLVhe_mcs13_attr;
|
||||
|
||||
#define DOT11F_TLV_HE_MCS13_ATTR (9)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_HE_MCS13_ATTR_MIN_LEN (2)
|
||||
|
||||
#define DOT11F_TLV_HE_MCS13_ATTR_MAX_LEN (2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_he_mcs13_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVhe_mcs13_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_he_mcs13_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_mcs13_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_he_mcs13_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVhe_mcs13_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 1 (0x0001) */
|
||||
typedef struct sDot11fTLVmbo_ap_cap {
|
||||
uint8_t present;
|
||||
|
|
@ -2331,6 +2524,45 @@ uint32_t dot11f_get_packed_tlv_oce_cap(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 1 (0x0001) */
|
||||
typedef struct sDot11fTLVqcn_version {
|
||||
uint8_t present;
|
||||
uint8_t version;
|
||||
uint8_t sub_version;
|
||||
} tDot11fTLVqcn_version;
|
||||
|
||||
#define DOT11F_TLV_QCN_VERSION (1)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_QCN_VERSION_MIN_LEN (2)
|
||||
|
||||
#define DOT11F_TLV_QCN_VERSION_MAX_LEN (2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_qcn_version(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVqcn_version*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_qcn_version(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVqcn_version *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_qcn_version(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVqcn_version *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 103 (0x0067) */
|
||||
typedef struct sDot11fTLVreduced_wan_metrics {
|
||||
uint8_t present;
|
||||
|
|
@ -2409,6 +2641,82 @@ uint32_t dot11f_get_packed_tlv_rssi_assoc_rej(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 6 (0x0006) */
|
||||
typedef struct sDot11fTLVtrans_reasonp_attr {
|
||||
uint8_t present;
|
||||
uint8_t transition_reasonp;
|
||||
} tDot11fTLVtrans_reasonp_attr;
|
||||
|
||||
#define DOT11F_TLV_TRANS_REASONP_ATTR (6)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_TRANS_REASONP_ATTR_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_TLV_TRANS_REASONP_ATTR_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_trans_reasonp_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVtrans_reasonp_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_trans_reasonp_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVtrans_reasonp_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_trans_reasonp_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVtrans_reasonp_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 7 (0x0007) */
|
||||
typedef struct sDot11fTLVtrans_rejectp_attr {
|
||||
uint8_t present;
|
||||
uint8_t transition_rejp;
|
||||
} tDot11fTLVtrans_rejectp_attr;
|
||||
|
||||
#define DOT11F_TLV_TRANS_REJECTP_ATTR (7)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_TRANS_REJECTP_ATTR_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_TLV_TRANS_REJECTP_ATTR_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_trans_rejectp_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVtrans_rejectp_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_trans_rejectp_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVtrans_rejectp_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_trans_rejectp_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVtrans_rejectp_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 6 (0x0006) */
|
||||
typedef struct sDot11fTLVtransition_reason {
|
||||
uint8_t present;
|
||||
|
|
@ -2485,6 +2793,44 @@ uint32_t dot11f_get_packed_tlv_transition_reject_reason(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 2 (0x0002) */
|
||||
typedef struct sDot11fTLVvht_mcs11_attr {
|
||||
uint8_t present;
|
||||
uint8_t vht_mcs_10_11_supp;
|
||||
} tDot11fTLVvht_mcs11_attr;
|
||||
|
||||
#define DOT11F_TLV_VHT_MCS11_ATTR (2)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_VHT_MCS11_ATTR_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_TLV_VHT_MCS11_ATTR_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_vht_mcs11_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVvht_mcs11_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_vht_mcs11_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVvht_mcs11_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_vht_mcs11_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVvht_mcs11_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 16 (0x0010) */
|
||||
typedef struct sDot11fTLVP2PInterface {
|
||||
uint8_t present;
|
||||
|
|
@ -2730,124 +3076,6 @@ uint32_t dot11f_get_packed_ie_R1KH_ID(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 9 (0x09) */
|
||||
typedef struct sDot11fIEhe_mcs13_attr {
|
||||
uint8_t present;
|
||||
uint16_t he_mcs_12_13_supp;
|
||||
} tDot11fIEhe_mcs13_attr;
|
||||
|
||||
#define DOT11F_EID_HE_MCS13_ATTR (9)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_HE_MCS13_ATTR_MIN_LEN (2)
|
||||
|
||||
#define DOT11F_IE_HE_MCS13_ATTR_MAX_LEN (2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
__must_check uint32_t dot11f_unpack_ie_he_mcs13_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEhe_mcs13_attr*,
|
||||
bool);
|
||||
|
||||
uint32_t dot11f_pack_ie_he_mcs13_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEhe_mcs13_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_he_mcs13_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEhe_mcs13_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 1 (0x01) */
|
||||
typedef struct sDot11fIEversion_attr {
|
||||
uint8_t present;
|
||||
uint8_t version;
|
||||
uint8_t sub_version;
|
||||
} tDot11fIEversion_attr;
|
||||
|
||||
#define DOT11F_EID_VERSION_ATTR (1)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_VERSION_ATTR_MIN_LEN (2)
|
||||
|
||||
#define DOT11F_IE_VERSION_ATTR_MAX_LEN (2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
__must_check uint32_t dot11f_unpack_ie_version_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEversion_attr*,
|
||||
bool);
|
||||
|
||||
uint32_t dot11f_pack_ie_version_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEversion_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_version_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEversion_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 2 (0x02) */
|
||||
typedef struct sDot11fIEvht_mcs11_attr {
|
||||
uint8_t present;
|
||||
uint8_t vht_mcs_10_11_supp;
|
||||
} tDot11fIEvht_mcs11_attr;
|
||||
|
||||
#define DOT11F_EID_VHT_MCS11_ATTR (2)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_VHT_MCS11_ATTR_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_IE_VHT_MCS11_ATTR_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
__must_check uint32_t dot11f_unpack_ie_vht_mcs11_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEvht_mcs11_attr*,
|
||||
bool);
|
||||
|
||||
uint32_t dot11f_pack_ie_vht_mcs11_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEvht_mcs11_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_vht_mcs11_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEvht_mcs11_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 51 (0x33) */
|
||||
typedef struct sDot11fIEAPChannelReport {
|
||||
uint8_t present;
|
||||
|
|
@ -9371,12 +9599,18 @@ uint32_t dot11f_get_packed_ie_osen_ie(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 221 (0xdd) {OUI 0x8c, 0xfd, 0xf0, 0x01} */
|
||||
/* EID 221 (0xdd) {OUI 0x8c, 0xfd, 0xf0, 0x01} (Multi-IE) */
|
||||
typedef struct sDot11fIEqcn_ie {
|
||||
uint8_t present;
|
||||
tDot11fIEversion_attr version_attr;
|
||||
tDot11fIEvht_mcs11_attr vht_mcs11_attr;
|
||||
tDot11fIEhe_mcs13_attr he_mcs13_attr;
|
||||
uint8_t present;
|
||||
tDot11fTLVqcn_version qcn_version;
|
||||
tDot11fTLVvht_mcs11_attr vht_mcs11_attr;
|
||||
tDot11fTLVhe_400ns_sgi_attr he_400ns_sgi_attr;
|
||||
tDot11fTLVhe_2xltf_160mhz_supp he_2xltf_160mhz_supp;
|
||||
tDot11fTLVhe_dl_ofdma_attr he_dl_ofdma_attr;
|
||||
tDot11fTLVtrans_reasonp_attr trans_reasonp_attr;
|
||||
tDot11fTLVtrans_rejectp_attr trans_rejectp_attr;
|
||||
tDot11fTLVhe_dl_mumimo_attr he_dl_mumimo_attr;
|
||||
tDot11fTLVhe_mcs13_attr he_mcs13_attr;
|
||||
} tDot11fIEqcn_ie;
|
||||
|
||||
#define DOT11F_EID_QCN_IE (221)
|
||||
|
|
@ -9384,7 +9618,7 @@ typedef struct sDot11fIEqcn_ie {
|
|||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_QCN_IE_MIN_LEN (4)
|
||||
|
||||
#define DOT11F_IE_QCN_IE_MAX_LEN (15)
|
||||
#define DOT11F_IE_QCN_IE_MAX_LEN (35)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
|
|
|||
|
|
@ -6552,7 +6552,8 @@ void lim_add_he_cap(struct mac_context *mac_ctx, struct pe_session *pe_session,
|
|||
sizeof(add_sta_params->he_config));
|
||||
|
||||
add_sta_params->he_mcs_12_13_map =
|
||||
assoc_req->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp;
|
||||
assoc_req->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp_80 |
|
||||
assoc_req->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp_160 << 8;
|
||||
|
||||
if (lim_is_he_6ghz_band(pe_session))
|
||||
lim_update_he_6ghz_band_caps(mac_ctx,
|
||||
|
|
@ -6661,7 +6662,8 @@ void lim_intersect_sta_he_caps(struct mac_context *mac_ctx,
|
|||
if (assoc_req->qcn_ie.present &&
|
||||
assoc_req->qcn_ie.he_mcs13_attr.present) {
|
||||
sta_ds->he_mcs_12_13_map =
|
||||
assoc_req->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp;
|
||||
assoc_req->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp_80 |
|
||||
assoc_req->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp_160 << 8;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
|
@ -6833,7 +6835,8 @@ void lim_update_stads_he_caps(struct mac_context *mac_ctx,
|
|||
if (assoc_rsp->qcn_ie.present &&
|
||||
assoc_rsp->qcn_ie.he_mcs13_attr.present) {
|
||||
sta_ds->he_mcs_12_13_map =
|
||||
assoc_rsp->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp;
|
||||
assoc_rsp->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp_80 |
|
||||
assoc_rsp->qcn_ie.he_mcs13_attr.he_mcs_12_13_supp_160 << 8;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1239,7 +1239,8 @@ static void populate_dot11f_qcn_ie_he_params(struct mac_context *mac,
|
|||
|
||||
qcn_ie->present = 1;
|
||||
qcn_ie->he_mcs13_attr.present = 1;
|
||||
qcn_ie->he_mcs13_attr.he_mcs_12_13_supp = mcs_12_13_supp;
|
||||
qcn_ie->he_mcs13_attr.he_mcs_12_13_supp_80 = mcs_12_13_supp & 0xFF;
|
||||
qcn_ie->he_mcs13_attr.he_mcs_12_13_supp_160 = mcs_12_13_supp >> 8;
|
||||
}
|
||||
#else /* WLAN_FEATURE_11AX */
|
||||
static void populate_dot11f_qcn_ie_he_params(struct mac_context *mac,
|
||||
|
|
@ -1259,9 +1260,9 @@ void populate_dot11f_qcn_ie(struct mac_context *mac,
|
|||
((attr_id == QCN_IE_ATTR_ID_ALL) ||
|
||||
(attr_id == QCN_IE_ATTR_ID_VERSION))) {
|
||||
qcn_ie->present = 1;
|
||||
qcn_ie->version_attr.present = 1;
|
||||
qcn_ie->version_attr.version = QCN_IE_VERSION_SUPPORTED;
|
||||
qcn_ie->version_attr.sub_version = QCN_IE_SUBVERSION_SUPPORTED;
|
||||
qcn_ie->qcn_version.present = 1;
|
||||
qcn_ie->qcn_version.version = QCN_IE_VERSION_SUPPORTED;
|
||||
qcn_ie->qcn_version.sub_version = QCN_IE_SUBVERSION_SUPPORTED;
|
||||
}
|
||||
if (mac->mlme_cfg->vht_caps.vht_cap_info.vht_mcs_10_11_supp) {
|
||||
qcn_ie->present = 1;
|
||||
|
|
|
|||
Loading…
Reference in a new issue