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:

committed by
Nitesh Shrivastav

parent
03efaa5442
commit
fe1efeccfc
@@ -146,6 +146,18 @@ static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
|
|
||||||
static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)
|
static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)
|
||||||
{
|
{
|
||||||
|
/* initialize the max allowed array length for read/write */
|
||||||
|
edca_params->ani_acbe_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->ani_acbk_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->ani_acvi_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->ani_acvo_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
|
||||||
|
edca_params->ani_acbe_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->ani_acbk_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->ani_acvi_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->ani_acvo_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
|
||||||
|
/* parse the ETSI edca parameters from cfg string for BK,BE,VI,VO ac */
|
||||||
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACBK_LOCAL),
|
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACBK_LOCAL),
|
||||||
edca_params->ani_acbk_l.data,
|
edca_params->ani_acbk_l.data,
|
||||||
CFG_EDCA_DATA_LEN,
|
CFG_EDCA_DATA_LEN,
|
||||||
@@ -189,6 +201,18 @@ static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)
|
|||||||
|
|
||||||
static void mlme_init_edca_wme_cfg(struct wlan_mlme_edca_params *edca_params)
|
static void mlme_init_edca_wme_cfg(struct wlan_mlme_edca_params *edca_params)
|
||||||
{
|
{
|
||||||
|
/* initialize the max allowed array length for read/write */
|
||||||
|
edca_params->wme_acbk_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->wme_acbe_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->wme_acvi_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->wme_acvo_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
|
||||||
|
edca_params->wme_acbk_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->wme_acbe_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->wme_acvi_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->wme_acvo_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
|
||||||
|
/* parse the WME edca parameters from cfg string for BK,BE,VI,VO ac */
|
||||||
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACBK_LOCAL),
|
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACBK_LOCAL),
|
||||||
edca_params->wme_acbk_l.data,
|
edca_params->wme_acbk_l.data,
|
||||||
CFG_EDCA_DATA_LEN,
|
CFG_EDCA_DATA_LEN,
|
||||||
@@ -232,6 +256,18 @@ static void mlme_init_edca_wme_cfg(struct wlan_mlme_edca_params *edca_params)
|
|||||||
|
|
||||||
static void mlme_init_edca_etsi_cfg(struct wlan_mlme_edca_params *edca_params)
|
static void mlme_init_edca_etsi_cfg(struct wlan_mlme_edca_params *edca_params)
|
||||||
{
|
{
|
||||||
|
/* initialize the max allowed array length for read/write */
|
||||||
|
edca_params->etsi_acbe_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->etsi_acbk_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->etsi_acvi_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->etsi_acvo_l.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
|
||||||
|
edca_params->etsi_acbe_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->etsi_acbk_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->etsi_acvi_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
edca_params->etsi_acvo_b.max_len = CFG_EDCA_DATA_LEN;
|
||||||
|
|
||||||
|
/* parse the ETSI edca parameters from cfg string for BK,BE,VI,VO ac */
|
||||||
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACBK_LOCAL),
|
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACBK_LOCAL),
|
||||||
edca_params->etsi_acbk_l.data,
|
edca_params->etsi_acbk_l.data,
|
||||||
CFG_EDCA_DATA_LEN,
|
CFG_EDCA_DATA_LEN,
|
||||||
|
@@ -25,9 +25,43 @@
|
|||||||
#include <wlan_mlme_public_struct.h>
|
#include <wlan_mlme_public_struct.h>
|
||||||
#include <wlan_objmgr_psoc_obj.h>
|
#include <wlan_objmgr_psoc_obj.h>
|
||||||
#include <wlan_cmn.h>
|
#include <wlan_cmn.h>
|
||||||
|
|
||||||
#include "sme_api.h"
|
#include "sme_api.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_cfg_str() - Copy the uint8_t array for a particular CFG
|
||||||
|
* @dst: pointer to the destination buffer.
|
||||||
|
* @cfg_str: pointer to the cfg string structure
|
||||||
|
* @len: length to be copied
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
|
||||||
|
*/
|
||||||
|
QDF_STATUS wlan_mlme_get_cfg_str(uint8_t *dst, struct mlme_cfg_str *cfg_str,
|
||||||
|
qdf_size_t *len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_set_cfg_str() - Set values for a particular CFG
|
||||||
|
* @src: pointer to the source buffer.
|
||||||
|
* @dst_cfg_str: pointer to the cfg string structure to be modified
|
||||||
|
* @len: length to be written
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
|
||||||
|
*/
|
||||||
|
QDF_STATUS wlan_mlme_set_cfg_str(uint8_t *src, struct mlme_cfg_str *dst_cfg_str,
|
||||||
|
qdf_size_t len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_edca_params() - get the EDCA parameters corresponding to the
|
||||||
|
* edca profile access category
|
||||||
|
* @edca_params: pointer to mlme edca parameters structure
|
||||||
|
* @data: data to which the parameter is to be copied
|
||||||
|
* @edca_ac: edca ac type enum passed to get the cfg value
|
||||||
|
*
|
||||||
|
* Return QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
QDF_STATUS wlan_mlme_get_edca_params(struct wlan_mlme_edca_params *edca_params,
|
||||||
|
uint8_t *data, enum e_edca_type edca_ac);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_mlme_get_ht_cap_info() - Get the HT cap info config
|
* wlan_mlme_get_ht_cap_info() - Get the HT cap info config
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
|
@@ -28,17 +28,20 @@
|
|||||||
#define CFG_PMKID_MODES_OKC (0x1)
|
#define CFG_PMKID_MODES_OKC (0x1)
|
||||||
#define CFG_PMKID_MODES_PMKSA_CACHING (0x2)
|
#define CFG_PMKID_MODES_PMKSA_CACHING (0x2)
|
||||||
|
|
||||||
|
#define CFG_STR_DATA_LEN 17
|
||||||
#define CFG_EDCA_DATA_LEN 17
|
#define CFG_EDCA_DATA_LEN 17
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct mlme_cfg_str - generic structure for all mlme CFG string items
|
* struct mlme_cfg_str - generic structure for all mlme CFG string items
|
||||||
*
|
*
|
||||||
* @len: length of the string
|
* @max_len: maximum data length allowed
|
||||||
|
* @len: valid no. of elements of the data
|
||||||
* @data: uint8_t array to store values
|
* @data: uint8_t array to store values
|
||||||
*/
|
*/
|
||||||
struct mlme_cfg_str {
|
struct mlme_cfg_str {
|
||||||
|
qdf_size_t max_len;
|
||||||
qdf_size_t len;
|
qdf_size_t len;
|
||||||
uint8_t data[CFG_EDCA_DATA_LEN];
|
uint8_t data[CFG_STR_DATA_LEN];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -96,6 +99,18 @@ enum e_edca_type {
|
|||||||
edca_etsi_acvo_bcast
|
edca_etsi_acvo_bcast
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define CFG_EDCA_PROFILE_ACM_IDX 0
|
||||||
|
#define CFG_EDCA_PROFILE_AIFSN_IDX 1
|
||||||
|
#define CFG_EDCA_PROFILE_CWMINA_IDX 2
|
||||||
|
#define CFG_EDCA_PROFILE_CWMAXA_IDX 4
|
||||||
|
#define CFG_EDCA_PROFILE_TXOPA_IDX 6
|
||||||
|
#define CFG_EDCA_PROFILE_CWMINB_IDX 7
|
||||||
|
#define CFG_EDCA_PROFILE_CWMAXB_IDX 9
|
||||||
|
#define CFG_EDCA_PROFILE_TXOPB_IDX 11
|
||||||
|
#define CFG_EDCA_PROFILE_CWMING_IDX 12
|
||||||
|
#define CFG_EDCA_PROFILE_CWMAXG_IDX 14
|
||||||
|
#define CFG_EDCA_PROFILE_TXOPG_IDX 16
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct mlme_edca_params - EDCA pramaters related config items
|
* struct mlme_edca_params - EDCA pramaters related config items
|
||||||
*
|
*
|
||||||
|
@@ -25,6 +25,35 @@
|
|||||||
#include "wma_types.h"
|
#include "wma_types.h"
|
||||||
#include "wmi_unified.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,
|
QDF_STATUS wlan_mlme_get_ht_cap_info(struct wlan_objmgr_psoc *psoc,
|
||||||
struct mlme_ht_capabilities_info
|
struct mlme_ht_capabilities_info
|
||||||
*ht_cap_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;
|
mlme_obj->cfg.oce.enable_bcast_probe_rsp = value;
|
||||||
return QDF_STATUS_SUCCESS;
|
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;
|
||||||
|
}
|
||||||
|
@@ -84,22 +84,6 @@ enum {
|
|||||||
WNI_CFG_MAX_SP_LENGTH,
|
WNI_CFG_MAX_SP_LENGTH,
|
||||||
WNI_CFG_WSM_ENABLED,
|
WNI_CFG_WSM_ENABLED,
|
||||||
WNI_CFG_EDCA_PROFILE,
|
WNI_CFG_EDCA_PROFILE,
|
||||||
WNI_CFG_EDCA_ANI_ACBK_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACBE_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVI_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVO_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACBK,
|
|
||||||
WNI_CFG_EDCA_ANI_ACBE,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVI,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVO,
|
|
||||||
WNI_CFG_EDCA_WME_ACBK_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACBE_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACVI_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACVO_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACBK,
|
|
||||||
WNI_CFG_EDCA_WME_ACBE,
|
|
||||||
WNI_CFG_EDCA_WME_ACVI,
|
|
||||||
WNI_CFG_EDCA_WME_ACVO,
|
|
||||||
WNI_CFG_LOCAL_POWER_CONSTRAINT,
|
WNI_CFG_LOCAL_POWER_CONSTRAINT,
|
||||||
WNI_CFG_ADMIT_POLICY,
|
WNI_CFG_ADMIT_POLICY,
|
||||||
WNI_CFG_ADMIT_BWFACTOR,
|
WNI_CFG_ADMIT_BWFACTOR,
|
||||||
@@ -287,14 +271,6 @@ enum {
|
|||||||
WNI_CFG_SAP_MAX_MCS_DATA,
|
WNI_CFG_SAP_MAX_MCS_DATA,
|
||||||
WNI_CFG_RATE_FOR_TX_MGMT_2G,
|
WNI_CFG_RATE_FOR_TX_MGMT_2G,
|
||||||
WNI_CFG_RATE_FOR_TX_MGMT_5G,
|
WNI_CFG_RATE_FOR_TX_MGMT_5G,
|
||||||
WNI_CFG_EDCA_ETSI_ACBK_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACBE_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVI_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVO_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACBK,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACBE,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVI,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVO,
|
|
||||||
WNI_CFG_OBSS_DETECTION_OFFLOAD,
|
WNI_CFG_OBSS_DETECTION_OFFLOAD,
|
||||||
WNI_CFG_OBSS_COLOR_COLLISION_OFFLOAD,
|
WNI_CFG_OBSS_COLOR_COLLISION_OFFLOAD,
|
||||||
WNI_CFG_TWT_REQUESTOR,
|
WNI_CFG_TWT_REQUESTOR,
|
||||||
@@ -327,30 +303,6 @@ enum {
|
|||||||
#define WNI_CFG_MAX_TX_POWER_2_4_LEN 128
|
#define WNI_CFG_MAX_TX_POWER_2_4_LEN 128
|
||||||
#define WNI_CFG_MAX_TX_POWER_5_LEN 128
|
#define WNI_CFG_MAX_TX_POWER_5_LEN 128
|
||||||
#define WNI_CFG_COUNTRY_CODE_LEN 3
|
#define WNI_CFG_COUNTRY_CODE_LEN 3
|
||||||
#define WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ANI_ACBE_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ANI_ACVI_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ANI_ACVO_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ANI_ACBK_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ANI_ACBE_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ANI_ACVI_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ANI_ACVO_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACBK_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACBE_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACVI_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACVO_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACBK_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACBE_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACVI_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_WME_ACVO_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACBK_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACBE_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACVI_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACVO_LOCAL_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACBK_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACBE_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACVI_LEN 20
|
|
||||||
#define WNI_CFG_EDCA_ETSI_ACVO_LEN 20
|
|
||||||
#define WNI_CFG_SCAN_CONTROL_LIST_LEN 128
|
#define WNI_CFG_SCAN_CONTROL_LIST_LEN 128
|
||||||
#define WNI_CFG_SUPPORTED_MCS_SET_LEN 16
|
#define WNI_CFG_SUPPORTED_MCS_SET_LEN 16
|
||||||
#define WNI_CFG_BASIC_MCS_SET_LEN 16
|
#define WNI_CFG_BASIC_MCS_SET_LEN 16
|
||||||
@@ -668,17 +620,6 @@ enum {
|
|||||||
#define WNI_CFG_EDCA_PROFILE_TIT_DEMO 2
|
#define WNI_CFG_EDCA_PROFILE_TIT_DEMO 2
|
||||||
#define WNI_CFG_EDCA_PROFILE_ETSI_EUROPE 3
|
#define WNI_CFG_EDCA_PROFILE_ETSI_EUROPE 3
|
||||||
#define WNI_CFG_EDCA_PROFILE_MAX 4
|
#define WNI_CFG_EDCA_PROFILE_MAX 4
|
||||||
#define WNI_CFG_EDCA_PROFILE_ACM_IDX 0
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_AIFSN_IDX 1
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_CWMINA_IDX 2
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_CWMAXA_IDX 4
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_TXOPA_IDX 6
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_CWMINB_IDX 7
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_CWMAXB_IDX 9
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_TXOPB_IDX 11
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_CWMING_IDX 12
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_CWMAXG_IDX 14
|
|
||||||
#define WNI_CFG_EDCA_PROFILE_TXOPG_IDX 16
|
|
||||||
|
|
||||||
#define WNI_CFG_LOCAL_POWER_CONSTRAINT_STAMIN 0
|
#define WNI_CFG_LOCAL_POWER_CONSTRAINT_STAMIN 0
|
||||||
#define WNI_CFG_LOCAL_POWER_CONSTRAINT_STAMAX 255
|
#define WNI_CFG_LOCAL_POWER_CONSTRAINT_STAMAX 255
|
||||||
|
@@ -99,22 +99,6 @@ const char *cfg_get_string(uint16_t cfg_id)
|
|||||||
CASE_RETURN_STRING(WNI_CFG_MAX_SP_LENGTH);
|
CASE_RETURN_STRING(WNI_CFG_MAX_SP_LENGTH);
|
||||||
CASE_RETURN_STRING(WNI_CFG_WSM_ENABLED);
|
CASE_RETURN_STRING(WNI_CFG_WSM_ENABLED);
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_PROFILE);
|
CASE_RETURN_STRING(WNI_CFG_EDCA_PROFILE);
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACBK_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACBE_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACVI_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACVO_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACBK);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACBE);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACVI);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ANI_ACVO);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACBK_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACBE_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACVI_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACVO_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACBK);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACBE);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACVI);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_WME_ACVO);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_LOCAL_POWER_CONSTRAINT);
|
CASE_RETURN_STRING(WNI_CFG_LOCAL_POWER_CONSTRAINT);
|
||||||
CASE_RETURN_STRING(WNI_CFG_ADMIT_POLICY);
|
CASE_RETURN_STRING(WNI_CFG_ADMIT_POLICY);
|
||||||
CASE_RETURN_STRING(WNI_CFG_ADMIT_BWFACTOR);
|
CASE_RETURN_STRING(WNI_CFG_ADMIT_BWFACTOR);
|
||||||
@@ -294,14 +278,6 @@ const char *cfg_get_string(uint16_t cfg_id)
|
|||||||
CASE_RETURN_STRING(WNI_CFG_SAP_MAX_MCS_DATA);
|
CASE_RETURN_STRING(WNI_CFG_SAP_MAX_MCS_DATA);
|
||||||
CASE_RETURN_STRING(WNI_CFG_RATE_FOR_TX_MGMT_2G);
|
CASE_RETURN_STRING(WNI_CFG_RATE_FOR_TX_MGMT_2G);
|
||||||
CASE_RETURN_STRING(WNI_CFG_RATE_FOR_TX_MGMT_5G);
|
CASE_RETURN_STRING(WNI_CFG_RATE_FOR_TX_MGMT_5G);
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACBK_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACBE_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACVI_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACVO_LOCAL);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACBK);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACBE);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACVI);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_EDCA_ETSI_ACVO);
|
|
||||||
CASE_RETURN_STRING(WNI_CFG_OBSS_DETECTION_OFFLOAD);
|
CASE_RETURN_STRING(WNI_CFG_OBSS_DETECTION_OFFLOAD);
|
||||||
CASE_RETURN_STRING(WNI_CFG_OBSS_COLOR_COLLISION_OFFLOAD);
|
CASE_RETURN_STRING(WNI_CFG_OBSS_COLOR_COLLISION_OFFLOAD);
|
||||||
CASE_RETURN_STRING(WNI_CFG_TWT_REQUESTOR);
|
CASE_RETURN_STRING(WNI_CFG_TWT_REQUESTOR);
|
||||||
|
@@ -310,54 +310,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
|
|||||||
WNI_CFG_EDCA_PROFILE_STAMIN,
|
WNI_CFG_EDCA_PROFILE_STAMIN,
|
||||||
WNI_CFG_EDCA_PROFILE_STAMAX,
|
WNI_CFG_EDCA_PROFILE_STAMAX,
|
||||||
WNI_CFG_EDCA_PROFILE_STADEF},
|
WNI_CFG_EDCA_PROFILE_STADEF},
|
||||||
{WNI_CFG_EDCA_ANI_ACBK_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ANI_ACBE_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVI_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVO_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ANI_ACBK,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ANI_ACBE,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVI,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVO,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACBK_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACBE_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACVI_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACVO_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACBK,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACBE,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACVI,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_WME_ACVO,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_LOCAL_POWER_CONSTRAINT,
|
{WNI_CFG_LOCAL_POWER_CONSTRAINT,
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
|
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
|
||||||
CFG_CTL_RESTART,
|
CFG_CTL_RESTART,
|
||||||
@@ -1279,30 +1231,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
|
|||||||
WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMIN,
|
WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMIN,
|
||||||
WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMAX,
|
WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMAX,
|
||||||
WNI_CFG_RATE_FOR_TX_MGMT_5G_STADEF},
|
WNI_CFG_RATE_FOR_TX_MGMT_5G_STADEF},
|
||||||
{WNI_CFG_EDCA_ETSI_ACBK_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACBE_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVI_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVO_LOCAL,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACBK,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACBE,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVI,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVO,
|
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
|
|
||||||
0, 0, 0},
|
|
||||||
{WNI_CFG_OBSS_DETECTION_OFFLOAD,
|
{WNI_CFG_OBSS_DETECTION_OFFLOAD,
|
||||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
|
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
|
||||||
0, 1, 0},
|
0, 1, 0},
|
||||||
@@ -1406,83 +1334,6 @@ cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = {
|
|||||||
WNI_CFG_COUNTRY_CODE_LEN,
|
WNI_CFG_COUNTRY_CODE_LEN,
|
||||||
0,
|
0,
|
||||||
{0} },
|
{0} },
|
||||||
{WNI_CFG_EDCA_ANI_ACBK_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
|
|
||||||
0xf, 0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_ANI_ACBE_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACBE_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0xf, 0x3, 0xff, 0x64, 0x0, 0x1f, 0x3, 0xff, 0x64, 0x0,
|
|
||||||
0xf, 0x3, 0xff, 0x64} },
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVI_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVI_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0xc8, 0x0, 0xf, 0x0, 0x1f, 0xbc, 0x0,
|
|
||||||
0x7, 0x0, 0xf, 0xc8} },
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVO_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVO_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x64, 0x0, 0x7, 0x0, 0xf, 0x66, 0x0,
|
|
||||||
0x3, 0x0, 0x7, 0x64} },
|
|
||||||
{WNI_CFG_EDCA_ANI_ACBK,
|
|
||||||
WNI_CFG_EDCA_ANI_ACBK_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
|
|
||||||
0xf, 0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_ANI_ACBE,
|
|
||||||
WNI_CFG_EDCA_ANI_ACBE_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0xf, 0x3, 0xff, 0x64, 0x0, 0x1f, 0x3, 0xff, 0x64, 0x0,
|
|
||||||
0xf, 0x3, 0xff, 0x64} },
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVI,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVI_LEN,
|
|
||||||
17, {0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0xc8, 0x0, 0xf, 0x0, 0x1f,
|
|
||||||
0xbc, 0x0, 0x7, 0x0, 0xf, 0xc8} },
|
|
||||||
{WNI_CFG_EDCA_ANI_ACVO,
|
|
||||||
WNI_CFG_EDCA_ANI_ACVO_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x64, 0x0, 0x7, 0x0, 0xf, 0x66, 0x0, 0x3,
|
|
||||||
0x0, 0x7, 0x64} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACBK_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACBK_LOCAL_LEN,
|
|
||||||
17, {0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff,
|
|
||||||
0x0, 0x0, 0xf, 0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACBE_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACBE_LOCAL_LEN,
|
|
||||||
17, {0x0, 0x3, 0x0, 0xf, 0x0, 0x3f, 0x0, 0x0, 0x1f, 0x3, 0xff,
|
|
||||||
0x0, 0x0, 0xf, 0x0, 0x3f, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACVI_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACVI_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x1, 0x0, 0x7, 0x0, 0xf, 0x5e, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0, 0x7,
|
|
||||||
0x0, 0xf, 0x5e} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACVO_LOCAL,
|
|
||||||
WNI_CFG_EDCA_WME_ACVO_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x1, 0x0, 0x3, 0x0, 0x7, 0x2f, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0, 0x3,
|
|
||||||
0x0, 0x7, 0x2f} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACBK,
|
|
||||||
WNI_CFG_EDCA_WME_ACBK_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf,
|
|
||||||
0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACBE,
|
|
||||||
WNI_CFG_EDCA_WME_ACBE_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x3, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf,
|
|
||||||
0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACVI,
|
|
||||||
WNI_CFG_EDCA_WME_ACVI_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0x5e, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0, 0x7,
|
|
||||||
0x0, 0xf, 0x5e} },
|
|
||||||
{WNI_CFG_EDCA_WME_ACVO,
|
|
||||||
WNI_CFG_EDCA_WME_ACVO_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x2f, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0, 0x3,
|
|
||||||
0x0, 0x7, 0x2f} },
|
|
||||||
{WNI_CFG_SCAN_CONTROL_LIST,
|
{WNI_CFG_SCAN_CONTROL_LIST,
|
||||||
WNI_CFG_SCAN_CONTROL_LIST_LEN,
|
WNI_CFG_SCAN_CONTROL_LIST_LEN,
|
||||||
114,
|
114,
|
||||||
@@ -1524,46 +1375,6 @@ cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = {
|
|||||||
WNI_CFG_HE_PPET_LEN,
|
WNI_CFG_HE_PPET_LEN,
|
||||||
{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} },
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} },
|
||||||
{WNI_CFG_EDCA_ETSI_ACBK_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACBK_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
|
|
||||||
0xf, 0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACBE_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACBE_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x3, 0x0, 0xf, 0x0, 0x3f, 0xbb, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0,
|
|
||||||
0xf, 0x0, 0x3f, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVI_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVI_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x1, 0x0, 0x7, 0x0, 0xf, 0x7d, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0,
|
|
||||||
0x7, 0x0, 0xf, 0x5e} },
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVO_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVO_LOCAL_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x1, 0x0, 0x3, 0x0, 0x7, 0x3e, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0,
|
|
||||||
0x3, 0x0, 0x7, 0x2f} },
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACBK,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACBK_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0,
|
|
||||||
0xf, 0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACBE,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACBE_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x3, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0,
|
|
||||||
0xf, 0x3, 0xff, 0x0} },
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVI,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVI_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0x7d, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0,
|
|
||||||
0x7, 0x0, 0xf, 0x5e} },
|
|
||||||
{WNI_CFG_EDCA_ETSI_ACVO,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVO_LEN,
|
|
||||||
17,
|
|
||||||
{0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x3e, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0,
|
|
||||||
0x3, 0x0, 0x7, 0x2f} },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*--------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------*/
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#include "lim_send_messages.h"
|
#include "lim_send_messages.h"
|
||||||
|
|
||||||
#include "sch_api.h"
|
#include "sch_api.h"
|
||||||
|
#include "wlan_mlme_api.h"
|
||||||
|
|
||||||
/* / Minimum beacon interval allowed (in Kus) */
|
/* / Minimum beacon interval allowed (in Kus) */
|
||||||
#define SCH_BEACON_INTERVAL_MIN 10
|
#define SCH_BEACON_INTERVAL_MIN 10
|
||||||
@@ -39,10 +40,10 @@
|
|||||||
/* local functions */
|
/* local functions */
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
get_wmm_local_params(tpAniSirGlobal pMac,
|
get_wmm_local_params(tpAniSirGlobal pMac,
|
||||||
uint32_t params[][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN]);
|
uint32_t params[][CFG_EDCA_DATA_LEN]);
|
||||||
static void
|
static void
|
||||||
set_sch_edca_params(tpAniSirGlobal pMac,
|
set_sch_edca_params(tpAniSirGlobal pMac,
|
||||||
uint32_t params[][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN],
|
uint32_t params[][CFG_EDCA_DATA_LEN],
|
||||||
tpPESession psessionEntry);
|
tpPESession psessionEntry);
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
@@ -120,31 +121,6 @@ void sch_process_message(tpAniSirGlobal pMac, struct scheduler_msg *pSchMsg)
|
|||||||
sch_edca_profile_update(pMac, psessionEntry);
|
sch_edca_profile_update(pMac, psessionEntry);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WNI_CFG_EDCA_ANI_ACBK_LOCAL:
|
|
||||||
case WNI_CFG_EDCA_ANI_ACBE_LOCAL:
|
|
||||||
case WNI_CFG_EDCA_ANI_ACVI_LOCAL:
|
|
||||||
case WNI_CFG_EDCA_ANI_ACVO_LOCAL:
|
|
||||||
case WNI_CFG_EDCA_WME_ACBK_LOCAL:
|
|
||||||
case WNI_CFG_EDCA_WME_ACBE_LOCAL:
|
|
||||||
case WNI_CFG_EDCA_WME_ACVI_LOCAL:
|
|
||||||
case WNI_CFG_EDCA_WME_ACVO_LOCAL:
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry))
|
|
||||||
sch_qos_update_local(pMac, psessionEntry);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WNI_CFG_EDCA_ANI_ACBK:
|
|
||||||
case WNI_CFG_EDCA_ANI_ACBE:
|
|
||||||
case WNI_CFG_EDCA_ANI_ACVI:
|
|
||||||
case WNI_CFG_EDCA_ANI_ACVO:
|
|
||||||
case WNI_CFG_EDCA_WME_ACBK:
|
|
||||||
case WNI_CFG_EDCA_WME_ACBE:
|
|
||||||
case WNI_CFG_EDCA_WME_ACVI:
|
|
||||||
case WNI_CFG_EDCA_WME_ACVO:
|
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry)) {
|
|
||||||
sch_qos_update_broadcast(pMac, psessionEntry);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
pe_err("Cfg param %d indication not handled",
|
pe_err("Cfg param %d indication not handled",
|
||||||
pSchMsg->bodyval);
|
pSchMsg->bodyval);
|
||||||
@@ -157,34 +133,40 @@ void sch_process_message(tpAniSirGlobal pMac, struct scheduler_msg *pSchMsg)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get the local or broadcast parameters based on the profile sepcified in the config */
|
/**
|
||||||
/* params are delivered in this order: BK, BE, VI, VO */
|
* sch_get_params() - get the local or broadcast parameters based on the profile
|
||||||
|
* sepcified in the config params are delivered in this order: BE, BK, VI, VO
|
||||||
|
*/
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
sch_get_params(tpAniSirGlobal pMac,
|
sch_get_params(tpAniSirGlobal pMac,
|
||||||
uint32_t params[][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN],
|
uint32_t params[][CFG_EDCA_DATA_LEN],
|
||||||
uint8_t local)
|
uint8_t local)
|
||||||
{
|
{
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
uint32_t i, idx;
|
uint32_t i, idx;
|
||||||
uint32_t *prf;
|
uint32_t *prf;
|
||||||
|
struct wlan_mlme_edca_params *edca_params;
|
||||||
|
QDF_STATUS status;
|
||||||
uint8_t country_code_str[WNI_CFG_COUNTRY_CODE_LEN];
|
uint8_t country_code_str[WNI_CFG_COUNTRY_CODE_LEN];
|
||||||
uint32_t country_code_len = WNI_CFG_COUNTRY_CODE_LEN;
|
uint32_t country_code_len = WNI_CFG_COUNTRY_CODE_LEN;
|
||||||
uint32_t ani_l[] = {
|
uint32_t ani_l[] = {edca_ani_acbe_local, edca_ani_acbk_local,
|
||||||
WNI_CFG_EDCA_ANI_ACBE_LOCAL, WNI_CFG_EDCA_ANI_ACBK_LOCAL,
|
edca_ani_acvi_local, edca_ani_acvo_local};
|
||||||
WNI_CFG_EDCA_ANI_ACVI_LOCAL, WNI_CFG_EDCA_ANI_ACVO_LOCAL};
|
|
||||||
uint32_t wme_l[] = {
|
uint32_t wme_l[] = {edca_wme_acbe_local, edca_wme_acbk_local,
|
||||||
WNI_CFG_EDCA_WME_ACBE_LOCAL, WNI_CFG_EDCA_WME_ACBK_LOCAL,
|
edca_wme_acvi_local, edca_wme_acvo_local};
|
||||||
WNI_CFG_EDCA_WME_ACVI_LOCAL, WNI_CFG_EDCA_WME_ACVO_LOCAL};
|
|
||||||
uint32_t etsi_l[] = {WNI_CFG_EDCA_ETSI_ACBE_LOCAL,
|
uint32_t etsi_l[] = {edca_etsi_acbe_local, edca_etsi_acbk_local,
|
||||||
WNI_CFG_EDCA_ETSI_ACBK_LOCAL,
|
edca_etsi_acvi_local, edca_etsi_acvo_local};
|
||||||
WNI_CFG_EDCA_ETSI_ACVI_LOCAL,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVO_LOCAL};
|
uint32_t ani_b[] = {edca_ani_acbe_bcast, edca_ani_acbk_bcast,
|
||||||
uint32_t ani_b[] = { WNI_CFG_EDCA_ANI_ACBE, WNI_CFG_EDCA_ANI_ACBK,
|
edca_ani_acvi_bcast, edca_ani_acvo_bcast};
|
||||||
WNI_CFG_EDCA_ANI_ACVI, WNI_CFG_EDCA_ANI_ACVO};
|
|
||||||
uint32_t wme_b[] = { WNI_CFG_EDCA_WME_ACBE, WNI_CFG_EDCA_WME_ACBK,
|
uint32_t wme_b[] = {edca_wme_acbe_bcast, edca_wme_acbk_bcast,
|
||||||
WNI_CFG_EDCA_WME_ACVI, WNI_CFG_EDCA_WME_ACVO};
|
edca_wme_acvi_bcast, edca_wme_acvo_bcast};
|
||||||
uint32_t etsi_b[] = {WNI_CFG_EDCA_ETSI_ACBE, WNI_CFG_EDCA_ETSI_ACBK,
|
|
||||||
WNI_CFG_EDCA_ETSI_ACVI, WNI_CFG_EDCA_ETSI_ACVO};
|
uint32_t etsi_b[] = {edca_etsi_acbe_bcast, edca_etsi_acbk_bcast,
|
||||||
|
edca_etsi_acvi_bcast, edca_etsi_acvo_bcast};
|
||||||
|
edca_params = &pMac->mlme_cfg->edca_params;
|
||||||
|
|
||||||
if (wlan_cfg_get_str(pMac, WNI_CFG_COUNTRY_CODE, country_code_str,
|
if (wlan_cfg_get_str(pMac, WNI_CFG_COUNTRY_CODE, country_code_str,
|
||||||
&country_code_len) == QDF_STATUS_SUCCESS &&
|
&country_code_len) == QDF_STATUS_SUCCESS &&
|
||||||
@@ -237,21 +219,17 @@ sch_get_params(tpAniSirGlobal pMac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
uint8_t data[WNI_CFG_EDCA_ANI_ACBK_LEN];
|
uint8_t data[CFG_EDCA_DATA_LEN];
|
||||||
uint32_t len = WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN;
|
|
||||||
|
|
||||||
if (wlan_cfg_get_str
|
status = wlan_mlme_get_edca_params(edca_params,
|
||||||
(pMac, (uint16_t) prf[i], (uint8_t *) &data[0],
|
(uint8_t *)&data[0],
|
||||||
&len) != QDF_STATUS_SUCCESS) {
|
(uint8_t)prf[i]);
|
||||||
pe_err("cfgGet failed for %d", prf[i]);
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
|
pe_err("Get failed for ac:%d", i);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
if (len > WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN) {
|
|
||||||
pe_err("cfgGet for %d: length is %d instead of %d",
|
for (idx = 0; idx < CFG_EDCA_DATA_LEN; idx++)
|
||||||
prf[i], len, WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN);
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
for (idx = 0; idx < len; idx++)
|
|
||||||
params[i][idx] = (uint32_t) data[idx];
|
params[i][idx] = (uint32_t) data[idx];
|
||||||
}
|
}
|
||||||
pe_debug("GetParams: local=%d, profile = %d Done", local, val);
|
pe_debug("GetParams: local=%d, profile = %d Done", local, val);
|
||||||
@@ -327,7 +305,7 @@ broadcast_wmm_of_concurrent_sta_session(tpAniSirGlobal mac_ctx,
|
|||||||
|
|
||||||
void sch_qos_update_broadcast(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
void sch_qos_update_broadcast(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
||||||
{
|
{
|
||||||
uint32_t params[4][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN];
|
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
||||||
uint32_t cwminidx, cwmaxidx, txopidx;
|
uint32_t cwminidx, cwmaxidx, txopidx;
|
||||||
uint32_t phyMode;
|
uint32_t phyMode;
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
@@ -343,31 +321,31 @@ void sch_qos_update_broadcast(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
|||||||
pe_debug("QosUpdBcast: mode %d", phyMode);
|
pe_debug("QosUpdBcast: mode %d", phyMode);
|
||||||
|
|
||||||
if (phyMode == WNI_CFG_PHY_MODE_11G) {
|
if (phyMode == WNI_CFG_PHY_MODE_11G) {
|
||||||
cwminidx = WNI_CFG_EDCA_PROFILE_CWMING_IDX;
|
cwminidx = CFG_EDCA_PROFILE_CWMING_IDX;
|
||||||
cwmaxidx = WNI_CFG_EDCA_PROFILE_CWMAXG_IDX;
|
cwmaxidx = CFG_EDCA_PROFILE_CWMAXG_IDX;
|
||||||
txopidx = WNI_CFG_EDCA_PROFILE_TXOPG_IDX;
|
txopidx = CFG_EDCA_PROFILE_TXOPG_IDX;
|
||||||
} else if (phyMode == WNI_CFG_PHY_MODE_11B) {
|
} else if (phyMode == WNI_CFG_PHY_MODE_11B) {
|
||||||
cwminidx = WNI_CFG_EDCA_PROFILE_CWMINB_IDX;
|
cwminidx = CFG_EDCA_PROFILE_CWMINB_IDX;
|
||||||
cwmaxidx = WNI_CFG_EDCA_PROFILE_CWMAXB_IDX;
|
cwmaxidx = CFG_EDCA_PROFILE_CWMAXB_IDX;
|
||||||
txopidx = WNI_CFG_EDCA_PROFILE_TXOPB_IDX;
|
txopidx = CFG_EDCA_PROFILE_TXOPB_IDX;
|
||||||
} else {
|
} else {
|
||||||
/* This can happen if mode is not set yet, assume 11a mode */
|
/* This can happen if mode is not set yet, assume 11a mode */
|
||||||
cwminidx = WNI_CFG_EDCA_PROFILE_CWMINA_IDX;
|
cwminidx = CFG_EDCA_PROFILE_CWMINA_IDX;
|
||||||
cwmaxidx = WNI_CFG_EDCA_PROFILE_CWMAXA_IDX;
|
cwmaxidx = CFG_EDCA_PROFILE_CWMAXA_IDX;
|
||||||
txopidx = WNI_CFG_EDCA_PROFILE_TXOPA_IDX;
|
txopidx = CFG_EDCA_PROFILE_TXOPA_IDX;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_NUM_AC; i++) {
|
for (i = 0; i < MAX_NUM_AC; i++) {
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].aci.acm !=
|
if (psessionEntry->gLimEdcaParamsBC[i].aci.acm !=
|
||||||
(uint8_t) params[i][WNI_CFG_EDCA_PROFILE_ACM_IDX]) {
|
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX]) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].aci.acm =
|
psessionEntry->gLimEdcaParamsBC[i].aci.acm =
|
||||||
(uint8_t) params[i][WNI_CFG_EDCA_PROFILE_ACM_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX];
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].aci.aifsn !=
|
if (psessionEntry->gLimEdcaParamsBC[i].aci.aifsn !=
|
||||||
(uint8_t) params[i][WNI_CFG_EDCA_PROFILE_AIFSN_IDX]) {
|
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX]) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].aci.aifsn =
|
psessionEntry->gLimEdcaParamsBC[i].aci.aifsn =
|
||||||
(uint8_t) params[i][WNI_CFG_EDCA_PROFILE_AIFSN_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX];
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].cw.min !=
|
if (psessionEntry->gLimEdcaParamsBC[i].cw.min !=
|
||||||
@@ -383,9 +361,9 @@ void sch_qos_update_broadcast(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
|||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
if (psessionEntry->gLimEdcaParamsBC[i].txoplimit !=
|
if (psessionEntry->gLimEdcaParamsBC[i].txoplimit !=
|
||||||
(uint16_t) params[i][txopidx]) {
|
(uint16_t)params[i][txopidx]) {
|
||||||
psessionEntry->gLimEdcaParamsBC[i].txoplimit =
|
psessionEntry->gLimEdcaParamsBC[i].txoplimit =
|
||||||
(uint16_t) params[i][txopidx];
|
(uint16_t)params[i][txopidx];
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -416,7 +394,7 @@ void sch_qos_update_broadcast(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
|||||||
void sch_qos_update_local(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
void sch_qos_update_local(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
||||||
{
|
{
|
||||||
|
|
||||||
uint32_t params[4][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN];
|
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
status = sch_get_params(pMac, params, true /*local */);
|
status = sch_get_params(pMac, params, true /*local */);
|
||||||
@@ -432,16 +410,17 @@ void sch_qos_update_local(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
|||||||
psessionEntry->bssIdx, false);
|
psessionEntry->bssIdx, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ----------------------------------------------------------
|
/**
|
||||||
\fn sch_set_default_edca_params
|
* sch_set_default_edca_params() - This function sets the gLimEdcaParams to the
|
||||||
\brief This function sets the gLimEdcaParams to the default
|
* default local wmm profile.
|
||||||
\ local wmm profile.
|
* @pMac - Global mac context
|
||||||
\param tpAniSirGlobal pMac
|
* @psessionEntry - PE session
|
||||||
\return none
|
*
|
||||||
\ ------------------------------------------------------------ */
|
* return none
|
||||||
|
*/
|
||||||
void sch_set_default_edca_params(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
void sch_set_default_edca_params(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
||||||
{
|
{
|
||||||
uint32_t params[4][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN];
|
uint32_t params[4][CFG_EDCA_DATA_LEN];
|
||||||
|
|
||||||
if (get_wmm_local_params(pMac, params) != QDF_STATUS_SUCCESS) {
|
if (get_wmm_local_params(pMac, params) != QDF_STATUS_SUCCESS) {
|
||||||
pe_err("get_wmm_local_params() failed");
|
pe_err("get_wmm_local_params() failed");
|
||||||
@@ -452,16 +431,18 @@ void sch_set_default_edca_params(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ----------------------------------------------------------
|
/**
|
||||||
\fn set_sch_edca_params
|
* set_sch_edca_params() - This function fills in the gLimEdcaParams structure
|
||||||
\brief This function fills in the gLimEdcaParams structure
|
* with the given edca params.
|
||||||
\ with the given edca params.
|
* @pMac - global mac context
|
||||||
\param tpAniSirGlobal pMac
|
* @psessionEntry - PE session
|
||||||
\return none
|
* @params - EDCA parameters
|
||||||
\ ------------------------------------------------------------ */
|
*
|
||||||
|
* Return none
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
set_sch_edca_params(tpAniSirGlobal pMac,
|
set_sch_edca_params(tpAniSirGlobal pMac,
|
||||||
uint32_t params[][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN],
|
uint32_t params[][CFG_EDCA_DATA_LEN],
|
||||||
tpPESession psessionEntry)
|
tpPESession psessionEntry)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
@@ -473,33 +454,33 @@ set_sch_edca_params(tpAniSirGlobal pMac,
|
|||||||
pe_debug("lim_get_phy_mode() = %d", phyMode);
|
pe_debug("lim_get_phy_mode() = %d", phyMode);
|
||||||
/* if (pMac->lim.gLimPhyMode == WNI_CFG_PHY_MODE_11G) */
|
/* if (pMac->lim.gLimPhyMode == WNI_CFG_PHY_MODE_11G) */
|
||||||
if (phyMode == WNI_CFG_PHY_MODE_11G) {
|
if (phyMode == WNI_CFG_PHY_MODE_11G) {
|
||||||
cwminidx = WNI_CFG_EDCA_PROFILE_CWMING_IDX;
|
cwminidx = CFG_EDCA_PROFILE_CWMING_IDX;
|
||||||
cwmaxidx = WNI_CFG_EDCA_PROFILE_CWMAXG_IDX;
|
cwmaxidx = CFG_EDCA_PROFILE_CWMAXG_IDX;
|
||||||
txopidx = WNI_CFG_EDCA_PROFILE_TXOPG_IDX;
|
txopidx = CFG_EDCA_PROFILE_TXOPG_IDX;
|
||||||
}
|
}
|
||||||
/* else if (pMac->lim.gLimPhyMode == WNI_CFG_PHY_MODE_11B) */
|
/* else if (pMac->lim.gLimPhyMode == WNI_CFG_PHY_MODE_11B) */
|
||||||
else if (phyMode == WNI_CFG_PHY_MODE_11B) {
|
else if (phyMode == WNI_CFG_PHY_MODE_11B) {
|
||||||
cwminidx = WNI_CFG_EDCA_PROFILE_CWMINB_IDX;
|
cwminidx = CFG_EDCA_PROFILE_CWMINB_IDX;
|
||||||
cwmaxidx = WNI_CFG_EDCA_PROFILE_CWMAXB_IDX;
|
cwmaxidx = CFG_EDCA_PROFILE_CWMAXB_IDX;
|
||||||
txopidx = WNI_CFG_EDCA_PROFILE_TXOPB_IDX;
|
txopidx = CFG_EDCA_PROFILE_TXOPB_IDX;
|
||||||
} else {
|
} else {
|
||||||
/* This can happen if mode is not set yet, assume 11a mode */
|
/* This can happen if mode is not set yet, assume 11a mode */
|
||||||
cwminidx = WNI_CFG_EDCA_PROFILE_CWMINA_IDX;
|
cwminidx = CFG_EDCA_PROFILE_CWMINA_IDX;
|
||||||
cwmaxidx = WNI_CFG_EDCA_PROFILE_CWMAXA_IDX;
|
cwmaxidx = CFG_EDCA_PROFILE_CWMAXA_IDX;
|
||||||
txopidx = WNI_CFG_EDCA_PROFILE_TXOPA_IDX;
|
txopidx = CFG_EDCA_PROFILE_TXOPA_IDX;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_NUM_AC; i++) {
|
for (i = 0; i < MAX_NUM_AC; i++) {
|
||||||
psessionEntry->gLimEdcaParams[i].aci.acm =
|
psessionEntry->gLimEdcaParams[i].aci.acm =
|
||||||
(uint8_t) params[i][WNI_CFG_EDCA_PROFILE_ACM_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_ACM_IDX];
|
||||||
psessionEntry->gLimEdcaParams[i].aci.aifsn =
|
psessionEntry->gLimEdcaParams[i].aci.aifsn =
|
||||||
(uint8_t) params[i][WNI_CFG_EDCA_PROFILE_AIFSN_IDX];
|
(uint8_t)params[i][CFG_EDCA_PROFILE_AIFSN_IDX];
|
||||||
psessionEntry->gLimEdcaParams[i].cw.min =
|
psessionEntry->gLimEdcaParams[i].cw.min =
|
||||||
convert_cw(GET_CW(¶ms[i][cwminidx]));
|
convert_cw(GET_CW(¶ms[i][cwminidx]));
|
||||||
psessionEntry->gLimEdcaParams[i].cw.max =
|
psessionEntry->gLimEdcaParams[i].cw.max =
|
||||||
convert_cw(GET_CW(¶ms[i][cwmaxidx]));
|
convert_cw(GET_CW(¶ms[i][cwmaxidx]));
|
||||||
psessionEntry->gLimEdcaParams[i].txoplimit =
|
psessionEntry->gLimEdcaParams[i].txoplimit =
|
||||||
(uint16_t) params[i][txopidx];
|
(uint16_t)params[i][txopidx];
|
||||||
|
|
||||||
pe_debug("AC :%d: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
|
pe_debug("AC :%d: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
|
||||||
i, psessionEntry->gLimEdcaParams[i].aci.aifsn,
|
i, psessionEntry->gLimEdcaParams[i].aci.aifsn,
|
||||||
@@ -512,53 +493,54 @@ set_sch_edca_params(tpAniSirGlobal pMac,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ----------------------------------------------------------
|
/**
|
||||||
\fn get_wmm_local_params
|
* get_wmm_local_params() - This function gets the WMM local edca parameters.
|
||||||
\brief This function gets the WMM local edca parameters.
|
* @pMac
|
||||||
\param tpAniSirGlobal pMac
|
* @params[][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN]
|
||||||
\param uint32_t params[][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN]
|
*
|
||||||
\return none
|
* Return none
|
||||||
\ ------------------------------------------------------------ */
|
*/
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
get_wmm_local_params(tpAniSirGlobal pMac,
|
get_wmm_local_params(tpAniSirGlobal mac_ctx,
|
||||||
uint32_t params[][WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN])
|
uint32_t params[][CFG_EDCA_DATA_LEN])
|
||||||
{
|
{
|
||||||
uint32_t i, idx;
|
uint32_t i, idx;
|
||||||
uint32_t *prf;
|
QDF_STATUS status;
|
||||||
uint32_t wme_l[] = {
|
struct wlan_mlme_edca_params *edca_params;
|
||||||
WNI_CFG_EDCA_WME_ACBE_LOCAL, WNI_CFG_EDCA_WME_ACBK_LOCAL,
|
uint32_t wme_l[] = {edca_wme_acbe_local, edca_wme_acbk_local,
|
||||||
WNI_CFG_EDCA_WME_ACVI_LOCAL, WNI_CFG_EDCA_WME_ACVO_LOCAL};
|
edca_wme_acvi_local, edca_wme_acvo_local};
|
||||||
|
|
||||||
prf = &wme_l[0];
|
if (!mac_ctx->mlme_cfg) {
|
||||||
|
pe_err("NULL mlme cfg");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
edca_params = &mac_ctx->mlme_cfg->edca_params;
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
uint8_t data[WNI_CFG_EDCA_ANI_ACBK_LEN];
|
uint8_t data[CFG_EDCA_DATA_LEN];
|
||||||
uint32_t len = WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN;
|
|
||||||
|
|
||||||
if (wlan_cfg_get_str
|
status = wlan_mlme_get_edca_params(edca_params,
|
||||||
(pMac, (uint16_t) prf[i], (uint8_t *) &data[0],
|
(uint8_t *)&data[0],
|
||||||
&len) != QDF_STATUS_SUCCESS) {
|
(uint8_t)wme_l[i]);
|
||||||
pe_err("cfgGet failed for %d", prf[i]);
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
|
pe_err("Get failed for ac:[%d]", i);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
if (len > WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN) {
|
for (idx = 0; idx < CFG_EDCA_DATA_LEN; idx++)
|
||||||
pe_err("cfgGet for %d: length is %d instead of %d",
|
|
||||||
prf[i], len, WNI_CFG_EDCA_ANI_ACBK_LOCAL_LEN);
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
for (idx = 0; idx < len; idx++)
|
|
||||||
params[i][idx] = (uint32_t) data[idx];
|
params[i][idx] = (uint32_t) data[idx];
|
||||||
}
|
}
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ----------------------------------------------------------
|
/**
|
||||||
\fn sch_edca_profile_update
|
* sch_edca_profile_update() - This function updates the local and broadcast
|
||||||
\brief This function updates the local and broadcast
|
* EDCA params in the gLimEdcaParams structure. It also updates the
|
||||||
\ EDCA params in the gLimEdcaParams structure. It also
|
* edcaParamSetCount.
|
||||||
\ updates the edcaParamSetCount.
|
*
|
||||||
\param tpAniSirGlobal pMac
|
* @pMac - global mac context
|
||||||
\return none
|
*
|
||||||
\ ------------------------------------------------------------ */
|
* Return none
|
||||||
|
*/
|
||||||
void sch_edca_profile_update(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
void sch_edca_profile_update(tpAniSirGlobal pMac, tpPESession psessionEntry)
|
||||||
{
|
{
|
||||||
if (LIM_IS_AP_ROLE(psessionEntry) ||
|
if (LIM_IS_AP_ROLE(psessionEntry) ||
|
||||||
|
Reference in New Issue
Block a user