qcacld-3.0: ADD MLME INI items of WMM Configuration
Add the following WMM config ini configs to MLME cfg: 1. CFG_QOS_WMM_MODE_NAME 2. CFG_QOS_WMM_80211E_ENABLED_NAME 3. CFG_QOS_WMM_UAPSD_MASK_NAME 4. CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME Change-Id: I0c6354960b49d680e3efe304ea3300059c37015c CRs-Fixed: 2327691
Цей коміт міститься в:
@@ -1308,6 +1308,15 @@ static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
cfg_get(psoc, CFG_QOS_WMM_UAPSD_BK_SRV_INTV);
|
||||
wmm_params->ac_bk.uapsd_bk_sus_intv =
|
||||
cfg_get(psoc, CFG_QOS_WMM_UAPSD_BK_SUS_INTV);
|
||||
|
||||
wmm_params->wmm_config.wmm_mode =
|
||||
cfg_get(psoc, CFG_QOS_WMM_MODE);
|
||||
wmm_params->wmm_config.b80211e_is_enabled =
|
||||
cfg_get(psoc, CFG_QOS_WMM_80211E_ENABLED);
|
||||
wmm_params->wmm_config.uapsd_mask =
|
||||
cfg_get(psoc, CFG_QOS_WMM_UAPSD_MASK);
|
||||
wmm_params->wmm_config.bimplicit_qos_enabled =
|
||||
cfg_get(psoc, CFG_QOS_WMM_IMPLICIT_SETUP_ENABLED);
|
||||
}
|
||||
|
||||
static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
|
@@ -756,6 +756,101 @@
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Infra uapsd bk sus intv")
|
||||
|
||||
/* WMM configuration */
|
||||
/*
|
||||
* <ini>
|
||||
* WmmIsEnabled - Enable WMM feature
|
||||
* @Min: 0
|
||||
* @Max: 2
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable WMM.
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: WMM
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_WMM_MODE CFG_INI_UINT( \
|
||||
"WmmIsEnabled", \
|
||||
0, \
|
||||
2, \
|
||||
2, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Enable WMM feature")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* 80211eIsEnabled - Enable 802.11e feature
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable 802.11e.
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: 802.11e
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_WMM_80211E_ENABLED CFG_INI_BOOL( \
|
||||
"80211eIsEnabled", \
|
||||
0, \
|
||||
"Enable 802.11e feature")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* UapsdMask - To setup U-APSD mask for ACs
|
||||
* @Min: 0x00
|
||||
* @Max: 0xFF
|
||||
* @Default: 0x00
|
||||
*
|
||||
* This ini is used to setup U-APSD mask for ACs.
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: WMM
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_WMM_UAPSD_MASK CFG_INI_UINT( \
|
||||
"UapsdMask", \
|
||||
0x00, \
|
||||
0xFF, \
|
||||
0x00, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"setup U-APSD mask for ACs")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* ImplicitQosIsEnabled - Enableimplicit QOS
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable implicit QOS.
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: WMM
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_WMM_IMPLICIT_SETUP_ENABLED CFG_INI_BOOL( \
|
||||
"ImplicitQosIsEnabled", \
|
||||
0, \
|
||||
"Enable implicit QOS")
|
||||
|
||||
#define CFG_WMM_PARAMS_ALL \
|
||||
CFG(CFG_QOS_ENABLED) \
|
||||
CFG(CFG_WME_ENABLED) \
|
||||
@@ -789,6 +884,10 @@
|
||||
CFG(CFG_QOS_WMM_MIN_PHY_RATE_AC_BK) \
|
||||
CFG(CFG_QOS_WMM_SBA_AC_BK) \
|
||||
CFG(CFG_QOS_WMM_UAPSD_BK_SRV_INTV) \
|
||||
CFG(CFG_QOS_WMM_UAPSD_BK_SUS_INTV)
|
||||
CFG(CFG_QOS_WMM_UAPSD_BK_SUS_INTV) \
|
||||
CFG(CFG_QOS_WMM_MODE) \
|
||||
CFG(CFG_QOS_WMM_80211E_ENABLED) \
|
||||
CFG(CFG_QOS_WMM_UAPSD_MASK) \
|
||||
CFG(CFG_QOS_WMM_IMPLICIT_SETUP_ENABLED)
|
||||
|
||||
#endif /* __CFG_MLME_FE_WMM_H */
|
||||
|
@@ -883,6 +883,47 @@ QDF_STATUS
|
||||
wlan_mlme_get_wmm_uapsd_bk_sus_intv(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_wmm_mode() - Enable WMM feature
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: pointer to the value which will be filled for the caller
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_wmm_mode(struct wlan_objmgr_psoc *psoc, uint8_t *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_80211e_is_enabled() - Enable 802.11e feature
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: pointer to the value which will be filled for the caller
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_80211e_is_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_wmm_uapsd_mask() - setup U-APSD mask for ACs
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: pointer to the value which will be filled for the caller
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_wmm_uapsd_mask(struct wlan_objmgr_psoc *psoc, uint8_t *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_implicit_qos_is_enabled() - Enable implicit QOS
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: pointer to the value which will be filled for the caller
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_wmm_dir_ac_vo() - Get TSPEC direction
|
||||
* for VO
|
||||
|
@@ -997,6 +997,20 @@ struct wlan_mlme_lfr_cfg {
|
||||
uint32_t roam_preauth_no_ack_timeout;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_wmm_config - WMM configuration
|
||||
* @wmm_mode: Enable WMM feature
|
||||
* @b80211e_is_enabled: Enable 802.11e feature
|
||||
* @uapsd_mask: what ACs to setup U-APSD for at assoc
|
||||
* @bimplicit_qos_enabled: Enable implicit QOS
|
||||
*/
|
||||
struct wlan_mlme_wmm_config {
|
||||
uint8_t wmm_mode;
|
||||
bool b80211e_is_enabled;
|
||||
uint8_t uapsd_mask;
|
||||
bool bimplicit_qos_enabled;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_wmm_ac_vo - Default TSPEC parameters
|
||||
* for AC_VO
|
||||
@@ -1100,6 +1114,7 @@ struct wlan_mlme_wmm_params {
|
||||
uint8_t max_sp_length;
|
||||
bool wsm_enabled;
|
||||
uint32_t edca_profile;
|
||||
struct wlan_mlme_wmm_config wmm_config;
|
||||
struct wlan_mlme_wmm_ac_vo ac_vo;
|
||||
struct wlan_mlme_wmm_ac_vi ac_vi;
|
||||
struct wlan_mlme_wmm_ac_be ac_be;
|
||||
|
@@ -2049,4 +2049,65 @@ ucfg_mlme_get_wmm_uapsd_bk_sus_intv(struct wlan_objmgr_psoc *psoc,
|
||||
return wlan_mlme_get_wmm_uapsd_bk_sus_intv(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_wmm_mode() - Enable WMM feature
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be set from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_get_wmm_mode(struct wlan_objmgr_psoc *psoc, uint8_t *value)
|
||||
{
|
||||
return wlan_mlme_get_wmm_mode(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_80211e_is_enabled() - Enable 802.11e feature
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be set from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_get_80211e_is_enabled(struct wlan_objmgr_psoc *psoc, bool *value)
|
||||
{
|
||||
return wlan_mlme_get_80211e_is_enabled(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_wmm_uapsd_mask() - setup U-APSD mask for ACs
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be set from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_get_wmm_uapsd_mask(struct wlan_objmgr_psoc *psoc, uint8_t *value)
|
||||
{
|
||||
return wlan_mlme_get_wmm_uapsd_mask(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_implicit_qos_is_enabled() - Enable implicit QOS
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be set from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value)
|
||||
{
|
||||
return wlan_mlme_get_implicit_qos_is_enabled(psoc, value);
|
||||
}
|
||||
|
||||
#endif /* _WLAN_MLME_UCFG_API_H_ */
|
||||
|
@@ -1024,6 +1024,71 @@ wlan_mlme_get_wmm_uapsd_bk_sus_intv(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_wmm_mode(struct wlan_objmgr_psoc *psoc, uint8_t *value)
|
||||
{
|
||||
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||
if (!mlme_obj) {
|
||||
mlme_err("Failed to get MLME Obj");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
*value = mlme_obj->cfg.wmm_params.wmm_config.wmm_mode;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_80211e_is_enabled(struct wlan_objmgr_psoc *psoc, bool *value)
|
||||
{
|
||||
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||
if (!mlme_obj) {
|
||||
mlme_err("Failed to get MLME Obj");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
*value = mlme_obj->cfg.wmm_params.wmm_config.b80211e_is_enabled;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_wmm_uapsd_mask(struct wlan_objmgr_psoc *psoc, uint8_t *value)
|
||||
{
|
||||
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||
if (!mlme_obj) {
|
||||
mlme_err("Failed to get MLME Obj");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
*value = mlme_obj->cfg.wmm_params.wmm_config.uapsd_mask;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value)
|
||||
{
|
||||
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||
if (!mlme_obj) {
|
||||
mlme_err("Failed to get MLME Obj");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
*value = mlme_obj->cfg.wmm_params.wmm_config.bimplicit_qos_enabled;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
|
||||
int value)
|
||||
{
|
||||
|
Посилання в новій задачі
Заблокувати користувача