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
此提交包含在:
@@ -1812,4 +1812,14 @@ void populate_dot11f_rnr_tbtt_info_7(struct mac_context *mac_ctx,
|
||||
struct pe_session *rnr_session,
|
||||
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__ */
|
||||
|
@@ -1248,6 +1248,15 @@ void lim_update_probe_rsp_template_ie_bitmap_beacon2(struct mac_context *mac,
|
||||
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 */
|
||||
if (beacon2->ExtCap.present) {
|
||||
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,
|
||||
struct pe_session *pe_session,
|
||||
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);
|
||||
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
|
||||
|
新增問題並參考
封鎖使用者