qcacld-3.0: Add edca_pifs_param attribute in QCN ie
Add edca_pifs_param attribute in QCN ie. This attribute will be use to configure edca and pifs param for XPAN. Change-Id: Iab16c36fbdb2f66afb6c1cebee10b43d64aec4a6 CRs-Fixed: 3334861
This commit is contained in:

committed by
Madan Koyyalamudi

parent
dfc6dc8316
commit
0ff4e53681
@@ -2737,6 +2737,10 @@ IE TimeAdvertisement (EID_TIME_ADVERTISEMENT) // 8.4.2.63
|
||||
time_error[5];
|
||||
}
|
||||
|
||||
/**
|
||||
* This all attributes are defined under qcn_attribute_id enum of
|
||||
* cmn code in wlan_cmn_ieee80211.h file.
|
||||
*/
|
||||
const TLV_VERSION_ATTR_ID = 1;
|
||||
const TLV_VHT_MCS_10_11_ATTR_ID = 2;
|
||||
const TLV_HE_400NS_SGI_SUPP_ATTR_ID = 3;
|
||||
@@ -2746,6 +2750,7 @@ 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;
|
||||
const TLV_EDCA_PIFS_PARAM_ATTR_ID = 13;
|
||||
|
||||
TLV qcn_version(TLV_VERSION_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
@@ -2794,6 +2799,13 @@ TLV he_mcs13_attr (TLV_HE_MCS_11_12_ATTR_ID) ( 1 : 1 ) LSB
|
||||
he_mcs_12_13_supp_160, 1;
|
||||
}
|
||||
|
||||
TLV edca_pifs_param_attr (TLV_EDCA_PIFS_PARAM_ATTR_ID) ( 1 : 1 ) LSB
|
||||
{
|
||||
// Configure EDCA or PIFS param based on edca_param_type
|
||||
edca_param_type, 1;
|
||||
data[3..4];
|
||||
}
|
||||
|
||||
MULTIIE qcn_ie (EID_VENDOR_SPECIFIC) OUI ( 0x8C, 0xFD, 0xF0, 0x01 )
|
||||
{
|
||||
OPTIONALTLV qcn_version;
|
||||
@@ -2805,6 +2817,7 @@ MULTIIE qcn_ie (EID_VENDOR_SPECIFIC) OUI ( 0x8C, 0xFD, 0xF0, 0x01 )
|
||||
OPTIONALTLV trans_rejectp_attr;
|
||||
OPTIONALTLV he_dl_mumimo_attr;
|
||||
OPTIONALTLV he_mcs13_attr;
|
||||
OPTIONALTLV edca_pifs_param_attr;
|
||||
}
|
||||
|
||||
IE esp_information (EID_EXTN_ID_ELEMENT) OUI ( 0x0B )
|
||||
|
@@ -27,7 +27,7 @@
|
||||
*
|
||||
*
|
||||
* This file was automatically generated by 'framesc'
|
||||
* Mon Oct 31 15:26:23 2022 from the following file(s):
|
||||
* Mon Nov 14 15:58:33 2022 from the following file(s):
|
||||
*
|
||||
* dot11f.frms
|
||||
*
|
||||
@@ -2213,6 +2213,46 @@ uint32_t dot11f_get_packed_tlv_cellular_data_con_pref(
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 13 (0x000d) */
|
||||
typedef struct sDot11fTLVedca_pifs_param_attr {
|
||||
uint8_t present;
|
||||
uint8_t edca_param_type;
|
||||
uint8_t num_data;
|
||||
uint8_t data[4];
|
||||
} tDot11fTLVedca_pifs_param_attr;
|
||||
|
||||
#define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR (13)
|
||||
|
||||
/* N.B. These #defines do *not* include the ID & length */
|
||||
#define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR_MIN_LEN (4)
|
||||
|
||||
#define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR_MAX_LEN (5)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_tlv_edca_pifs_param_attr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
tDot11fTLVedca_pifs_param_attr*);
|
||||
|
||||
uint32_t dot11f_pack_tlv_edca_pifs_param_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVedca_pifs_param_attr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_tlv_edca_pifs_param_attr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fTLVedca_pifs_param_attr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* ID 4 (0x0004) */
|
||||
typedef struct sDot11fTLVhe_2xltf_160mhz_supp {
|
||||
uint8_t present;
|
||||
@@ -10128,6 +10168,7 @@ typedef struct sDot11fIEqcn_ie {
|
||||
tDot11fTLVtrans_rejectp_attr trans_rejectp_attr;
|
||||
tDot11fTLVhe_dl_mumimo_attr he_dl_mumimo_attr;
|
||||
tDot11fTLVhe_mcs13_attr he_mcs13_attr;
|
||||
tDot11fTLVedca_pifs_param_attr edca_pifs_param_attr;
|
||||
} tDot11fIEqcn_ie;
|
||||
|
||||
#define DOT11F_EID_QCN_IE (221)
|
||||
@@ -10135,7 +10176,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 (35)
|
||||
#define DOT11F_IE_QCN_IE_MAX_LEN (42)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@@ -25,7 +25,7 @@
|
||||
*
|
||||
*
|
||||
* This file was automatically generated by 'framesc'
|
||||
* Mon Oct 31 15:26:23 2022 from the following file(s):
|
||||
* Mon Nov 14 15:58:33 2022 from the following file(s):
|
||||
*
|
||||
* dot11f.frms
|
||||
*
|
||||
@@ -1551,7 +1551,38 @@ uint32_t dot11f_unpack_tlv_version(tpAniSirGlobal pCtx,
|
||||
#define SigTlvcellular_data_con_pref (0x0027)
|
||||
|
||||
|
||||
#define SigTlvhe_2xltf_160mhz_supp (0x0028)
|
||||
uint32_t dot11f_unpack_tlv_edca_pifs_param_attr(tpAniSirGlobal pCtx,
|
||||
uint8_t *pBuf,
|
||||
uint16_t tlvlen,
|
||||
tDot11fTLVedca_pifs_param_attr *pDst)
|
||||
{
|
||||
uint32_t status = DOT11F_PARSE_SUCCESS;
|
||||
pDst->present = 1;
|
||||
if (unlikely(tlvlen < 1)) {
|
||||
pDst->present = 0;
|
||||
return DOT11F_INCOMPLETE_IE;
|
||||
}
|
||||
|
||||
pDst->edca_param_type = *pBuf;
|
||||
pBuf += 1;
|
||||
tlvlen -= (uint8_t)1;
|
||||
pDst->num_data = (uint8_t)(tlvlen);
|
||||
if (tlvlen > 4) {
|
||||
pDst->present = 0;
|
||||
return DOT11F_SKIPPED_BAD_IE;
|
||||
}
|
||||
|
||||
DOT11F_MEMCPY(pCtx, pDst->data, pBuf, (tlvlen));
|
||||
pBuf += (tlvlen);
|
||||
tlvlen -= (tlvlen);
|
||||
(void)pCtx;
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_edca_pifs_param_attr. */
|
||||
|
||||
#define SigTlvedca_pifs_param_attr (0x0028)
|
||||
|
||||
|
||||
#define SigTlvhe_2xltf_160mhz_supp (0x0029)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_he_400ns_sgi_attr(tpAniSirGlobal pCtx,
|
||||
@@ -1589,13 +1620,13 @@ uint32_t dot11f_unpack_tlv_he_400ns_sgi_attr(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_he_400ns_sgi_attr. */
|
||||
|
||||
#define SigTlvhe_400ns_sgi_attr (0x0029)
|
||||
#define SigTlvhe_400ns_sgi_attr (0x002a)
|
||||
|
||||
|
||||
#define SigTlvhe_dl_mumimo_attr (0x002a)
|
||||
#define SigTlvhe_dl_mumimo_attr (0x002b)
|
||||
|
||||
|
||||
#define SigTlvhe_dl_ofdma_attr (0x002b)
|
||||
#define SigTlvhe_dl_ofdma_attr (0x002c)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_he_mcs13_attr(tpAniSirGlobal pCtx,
|
||||
@@ -1625,10 +1656,10 @@ uint32_t dot11f_unpack_tlv_he_mcs13_attr(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_he_mcs13_attr. */
|
||||
|
||||
#define SigTlvhe_mcs13_attr (0x002c)
|
||||
#define SigTlvhe_mcs13_attr (0x002d)
|
||||
|
||||
|
||||
#define SigTlvmbo_ap_cap (0x002d)
|
||||
#define SigTlvmbo_ap_cap (0x002e)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_non_prefferd_chan_rep(tpAniSirGlobal pCtx,
|
||||
@@ -1659,7 +1690,7 @@ uint32_t dot11f_unpack_tlv_non_prefferd_chan_rep(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_non_prefferd_chan_rep. */
|
||||
|
||||
#define SigTlvnon_prefferd_chan_rep (0x002e)
|
||||
#define SigTlvnon_prefferd_chan_rep (0x002f)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_oce_cap(tpAniSirGlobal pCtx,
|
||||
@@ -1686,7 +1717,7 @@ uint32_t dot11f_unpack_tlv_oce_cap(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_oce_cap. */
|
||||
|
||||
#define SigTlvoce_cap (0x002f)
|
||||
#define SigTlvoce_cap (0x0030)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_qcn_version(tpAniSirGlobal pCtx,
|
||||
@@ -1716,7 +1747,7 @@ uint32_t dot11f_unpack_tlv_qcn_version(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_qcn_version. */
|
||||
|
||||
#define SigTlvqcn_version (0x0030)
|
||||
#define SigTlvqcn_version (0x0031)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_reduced_wan_metrics(tpAniSirGlobal pCtx,
|
||||
@@ -1741,7 +1772,7 @@ uint32_t dot11f_unpack_tlv_reduced_wan_metrics(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_reduced_wan_metrics. */
|
||||
|
||||
#define SigTlvreduced_wan_metrics (0x0031)
|
||||
#define SigTlvreduced_wan_metrics (0x0032)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_rssi_assoc_rej(tpAniSirGlobal pCtx,
|
||||
@@ -1771,22 +1802,22 @@ uint32_t dot11f_unpack_tlv_rssi_assoc_rej(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_rssi_assoc_rej. */
|
||||
|
||||
#define SigTlvrssi_assoc_rej (0x0032)
|
||||
#define SigTlvrssi_assoc_rej (0x0033)
|
||||
|
||||
|
||||
#define SigTlvtrans_reasonp_attr (0x0033)
|
||||
#define SigTlvtrans_reasonp_attr (0x0034)
|
||||
|
||||
|
||||
#define SigTlvtrans_rejectp_attr (0x0034)
|
||||
#define SigTlvtrans_rejectp_attr (0x0035)
|
||||
|
||||
|
||||
#define SigTlvtransition_reason (0x0035)
|
||||
#define SigTlvtransition_reason (0x0036)
|
||||
|
||||
|
||||
#define SigTlvtransition_reject_reason (0x0036)
|
||||
#define SigTlvtransition_reject_reason (0x0037)
|
||||
|
||||
|
||||
#define SigTlvvht_mcs11_attr (0x0037)
|
||||
#define SigTlvvht_mcs11_attr (0x0038)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_tlv_p2_p_interface(tpAniSirGlobal pCtx,
|
||||
@@ -1808,10 +1839,10 @@ uint32_t dot11f_unpack_tlv_p2_p_interface(tpAniSirGlobal pCtx,
|
||||
return status;
|
||||
} /* End dot11f_unpack_tlv_p2_p_interface. */
|
||||
|
||||
#define SigTlvP2PInterface (0x0038)
|
||||
#define SigTlvP2PInterface (0x0039)
|
||||
|
||||
|
||||
#define SigTlvP2PManageability (0x0039)
|
||||
#define SigTlvP2PManageability (0x003a)
|
||||
|
||||
|
||||
uint32_t dot11f_unpack_ie_gtk(tpAniSirGlobal pCtx,
|
||||
@@ -10080,6 +10111,10 @@ static const tTLVDefn TLVS_qcn_ie[] = {
|
||||
{ offsetof(tDot11fIEqcn_ie, he_mcs13_attr),
|
||||
offsetof(tDot11fTLVhe_mcs13_attr, present), "he_mcs13_attr",
|
||||
SigTlvhe_mcs13_attr, DOT11F_TLV_HE_MCS13_ATTR, 0, 4, 4, 0, 1, 1, 0, },
|
||||
{ offsetof(tDot11fIEqcn_ie, edca_pifs_param_attr),
|
||||
offsetof(tDot11fTLVedca_pifs_param_attr, present),
|
||||
"edca_pifs_param_attr", SigTlvedca_pifs_param_attr,
|
||||
DOT11F_TLV_EDCA_PIFS_PARAM_ATTR, 0, 6, 7, 0, 1, 1, 0, },
|
||||
{0, 0, NULL, 0, 0xffff, 0, 0, 0, 0, 0, 0},
|
||||
};
|
||||
|
||||
@@ -10935,7 +10970,7 @@ static const tIEDefn IES_AssocRequest[] = {
|
||||
0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0},
|
||||
4, DOT11F_EID_HS20VENDOR_IE, 0, 0, },
|
||||
{ offsetof(tDot11fAssocRequest, qcn_ie), offsetof(tDot11fIEqcn_ie,
|
||||
present), 0, "qcn_ie", 0, 6, 37, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
present), 0, "qcn_ie", 0, 6, 44, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
4, DOT11F_EID_QCN_IE, 0, 0, },
|
||||
{ offsetof(tDot11fAssocRequest, osen_ie), offsetof(tDot11fIEosen_ie,
|
||||
present), 0, "osen_ie", 0, 6, 261, SigIeosen_ie, {80, 111, 154, 18, 0},
|
||||
@@ -11134,7 +11169,7 @@ static const tIEDefn IES_AssocResponse[] = {
|
||||
0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 4, 0},
|
||||
4, DOT11F_EID_VENDOR_VHT_IE, 0, 0, },
|
||||
{ offsetof(tDot11fAssocResponse, qcn_ie), offsetof(tDot11fIEqcn_ie,
|
||||
present), 0, "qcn_ie", 0, 6, 37, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
present), 0, "qcn_ie", 0, 6, 44, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
4, DOT11F_EID_QCN_IE, 0, 0, },
|
||||
{ offsetof(tDot11fAssocResponse, MBO_IE), offsetof(tDot11fIEMBO_IE,
|
||||
present), 0, "MBO_IE", 0, 6, 295, SigIeMBO_IE, {80, 111, 154, 22, 0},
|
||||
@@ -11464,7 +11499,7 @@ static const tIEDefn IES_Beacon[] = {
|
||||
"MBO_IE", 0, 6, 295, SigIeMBO_IE, {80, 111, 154, 22, 0},
|
||||
4, DOT11F_EID_MBO_IE, 0, 0, },
|
||||
{ offsetof(tDot11fBeacon, qcn_ie), offsetof(tDot11fIEqcn_ie, present), 0,
|
||||
"qcn_ie", 0, 6, 37, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
"qcn_ie", 0, 6, 44, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
4, DOT11F_EID_QCN_IE, 0, 0, },
|
||||
{ offsetof(tDot11fBeacon, reduced_neighbor_report),
|
||||
offsetof(tDot11fIEreduced_neighbor_report, present), 0,
|
||||
@@ -11721,7 +11756,7 @@ static const tIEDefn IES_Beacon2[] = {
|
||||
present), 0, "ESEVersion", 0, 7, 7, SigIeESEVersion, {0, 64, 150, 3, 0},
|
||||
4, DOT11F_EID_ESEVERSION, 0, 0, },
|
||||
{ offsetof(tDot11fBeacon2, qcn_ie), offsetof(tDot11fIEqcn_ie, present), 0,
|
||||
"qcn_ie", 0, 6, 37, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
"qcn_ie", 0, 6, 44, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
4, DOT11F_EID_QCN_IE, 0, 0, },
|
||||
{ offsetof(tDot11fBeacon2, reduced_neighbor_report),
|
||||
offsetof(tDot11fIEreduced_neighbor_report, present), 0,
|
||||
@@ -11978,7 +12013,7 @@ static const tIEDefn IES_BeaconIEs[] = {
|
||||
0, "MBO_IE", 0, 6, 295, SigIeMBO_IE, {80, 111, 154, 22, 0},
|
||||
4, DOT11F_EID_MBO_IE, 0, 0, },
|
||||
{ offsetof(tDot11fBeaconIEs, qcn_ie), offsetof(tDot11fIEqcn_ie, present),
|
||||
0, "qcn_ie", 0, 6, 37, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
0, "qcn_ie", 0, 6, 44, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
4, DOT11F_EID_QCN_IE, 0, 0, },
|
||||
{ offsetof(tDot11fBeaconIEs, reduced_neighbor_report),
|
||||
offsetof(tDot11fIEreduced_neighbor_report, present), 0,
|
||||
@@ -12412,7 +12447,7 @@ static const tIEDefn IES_ProbeRequest[] = {
|
||||
0, 6, 43, SigIeP2PProbeReq, {80, 111, 154, 9, 0},
|
||||
4, DOT11F_EID_P2PPROBEREQ, 0, 0, },
|
||||
{ offsetof(tDot11fProbeRequest, qcn_ie), offsetof(tDot11fIEqcn_ie,
|
||||
present), 0, "qcn_ie", 0, 6, 37, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
present), 0, "qcn_ie", 0, 6, 44, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
4, DOT11F_EID_QCN_IE, 0, 0, },
|
||||
{0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },};
|
||||
|
||||
@@ -12663,7 +12698,7 @@ static const tIEDefn IES_ProbeResponse[] = {
|
||||
present), 0, "MBO_IE", 0, 6, 295, SigIeMBO_IE, {80, 111, 154, 22, 0},
|
||||
4, DOT11F_EID_MBO_IE, 0, 0, },
|
||||
{ offsetof(tDot11fProbeResponse, qcn_ie), offsetof(tDot11fIEqcn_ie,
|
||||
present), 0, "qcn_ie", 0, 6, 37, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
present), 0, "qcn_ie", 0, 6, 44, SigIeqcn_ie, {140, 253, 240, 1, 0},
|
||||
4, DOT11F_EID_QCN_IE, 0, 0, },
|
||||
{ offsetof(tDot11fProbeResponse, reduced_neighbor_report),
|
||||
offsetof(tDot11fIEreduced_neighbor_report, present), 0,
|
||||
@@ -16718,6 +16753,13 @@ static uint32_t unpack_tlv_core(tpAniSirGlobal pCtx,
|
||||
(uint8_t *)&(((tDot11fTLVcellular_data_con_pref *)
|
||||
(pFrm + pTlv->offset))->cellular_preference));
|
||||
break;
|
||||
case SigTlvedca_pifs_param_attr:
|
||||
status |=
|
||||
dot11f_unpack_tlv_edca_pifs_param_attr(pCtx,
|
||||
pBufRemaining, len,
|
||||
(tDot11fTLVedca_pifs_param_attr *)
|
||||
(pFrm + pTlv->offset));
|
||||
break;
|
||||
case SigTlvhe_2xltf_160mhz_supp:
|
||||
status |=
|
||||
dot11f_unpack_tlv_common_func(pCtx,
|
||||
@@ -19910,6 +19952,11 @@ static uint32_t get_packed_size_tlv_core(tpAniSirGlobal pCtx,
|
||||
pTlvPresent = ((tDot11fTLVcellular_data_con_pref *)
|
||||
(pFrm + pTlv->offset))->present;
|
||||
break;
|
||||
case SigTlvedca_pifs_param_attr:
|
||||
byteCount = ((tDot11fTLVedca_pifs_param_attr *)(pFrm + pTlv->offset))->num_data+1;
|
||||
pTlvPresent = ((tDot11fTLVedca_pifs_param_attr *)
|
||||
(pFrm + pTlv->offset))->present;
|
||||
break;
|
||||
case SigTlvhe_2xltf_160mhz_supp:
|
||||
byteCount = 1;
|
||||
pTlvPresent = ((tDot11fTLVhe_2xltf_160mhz_supp *)
|
||||
@@ -21600,6 +21647,39 @@ uint32_t dot11f_pack_tlv_cellular_data_con_pref(tpAniSirGlobal pCtx,
|
||||
return DOT11F_PARSE_SUCCESS;
|
||||
} /* End dot11f_pack_tlv_cellular_data_con_pref. */
|
||||
|
||||
uint32_t dot11f_pack_tlv_edca_pifs_param_attr(tpAniSirGlobal pCtx,
|
||||
tDot11fTLVedca_pifs_param_attr *pSrc,
|
||||
uint8_t *pBuf,
|
||||
uint32_t nBuf,
|
||||
uint32_t *pnConsumed)
|
||||
{
|
||||
uint8_t *pTlvLen = 0;
|
||||
uint32_t nConsumedOnEntry = *pnConsumed;
|
||||
uint32_t nNeeded = 0U;
|
||||
nNeeded += (pSrc->num_data + 3) ;
|
||||
|
||||
if (nNeeded > nBuf)
|
||||
return DOT11F_BUFFER_OVERFLOW;
|
||||
while (pSrc->present) {
|
||||
*pBuf = 13;
|
||||
pBuf += 1; *pnConsumed += 1;
|
||||
pTlvLen = pBuf;
|
||||
pBuf += 1; *pnConsumed += 1;
|
||||
*pBuf = pSrc->edca_param_type;
|
||||
*pnConsumed += 1;
|
||||
pBuf += 1;
|
||||
DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->data), pSrc->num_data);
|
||||
*pnConsumed += pSrc->num_data;
|
||||
pBuf += pSrc->num_data;
|
||||
break;
|
||||
}
|
||||
(void)pCtx;
|
||||
if (pTlvLen) {
|
||||
*pTlvLen = *pnConsumed - nConsumedOnEntry - 2;
|
||||
}
|
||||
return DOT11F_PARSE_SUCCESS;
|
||||
} /* End dot11f_pack_tlv_edca_pifs_param_attr. */
|
||||
|
||||
uint32_t dot11f_pack_tlv_he_2xltf_160mhz_supp(tpAniSirGlobal pCtx,
|
||||
tDot11fTLVhe_2xltf_160mhz_supp *pSrc,
|
||||
uint8_t *pBuf,
|
||||
@@ -32907,6 +32987,13 @@ static uint32_t pack_tlv_core(tpAniSirGlobal pCtx,
|
||||
(pSrc + pTlv->offset), pBufRemaining,
|
||||
nBufRemaining, &len);
|
||||
break;
|
||||
case SigTlvedca_pifs_param_attr:
|
||||
status |=
|
||||
dot11f_pack_tlv_edca_pifs_param_attr(
|
||||
pCtx, (tDot11fTLVedca_pifs_param_attr *)
|
||||
(pSrc + pTlv->offset), pBufRemaining,
|
||||
nBufRemaining, &len);
|
||||
break;
|
||||
case SigTlvhe_2xltf_160mhz_supp:
|
||||
status |=
|
||||
dot11f_pack_tlv_he_2xltf_160mhz_supp(
|
||||
|
Reference in New Issue
Block a user