qcacld-3.0: Add edca_pifs_param_ie in OTA frames for ll sap
For LL SAP, add edca_pifs_param vendor ie in assoc rsp, beacon and probe rsp and send it to earbud via OTA frames. Change-Id: I7641e8c98d57acf600fe2137a04b34625e29c3e0 CRs-Fixed: 3344888
This commit is contained in:

committed by
Madan Koyyalamudi

parent
af62331dd8
commit
e6921ffc40
@@ -1812,4 +1812,14 @@ void populate_dot11f_rnr_tbtt_info_7(struct mac_context *mac_ctx,
|
|||||||
struct pe_session *rnr_session,
|
struct pe_session *rnr_session,
|
||||||
tDot11fIEreduced_neighbor_report *dot11f);
|
tDot11fIEreduced_neighbor_report *dot11f);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* populate_dot11f_edca_pifs_param_set() - populate edca/pifs param ie
|
||||||
|
* @mac: Mac context
|
||||||
|
* @qcn_ie: pointer to tDot11fIEqcn_ie
|
||||||
|
*
|
||||||
|
* Return: none
|
||||||
|
*/
|
||||||
|
void populate_dot11f_edca_pifs_param_set(
|
||||||
|
struct mac_context *mac,
|
||||||
|
tDot11fIEqcn_ie *qcn_ie);
|
||||||
#endif /* __PARSE_H__ */
|
#endif /* __PARSE_H__ */
|
||||||
|
@@ -1248,6 +1248,15 @@ void lim_update_probe_rsp_template_ie_bitmap_beacon2(struct mac_context *mac,
|
|||||||
sizeof(beacon2->WMMCaps));
|
sizeof(beacon2->WMMCaps));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* QCN IE - only for ll sap */
|
||||||
|
if (beacon2->qcn_ie.present) {
|
||||||
|
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap,
|
||||||
|
WLAN_ELEMID_VENDOR);
|
||||||
|
qdf_mem_copy((void *)&prb_rsp->qcn_ie,
|
||||||
|
(void *)&beacon2->qcn_ie,
|
||||||
|
sizeof(beacon2->qcn_ie));
|
||||||
|
}
|
||||||
|
|
||||||
/* Extended Capability */
|
/* Extended Capability */
|
||||||
if (beacon2->ExtCap.present) {
|
if (beacon2->ExtCap.present) {
|
||||||
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, DOT11F_EID_EXTCAP);
|
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, DOT11F_EID_EXTCAP);
|
||||||
|
@@ -1672,6 +1672,34 @@ void populate_dot11f_bss_max_idle(struct mac_context *mac,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void populate_dot11f_edca_pifs_param_set(struct mac_context *mac,
|
||||||
|
tDot11fIEqcn_ie *qcn_ie)
|
||||||
|
{
|
||||||
|
struct wlan_edca_pifs_param_ie param = {0};
|
||||||
|
struct edca_param *eparam;
|
||||||
|
struct pifs_param *pparam;
|
||||||
|
uint8_t edca_param_type;
|
||||||
|
|
||||||
|
qcn_ie->present = 1;
|
||||||
|
qcn_ie->edca_pifs_param_attr.present = 1;
|
||||||
|
|
||||||
|
edca_param_type = mac->mlme_cfg->edca_params.edca_param_type;
|
||||||
|
wlan_mlme_set_edca_pifs_param(¶m, edca_param_type);
|
||||||
|
qcn_ie->edca_pifs_param_attr.edca_param_type = edca_param_type;
|
||||||
|
|
||||||
|
if (edca_param_type == HOST_EDCA_PARAM_TYPE_AGGRESSIVE) {
|
||||||
|
qcn_ie->edca_pifs_param_attr.num_data = sizeof(*eparam);
|
||||||
|
eparam = (struct edca_param *)qcn_ie->edca_pifs_param_attr.data;
|
||||||
|
qdf_mem_copy(eparam, ¶m.edca_pifs_param.eparam,
|
||||||
|
sizeof(*eparam));
|
||||||
|
} else if (edca_param_type == HOST_EDCA_PARAM_TYPE_PIFS) {
|
||||||
|
qcn_ie->edca_pifs_param_attr.num_data = sizeof(*pparam);
|
||||||
|
pparam = (struct pifs_param *)qcn_ie->edca_pifs_param_attr.data;
|
||||||
|
qdf_mem_copy(pparam, ¶m.edca_pifs_param.pparam,
|
||||||
|
sizeof(*pparam));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void populate_dot11f_qcn_ie(struct mac_context *mac,
|
void populate_dot11f_qcn_ie(struct mac_context *mac,
|
||||||
struct pe_session *pe_session,
|
struct pe_session *pe_session,
|
||||||
tDot11fIEqcn_ie *qcn_ie,
|
tDot11fIEqcn_ie *qcn_ie,
|
||||||
@@ -1693,6 +1721,15 @@ void populate_dot11f_qcn_ie(struct mac_context *mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
populate_dot11f_qcn_ie_he_params(mac, pe_session, qcn_ie, attr_id);
|
populate_dot11f_qcn_ie_he_params(mac, pe_session, qcn_ie, attr_id);
|
||||||
|
if (policy_mgr_is_ll_sap_present(
|
||||||
|
mac->psoc,
|
||||||
|
policy_mgr_convert_device_mode_to_qdf_type(
|
||||||
|
pe_session->opmode), pe_session->vdev_id)) {
|
||||||
|
pe_debug("Populate edca/pifs param ie for ll sap");
|
||||||
|
populate_dot11f_edca_pifs_param_set(
|
||||||
|
mac,
|
||||||
|
qcn_ie);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
|
Reference in New Issue
Block a user