qcacld-3.0: Add MLME CFG items of EDCA parameters

Add the EDCA cfg parameters:
1. WNI_CFG_EDCA_ANI_ACBK_LOCAL
2. WNI_CFG_EDCA_ANI_ACBE_LOCAL
3. WNI_CFG_EDCA_ANI_ACVI_LOCAL
4. WNI_CFG_EDCA_ANI_ACVO_LOCAL
5. WNI_CFG_EDCA_ANI_ACBK
6. WNI_CFG_EDCA_ANI_ACBE
7. WNI_CFG_EDCA_ANI_ACVI
8. WNI_CFG_EDCA_ANI_ACVO
9. WNI_CFG_EDCA_WME_ACBK_LOCAL
10. WNI_CFG_EDCA_WME_ACBE_LOCAL
11. WNI_CFG_EDCA_WME_ACVI_LOCAL
12. WNI_CFG_EDCA_WME_ACVO_LOCAL
13. WNI_CFG_EDCA_WME_ACBK
14. WNI_CFG_EDCA_WME_ACBE
15. WNI_CFG_EDCA_WME_ACVI
16. WNI_CFG_EDCA_WME_ACVO
17. WNI_CFG_EDCA_ETSI_ACBE_LOCAL
18. WNI_CFG_EDCA_ETSI_ACBK_LOCAL
19. WNI_CFG_EDCA_ETSI_ACVI_LOCAL
20. WNI_CFG_EDCA_ETSI_ACVO_LOCAL
21. WNI_CFG_EDCA_ETSI_ACBE
22. WNI_CFG_EDCA_ETSI_ACBK
23. WNI_CFG_EDCA_ETSI_ACVI
24. WNI_CFG_EDCA_ETSI_ACVO

Change-Id: I10ba5c2b8c63bd3fb19540e999c39f3fdf53197b
CRs-Fixed: 2315482
This commit is contained in:
Pragaspathi Thilagaraj
2018-09-15 22:58:18 +05:30
committed by Nitesh Shrivastav
parent 2e29c7972b
commit 5f45a5aaea
4 changed files with 557 additions and 0 deletions

View File

@@ -144,6 +144,142 @@ static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc,
mlme_init_pmf_cfg(psoc, gen); mlme_init_pmf_cfg(psoc, gen);
} }
static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)
{
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACBK_LOCAL),
edca_params->ani_acbk_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acbk_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACBE_LOCAL),
edca_params->ani_acbe_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acbe_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACVI_LOCAL),
edca_params->ani_acvi_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acvi_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACVO_LOCAL),
edca_params->ani_acvo_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acvo_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACBK),
edca_params->ani_acbk_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acbk_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACBE),
edca_params->ani_acbe_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acbe_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACVI),
edca_params->ani_acvi_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acvi_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ANI_ACVO),
edca_params->ani_acvo_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->ani_acvo_b.len);
}
static void mlme_init_edca_wme_cfg(struct wlan_mlme_edca_params *edca_params)
{
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACBK_LOCAL),
edca_params->wme_acbk_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acbk_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACBE_LOCAL),
edca_params->wme_acbe_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acbe_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACVI_LOCAL),
edca_params->wme_acvi_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acvi_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACVO_LOCAL),
edca_params->wme_acvo_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acvo_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACBK),
edca_params->wme_acbk_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acbk_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACBE),
edca_params->wme_acbe_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acbe_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACVI),
edca_params->wme_acvi_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acvi_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_WME_ACVO),
edca_params->wme_acvo_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->wme_acvo_b.len);
}
static void mlme_init_edca_etsi_cfg(struct wlan_mlme_edca_params *edca_params)
{
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACBK_LOCAL),
edca_params->etsi_acbk_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acbk_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACBE_LOCAL),
edca_params->etsi_acbe_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acbe_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACVI_LOCAL),
edca_params->etsi_acvi_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acvi_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACVO_LOCAL),
edca_params->etsi_acvo_l.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acvo_l.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACBK),
edca_params->etsi_acbk_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acbk_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACBE),
edca_params->etsi_acbe_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acbe_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACVI),
edca_params->etsi_acvi_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acvi_b.len);
qdf_uint8_array_parse(cfg_default(CFG_EDCA_ETSI_ACVO),
edca_params->etsi_acvo_b.data,
CFG_EDCA_DATA_LEN,
&edca_params->etsi_acvo_b.len);
}
static void mlme_init_edca_params(struct wlan_mlme_edca_params *edca_params)
{
mlme_init_edca_ani_cfg(edca_params);
mlme_init_edca_wme_cfg(edca_params);
mlme_init_edca_etsi_cfg(edca_params);
}
static void mlme_init_ht_cap_in_cfg(struct wlan_objmgr_psoc *psoc, static void mlme_init_ht_cap_in_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_ht_caps *ht_caps) struct wlan_mlme_ht_caps *ht_caps)
{ {
@@ -732,6 +868,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
mlme_cfg = &mlme_obj->cfg; mlme_cfg = &mlme_obj->cfg;
mlme_init_generic_cfg(psoc, &mlme_cfg->gen); mlme_init_generic_cfg(psoc, &mlme_cfg->gen);
mlme_init_edca_params(&mlme_cfg->edca_params);
mlme_init_ht_cap_in_cfg(psoc, &mlme_cfg->ht_caps); mlme_init_ht_cap_in_cfg(psoc, &mlme_cfg->ht_caps);
mlme_init_mbo_cfg(psoc, &mlme_cfg->mbo_cfg); mlme_init_mbo_cfg(psoc, &mlme_cfg->mbo_cfg);
mlme_init_qos_cfg(psoc, &mlme_cfg->qos_mlme_params); mlme_init_qos_cfg(psoc, &mlme_cfg->qos_mlme_params);

View File

@@ -24,6 +24,7 @@
#include "qdf_types.h" #include "qdf_types.h"
#include "cfg_mlme_chainmask.h" #include "cfg_mlme_chainmask.h"
#include "cfg_mlme_edca_params.h"
#include "cfg_mlme_generic.h" #include "cfg_mlme_generic.h"
#include "cfg_mlme_ht_caps.h" #include "cfg_mlme_ht_caps.h"
#include "cfg_mlme_he_caps.h" #include "cfg_mlme_he_caps.h"
@@ -42,6 +43,7 @@
/* Please Maintain Alphabetic Order here */ /* Please Maintain Alphabetic Order here */
#define CFG_MLME_ALL \ #define CFG_MLME_ALL \
CFG_CHAINMASK_ALL \ CFG_CHAINMASK_ALL \
CFG_EDCA_PARAMS_ALL \
CFG_GENERIC_ALL \ CFG_GENERIC_ALL \
CFG_HT_CAPS_ALL \ CFG_HT_CAPS_ALL \
CFG_HE_CAPS_ALL \ CFG_HE_CAPS_ALL \

View File

@@ -0,0 +1,292 @@
/*
* Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: This file contains centralized definitions of converged configuration.
*/
#ifndef __CFG_MLME_EDCA__PARAM_H
#define __CFG_MLME_EDCA__PARAM_H
#define STR_EDCA_ANI_ACBK_LOCAL "0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_ANI_ACBK_LOCAL_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACBK_LOCAL CFG_STRING( \
"edca_ani_acbk_local", \
0, \
STR_EDCA_ANI_ACBK_LOCAL_LEN, \
STR_EDCA_ANI_ACBK_LOCAL, \
"EDCA ANI ACBK LOCAL")
#define STR_EDCA_ANI_ACBE_LOCAL "0x0, 0x2, 0x0, 0xf, 0x3, 0xff, 0x64, 0x0, 0x1f, 0x3, 0xff, 0x64, 0x0, 0xf, 0x3, 0xff, 0x64"
#define STR_EDCA_ANI_ACBE_LOCAL_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACBE_LOCAL CFG_STRING( \
"edca_ani_acbe_local", \
0, \
STR_EDCA_ANI_ACBE_LOCAL_LEN, \
STR_EDCA_ANI_ACBE_LOCAL, \
"EDCA ANI ACBE LOCAL")
#define STR_EDCA_ANI_ACVI_LOCAL "0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0xc8, 0x0, 0xf, 0x0, 0x1f, 0xbc, 0x0, 0x7, 0x0, 0xf, 0xc8"
#define STR_EDCA_ANI_ACVI_LOCAL_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACVI_LOCAL CFG_STRING( \
"edca_ani_acvi_local",\
0, \
STR_EDCA_ANI_ACVI_LOCAL_LEN, \
STR_EDCA_ANI_ACVI_LOCAL, \
"EDCA ANI ACVI LOCAL")
#define STR_EDCA_ANI_ACVO_LOCAL "0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x64, 0x0, 0x7, 0x0, 0xf, 0x66, 0x0, 0x3, 0x0, 0x7, 0x64"
#define STR_EDCA_ANI_ACVO_LOCAL_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACVO_LOCAL CFG_STRING( \
"edca_ani_acvo_local", \
0, \
STR_EDCA_ANI_ACVO_LOCAL_LEN, \
STR_EDCA_ANI_ACVO_LOCAL, \
"EDCA ANI ACVO LOCAL")
#define STR_EDCA_ANI_ACBK "0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_ANI_ACBK_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACBK CFG_STRING( \
"edca_ani_acbk", \
0, \
STR_EDCA_ANI_ACBK_LEN, \
STR_EDCA_ANI_ACBK, \
"EDCA ANI ACBK BROADCAST")
#define STR_EDCA_ANI_ACBE "0x0, 0x2, 0x0, 0xf, 0x3, 0xff, 0x64, 0x0, 0x1f, 0x3, 0xff, 0x64, 0x0, 0xf, 0x3, 0xff, 0x64"
#define STR_EDCA_ANI_ACBE_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACBE CFG_STRING( \
"edca_ani_acbe", \
0, \
STR_EDCA_ANI_ACBE_LEN, \
STR_EDCA_ANI_ACBE, \
"EDCA ANI ACBE BROADCAST")
#define STR_EDCA_ANI_ACVI "0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0xc8, 0x0, 0xf, 0x0, 0x1f, 0xbc, 0x0, 0x7, 0x0, 0xf, 0xc8"
#define STR_EDCA_ANI_ACVI_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACVI CFG_STRING( \
"edca_ani_acvi", \
0, \
STR_EDCA_ANI_ACVI_LEN, \
STR_EDCA_ANI_ACVI, \
"EDCA ANI ACVI BROADCAST")
#define STR_EDCA_ANI_ACVO "0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x64, 0x0, 0x7, 0x0, 0xf, 0x66, 0x0, 0x3, 0x0, 0x7, 0x64"
#define STR_EDCA_ANI_ACVO_LEN (sizeof(STR_EDCA_ANI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ANI_ACVO CFG_STRING( \
"edca_ani_acvo", \
0, \
STR_EDCA_ANI_ACVO_LEN, \
STR_EDCA_ANI_ACVO, \
"EDCA ANI ACVO BROADCAST")
#define STR_EDCA_WME_ACBK_LOCAL "0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_WME_ACBK_LOCAL_LEN (sizeof(STR_EDCA_WME_ACBK_LOCAL) - 1)
#define CFG_EDCA_WME_ACBK_LOCAL CFG_STRING( \
"edca_wme_acbk_local", \
0, \
STR_EDCA_WME_ACBK_LOCAL_LEN, \
STR_EDCA_WME_ACBK_LOCAL, \
"EDCA WME ACBK LOCAL")
#define STR_EDCA_WME_ACBE_LOCAL "0x0, 0x3, 0x0, 0xf, 0x0, 0x3f, 0x0, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0, 0xf, 0x0, 0x3f, 0x0"
#define STR_EDCA_WME_ACBE_LOCAL_LEN (sizeof(STR_EDCA_WME_ACBE_LOCAL) - 1)
#define CFG_EDCA_WME_ACBE_LOCAL CFG_STRING( \
"edca_wme_acbe_local", \
0, \
STR_EDCA_WME_ACBE_LOCAL_LEN, \
STR_EDCA_WME_ACBE_LOCAL, \
"EDCA WME ACBE LOCAL")
#define STR_EDCA_WME_ACVI_LOCAL "0x0, 0x1, 0x0, 0x7, 0x0, 0xf, 0x5e, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0, 0x7, 0x0, 0xf, 0x5e"
#define STR_EDCA_WME_ACVI_LOCAL_LEN (sizeof(STR_EDCA_WME_ACVI_LOCAL) - 1)
#define CFG_EDCA_WME_ACVI_LOCAL CFG_STRING( \
"edca_wme_acvi_local", \
0, \
STR_EDCA_WME_ACVI_LOCAL_LEN, \
STR_EDCA_WME_ACVI_LOCAL, \
"EDCA WME ACVI LOCAL")
#define STR_EDCA_WME_ACVO_LOCAL "0x0, 0x1, 0x0, 0x3, 0x0, 0x7, 0x2f, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0, 0x3, 0x0, 0x7, 0x2f"
#define STR_EDCA_WME_ACVO_LOCAL_LEN (sizeof(STR_EDCA_WME_ACVO_LOCAL) - 1)
#define CFG_EDCA_WME_ACVO_LOCAL CFG_STRING( \
"edca_wme_acvo_local", \
0, \
STR_EDCA_WME_ACVO_LOCAL_LEN, \
STR_EDCA_WME_ACVO_LOCAL, \
"EDCA WME ACVO LOCAL")
#define STR_EDCA_WME_ACBK "0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_WME_ACBK_LEN (sizeof(STR_EDCA_WME_ACBK) - 1)
#define CFG_EDCA_WME_ACBK CFG_STRING( \
"edca_wme_acbk", \
0, \
STR_EDCA_WME_ACBK_LEN, \
STR_EDCA_WME_ACBK, \
"EDCA WME ACBK BROADCAST")
#define STR_EDCA_WME_ACBE "0x0, 0x3, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_WME_ACBE_LEN (sizeof(STR_EDCA_WME_ACBE) - 1)
#define CFG_EDCA_WME_ACBE CFG_STRING( \
"edca_wme_acbe", \
0, \
STR_EDCA_WME_ACBE_LEN, \
STR_EDCA_WME_ACBE, \
"EDCA WME ACBE BROADCAST")
#define STR_EDCA_WME_ACVI "0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0x5e, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0, 0x7, 0x0, 0xf, 0x5e"
#define STR_EDCA_WME_ACVI_LEN (sizeof(STR_EDCA_WME_ACVI) - 1)
#define CFG_EDCA_WME_ACVI CFG_STRING( \
"edca_wme_acvi", \
0, \
STR_EDCA_WME_ACVI_LEN, \
STR_EDCA_WME_ACVI, \
"EDCA WME ACVI BROADCAST")
#define STR_EDCA_WME_ACVO "0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x2f, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0, 0x3, 0x0, 0x7, 0x2f"
#define STR_EDCA_WME_ACVO_LEN (sizeof(STR_EDCA_WME_ACVO) - 1)
#define CFG_EDCA_WME_ACVO CFG_STRING( \
"edca_wme_acvo", \
0, \
STR_EDCA_WME_ACVO_LEN, \
STR_EDCA_WME_ACVO, \
"EDCA WME ACVO BROADCAST")
#define STR_EDCA_ETSI_ACBK_LOCAL "0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_ETSI_ACBK_LOCAL_LEN (sizeof(STR_EDCA_ETSI_ACBK_LOCAL) - 1)
#define CFG_EDCA_ETSI_ACBK_LOCAL CFG_STRING( \
"edca_etsi_acbk_local", \
0, \
STR_EDCA_ETSI_ACBK_LOCAL_LEN, \
STR_EDCA_ETSI_ACBK_LOCAL, \
"EDCA ETSI ACBK LOCAL")
#define STR_EDCA_ETSI_ACBE_LOCAL "0x0, 0x3, 0x0, 0xf, 0x0, 0x3f, 0xbb, 0x0, 0x1f, 0x3, 0xff, 0x0, 0x0, 0xf, 0x0, 0x3f, 0x0"
#define STR_EDCA_ETSI_ACBE_LOCAL_LEN (sizeof(STR_EDCA_ETSI_ACBE_LOCAL) - 1)
#define CFG_EDCA_ETSI_ACBE_LOCAL CFG_STRING( \
"edca_etsi_acbe_local", \
0, \
STR_EDCA_ETSI_ACBE_LOCAL_LEN, \
STR_EDCA_ETSI_ACBE_LOCAL, \
"EDCA ETSI ACBE LOCAL")
#define STR_EDCA_ETSI_ACVI_LOCAL "0x0, 0x1, 0x0, 0x7, 0x0, 0xf, 0x7d, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0, 0x7, 0x0, 0xf, 0x5e"
#define STR_EDCA_ETSI_ACVI_LOCAL_LEN (sizeof(STR_EDCA_ETSI_ACVI_LOCAL) - 1)
#define CFG_EDCA_ETSI_ACVI_LOCAL CFG_STRING( \
"edca_etsi_acvi_local", \
0, \
STR_EDCA_ETSI_ACVI_LOCAL_LEN, \
STR_EDCA_ETSI_ACVI_LOCAL, \
"EDCA ETSI ACVI LOCAL")
#define STR_EDCA_ETSI_ACVO_LOCAL "0x0, 0x1, 0x0, 0x3, 0x0, 0x7, 0x3e, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0, 0x3, 0x0, 0x7, 0x2f"
#define STR_EDCA_ETSI_ACVO_LOCAL_LEN (sizeof(STR_EDCA_ETSI_ACVO_LOCAL) - 1)
#define CFG_EDCA_ETSI_ACVO_LOCAL CFG_STRING( \
"edca_etsi_acvo_local", \
0, \
STR_EDCA_ETSI_ACVO_LOCAL_LEN, \
STR_EDCA_ETSI_ACVO_LOCAL, \
"EDCA ETSI ACVO LOCAL")
#define STR_EDCA_ETSI_ACBK "0x0, 0x7, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_ETSI_ACBK_LEN (sizeof(STR_EDCA_ETSI_ACBK) - 1)
#define CFG_EDCA_ETSI_ACBK CFG_STRING( \
"edca_etsi_acbk", \
0, \
STR_EDCA_ETSI_ACBK_LEN, \
STR_EDCA_ETSI_ACBK, \
"EDCA ETSI ACBK BROADCAST")
#define STR_EDCA_ETSI_ACBE "0x0, 0x3, 0x0, 0xf, 0x3, 0xff, 0xbb, 0x0, 0xf, 0x3, 0xff, 0x0, 0x0, 0xf, 0x3, 0xff, 0x0"
#define STR_EDCA_ETSI_ACBE_LEN (sizeof(STR_EDCA_ETSI_ACBE) - 1)
#define CFG_EDCA_ETSI_ACBE CFG_STRING( \
"edca_etsi_acbe", \
0, \
STR_EDCA_ETSI_ACBE_LEN, \
STR_EDCA_ETSI_ACBE, \
"EDCA ETSI ACBE BROADCAST")
#define STR_EDCA_ETSI_ACVI "0x0, 0x2, 0x0, 0x7, 0x0, 0xf, 0x7d, 0x0, 0x7, 0x0, 0xf, 0xbc, 0x0, 0x7, 0x0, 0xf, 0x5e"
#define STR_EDCA_ETSI_ACVI_LEN (sizeof(STR_EDCA_ETSI_ACVI) - 1)
#define CFG_EDCA_ETSI_ACVI CFG_STRING( \
"edca_etsi_acvi", \
0, \
STR_EDCA_ETSI_ACVI_LEN, \
STR_EDCA_ETSI_ACVI, \
"EDCA ETSI ACVI BROADCAST")
#define STR_EDCA_ETSI_ACVO "0x0, 0x2, 0x0, 0x3, 0x0, 0x7, 0x3e, 0x0, 0x3, 0x0, 0x7, 0x66, 0x0, 0x3, 0x0, 0x7, 0x2f"
#define STR_EDCA_ETSI_ACVO_LEN (sizeof(STR_EDCA_ETSI_ACVO) - 1)
#define CFG_EDCA_ETSI_ACVO CFG_STRING( \
"edca_etsi_acvo", \
0, \
STR_EDCA_ETSI_ACVO_LEN, \
STR_EDCA_ETSI_ACVO, \
"EDCA ETSI ACVO BROADCAST")
#define CFG_EDCA_PARAMS_ALL \
CFG(CFG_EDCA_ANI_ACBK_LOCAL) \
CFG(CFG_EDCA_ANI_ACBE_LOCAL) \
CFG(CFG_EDCA_ANI_ACVI_LOCAL) \
CFG(CFG_EDCA_ANI_ACVO_LOCAL) \
CFG(CFG_EDCA_ANI_ACBK) \
CFG(CFG_EDCA_ANI_ACBE) \
CFG(CFG_EDCA_ANI_ACVI) \
CFG(CFG_EDCA_ANI_ACVO) \
CFG(CFG_EDCA_WME_ACBK_LOCAL) \
CFG(CFG_EDCA_WME_ACBE_LOCAL) \
CFG(CFG_EDCA_WME_ACVI_LOCAL) \
CFG(CFG_EDCA_WME_ACVO_LOCAL) \
CFG(CFG_EDCA_WME_ACBK) \
CFG(CFG_EDCA_WME_ACBE) \
CFG(CFG_EDCA_WME_ACVI) \
CFG(CFG_EDCA_WME_ACVO) \
CFG(CFG_EDCA_ETSI_ACBK_LOCAL) \
CFG(CFG_EDCA_ETSI_ACBE_LOCAL) \
CFG(CFG_EDCA_ETSI_ACVI_LOCAL) \
CFG(CFG_EDCA_ETSI_ACVO_LOCAL) \
CFG(CFG_EDCA_ETSI_ACBK) \
CFG(CFG_EDCA_ETSI_ACBE) \
CFG(CFG_EDCA_ETSI_ACVI) \
CFG(CFG_EDCA_ETSI_ACVO)
#endif /* __CFG_MLME_EDCA__PARAM_H */

View File

@@ -28,6 +28,131 @@
#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_EDCA_DATA_LEN 17
/**
* struct mlme_cfg_str - generic structure for all mlme CFG string items
*
* @len: length of the string
* @data: uint8_t array to store values
*/
struct mlme_cfg_str {
qdf_size_t len;
uint8_t data[CFG_EDCA_DATA_LEN];
};
/**
* enum e_edca_type - to index edca params for edca profile
* EDCA profile AC unicast/bcast
* @edca_ani_acbe_local: ani BE unicast
* @edca_ani_acbk_local: ani BK unicast
* @edca_ani_acvi_local: ani VI unicast
* @edca_ani_acvo_local: ani VO unicast
* @edca_ani_acbe_bcast: ani BE bcast
* @edca_ani_acbk_bcast: ani BK bcast
* @edca_ani_acvi_bcast: ani VI bcast
* @edca_ani_acvo_bcast: ani VO bcast
* @edca_wme_acbe_local: wme BE unicast
* @edca_wme_acbk_local: wme BK unicast
* @edca_wme_acvi_local: wme VI unicast
* @edca_wme_acvo_local: wme VO unicast
* @edca_wme_acbe_bcast: wme BE bcast
* @edca_wme_acbk_bcast: wme BK bcast
* @edca_wme_acvi_bcast: wme VI bcast
* @edca_wme_acvo_bcast: wme VO bcast
* @edca_etsi_acbe_local: etsi BE unicast
* @edca_etsi_acbk_local: etsi BK unicast
* @edca_etsi_acvi_local: etsi VI unicast
* @edca_etsi_acvo_local: etsi VO unicast
* @edca_etsi_acbe_bcast: etsi BE bcast
* @edca_etsi_acbk_bcast: etsi BK bcast
* @edca_etsi_acvi_bcast: etsi VI bcast
* @edca_etsi_acvo_bcast: etsi VO bcast
*/
enum e_edca_type {
edca_ani_acbe_local,
edca_ani_acbk_local,
edca_ani_acvi_local,
edca_ani_acvo_local,
edca_ani_acbe_bcast,
edca_ani_acbk_bcast,
edca_ani_acvi_bcast,
edca_ani_acvo_bcast,
edca_wme_acbe_local,
edca_wme_acbk_local,
edca_wme_acvi_local,
edca_wme_acvo_local,
edca_wme_acbe_bcast,
edca_wme_acbk_bcast,
edca_wme_acvi_bcast,
edca_wme_acvo_bcast,
edca_etsi_acbe_local,
edca_etsi_acbk_local,
edca_etsi_acvi_local,
edca_etsi_acvo_local,
edca_etsi_acbe_bcast,
edca_etsi_acbk_bcast,
edca_etsi_acvi_bcast,
edca_etsi_acvo_bcast
};
/**
* struct mlme_edca_params - EDCA pramaters related config items
*
* @ani_acbk_l: EDCA parameters for ANI local access category background
* @ani_acbe_l: EDCA parameters for ANI local access category best effort
* @ani_acvi_l: EDCA parameters for ANI local access category video
* @ani_acvo_l: EDCA parameters for ANI local access category voice
* @ani_acbk_b: EDCA parameters for ANI bcast access category background
* @ani_acbe_b: EDCA parameters for ANI bcast access category best effort
* @ani_acvi_b: EDCA parameters for ANI bcast access category video
* @ani_acvo_b: EDCA parameters for ANI bcast access category voice
* @wme_acbk_l: EDCA parameters for WME local access category background
* @wme_acbe_l: EDCA parameters for WME local access category best effort
* @wme_acvi_l: EDCA parameters for WME local access category video
* @wme_acvo_l: EDCA parameters for WME local access category voice
* @wme_acbk_b: EDCA parameters for WME bcast access category background
* @wme_acbe_b: EDCA parameters for WME bcast access category best effort
* @wme_acvi_b: EDCA parameters for WME bcast access category video
* @wme_acvo_b: EDCA parameters for WME bcast access category voice
* @etsi_acbk_l: EDCA parameters for ETSI local access category background
* @etsi_acbe_l: EDCA parameters for ETSI local access category best effort
* @etsi_acvi_l: EDCA parameters for ETSI local access category video
* @etsi_acvo_l: EDCA parameters for ETSI local access category voice
* @etsi_acbk_b: EDCA parameters for ETSI bcast access category background
* @etsi_acbe_b: EDCA parameters for ETSI bcast access category best effort
* @etsi_acvi_b: EDCA parameters for ETSI bcast access category video
* @etsi_acvo_b: EDCA parameters for ETSI bcast access category voice
*/
struct wlan_mlme_edca_params {
struct mlme_cfg_str ani_acbk_l;
struct mlme_cfg_str ani_acbe_l;
struct mlme_cfg_str ani_acvi_l;
struct mlme_cfg_str ani_acvo_l;
struct mlme_cfg_str ani_acbk_b;
struct mlme_cfg_str ani_acbe_b;
struct mlme_cfg_str ani_acvi_b;
struct mlme_cfg_str ani_acvo_b;
struct mlme_cfg_str wme_acbk_l;
struct mlme_cfg_str wme_acbe_l;
struct mlme_cfg_str wme_acvi_l;
struct mlme_cfg_str wme_acvo_l;
struct mlme_cfg_str wme_acbk_b;
struct mlme_cfg_str wme_acbe_b;
struct mlme_cfg_str wme_acvi_b;
struct mlme_cfg_str wme_acvo_b;
struct mlme_cfg_str etsi_acbk_l;
struct mlme_cfg_str etsi_acbe_l;
struct mlme_cfg_str etsi_acvi_l;
struct mlme_cfg_str etsi_acvo_l;
struct mlme_cfg_str etsi_acbk_b;
struct mlme_cfg_str etsi_acbe_b;
struct mlme_cfg_str etsi_acvi_b;
struct mlme_cfg_str etsi_acvo_b;
};
/** /**
* struct mlme_ht_capabilities_info - HT Capabilities Info * struct mlme_ht_capabilities_info - HT Capabilities Info
* @l_sig_tx_op_protection: L-SIG TXOP Protection Mechanism support * @l_sig_tx_op_protection: L-SIG TXOP Protection Mechanism support
@@ -660,6 +785,7 @@ struct wlan_mlme_oce {
* @scoring: BSS Scoring related CFG Items * @scoring: BSS Scoring related CFG Items
*/ */
struct wlan_mlme_cfg { struct wlan_mlme_cfg {
struct wlan_mlme_edca_params edca_params;
struct wlan_mlme_generic gen; struct wlan_mlme_generic gen;
struct wlan_mlme_ht_caps ht_caps; struct wlan_mlme_ht_caps ht_caps;
struct wlan_mlme_he_caps he_caps; struct wlan_mlme_he_caps he_caps;