qcacld-3.0: Add EDCA mlme cfg API

Add mlme cfg api functions to get EDCA parameters.
Also remove the legacy CFG item definitions.

Change-Id: I075240279e2cf3fda4424b77b7cfcf50ac9619f4
CRs-Fixed: 2316205
This commit is contained in:
Pragaspathi Thilagaraj
2018-09-16 00:18:26 +05:30
committed by Nitesh Shrivastav
parent 5f45a5aaea
commit cfbc6f703c
4 changed files with 266 additions and 20 deletions

View File

@@ -25,6 +25,35 @@
#include "wma_types.h"
#include "wmi_unified.h"
QDF_STATUS wlan_mlme_get_cfg_str(uint8_t *dst, struct mlme_cfg_str *cfg_str,
qdf_size_t *len)
{
if (*len < cfg_str->len) {
mlme_err("Invalid len %zd", *len);
return QDF_STATUS_E_INVAL;
}
*len = cfg_str->len;
qdf_mem_copy(dst, cfg_str->data, *len);
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wlan_mlme_set_cfg_str(uint8_t *src, struct mlme_cfg_str *dst_cfg_str,
qdf_size_t len)
{
if (len > dst_cfg_str->max_len) {
mlme_err("Invalid len %zd (>%zd)", len,
dst_cfg_str->max_len);
return QDF_STATUS_E_INVAL;
}
dst_cfg_str->len = len;
qdf_mem_copy(dst_cfg_str->data, src, len);
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wlan_mlme_get_ht_cap_info(struct wlan_objmgr_psoc *psoc,
struct mlme_ht_capabilities_info
*ht_cap_info)
@@ -518,3 +547,135 @@ QDF_STATUS wlan_mlme_set_enable_bcast_probe_rsp(struct wlan_objmgr_psoc *psoc,
mlme_obj->cfg.oce.enable_bcast_probe_rsp = value;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wlan_mlme_get_edca_params(struct wlan_mlme_edca_params *edca_params,
uint8_t *data, enum e_edca_type edca_ac)
{
qdf_size_t len;
switch (edca_ac) {
case edca_ani_acbe_local:
len = edca_params->ani_acbe_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acbe_l, &len);
break;
case edca_ani_acbk_local:
len = edca_params->ani_acbk_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acbk_l, &len);
break;
case edca_ani_acvi_local:
len = edca_params->ani_acvi_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acvi_l, &len);
break;
case edca_ani_acvo_local:
len = edca_params->ani_acvo_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acvo_l, &len);
break;
case edca_ani_acbk_bcast:
len = edca_params->ani_acbk_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acbk_b, &len);
break;
case edca_ani_acbe_bcast:
len = edca_params->ani_acbe_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acbe_b, &len);
break;
case edca_ani_acvi_bcast:
len = edca_params->ani_acvi_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acvi_b, &len);
break;
case edca_ani_acvo_bcast:
len = edca_params->ani_acvo_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->ani_acvo_b, &len);
break;
case edca_wme_acbe_local:
len = edca_params->wme_acbe_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acbe_l, &len);
break;
case edca_wme_acbk_local:
len = edca_params->wme_acbk_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acbk_l, &len);
break;
case edca_wme_acvi_local:
len = edca_params->wme_acvi_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acvi_l, &len);
break;
case edca_wme_acvo_local:
len = edca_params->wme_acvo_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acvo_l, &len);
break;
case edca_wme_acbe_bcast:
len = edca_params->wme_acbe_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acbe_b, &len);
break;
case edca_wme_acbk_bcast:
len = edca_params->wme_acbk_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acbk_b, &len);
break;
case edca_wme_acvi_bcast:
len = edca_params->wme_acvi_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acvi_b, &len);
break;
case edca_wme_acvo_bcast:
len = edca_params->wme_acvo_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->wme_acvo_b, &len);
break;
case edca_etsi_acbe_local:
len = edca_params->etsi_acbe_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acbe_l, &len);
break;
case edca_etsi_acbk_local:
len = edca_params->etsi_acbk_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acbk_l, &len);
break;
case edca_etsi_acvi_local:
len = edca_params->etsi_acvi_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acvi_l, &len);
break;
case edca_etsi_acvo_local:
len = edca_params->etsi_acvo_l.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acvo_l, &len);
break;
case edca_etsi_acbe_bcast:
len = edca_params->etsi_acbe_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acbe_b, &len);
break;
case edca_etsi_acbk_bcast:
len = edca_params->etsi_acbk_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acbk_b, &len);
break;
case edca_etsi_acvi_bcast:
len = edca_params->etsi_acvi_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acvi_b, &len);
break;
case edca_etsi_acvo_bcast:
len = edca_params->etsi_acvo_b.len;
wlan_mlme_get_cfg_str(data, &edca_params->etsi_acvo_b, &len);
break;
default:
mlme_err("Invalid edca access category");
return QDF_STATUS_E_INVAL;
}
return QDF_STATUS_SUCCESS;
}