qcacld-3.0: ADD MLME INI items of WMM Config
Add the following WMM config ini configs to MLME cfg: 1. CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME 2. CFG_QOS_WMM_BURST_SIZE_DEFN_NAME 3. CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME 4. CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME Introduce the basic infra APIs related to these configs from mlme. Change-Id: I149971768a7193099926e2778f093dcd073f0461 CRs-Fixed: 2327692
This commit is contained in:
@@ -778,7 +778,7 @@
|
||||
"WmmIsEnabled", \
|
||||
0, \
|
||||
2, \
|
||||
2, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Enable WMM feature")
|
||||
|
||||
@@ -851,6 +851,115 @@
|
||||
0, \
|
||||
"Enable implicit QOS")
|
||||
|
||||
#ifdef FEATURE_WLAN_ESE
|
||||
/*
|
||||
* <ini>
|
||||
* UapsdMask - To setup Infra Inactivity Interval for ACs
|
||||
* @Min: 0
|
||||
* @Max: 4294967295UL
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to setup Infra Inactivity Interval for
|
||||
* ACs.
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: WMM
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_WMM_INACTIVITY_INTERVAL CFG_INI_UINT( \
|
||||
"InfraInactivityInterval", \
|
||||
0, \
|
||||
4294967295UL, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Infra Inactivity Interval")
|
||||
|
||||
#define QOS_CFG CFG(CFG_QOS_WMM_INACTIVITY_INTERVAL)
|
||||
#else
|
||||
|
||||
#define QOS_CFG
|
||||
|
||||
#endif /* FEATURE_WLAN_ESE */
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* burstSizeDefinition - Set TS burst size
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set TS burst size
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: WMM
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_WMM_BURST_SIZE_DEFN CFG_INI_BOOL( \
|
||||
"burstSizeDefinition", \
|
||||
0, \
|
||||
"burst size definition")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* tsInfoAckPolicy - Set TS ack policy
|
||||
* @Min: 0x00
|
||||
* @Max: 0x01
|
||||
* @Default: 0x00
|
||||
*
|
||||
* This ini is used to set TS ack policy
|
||||
* TS Info Ack Policy can be either of the
|
||||
* following values:
|
||||
* enum mlme_ts_info_ack_policy {
|
||||
* TS_INFO_ACK_POLICY_NORMAL_ACK = 0,
|
||||
* TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK = 1,
|
||||
* }
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: WMM
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_WMM_TS_INFO_ACK_POLICY CFG_INI_UINT( \
|
||||
"tsInfoAckPolicy", \
|
||||
0, \
|
||||
1, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"ts info ack policy")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gAddTSWhenACMIsOff - Set ACM value for AC
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set ACM value for AC
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: WMM
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_QOS_ADDTS_WHEN_ACM_IS_OFF CFG_INI_BOOL( \
|
||||
"gAddTSWhenACMIsOff", \
|
||||
0, \
|
||||
"ACM value for AC")
|
||||
|
||||
#define CFG_WMM_PARAMS_ALL \
|
||||
CFG(CFG_QOS_ENABLED) \
|
||||
CFG(CFG_WME_ENABLED) \
|
||||
@@ -888,6 +997,10 @@
|
||||
CFG(CFG_QOS_WMM_MODE) \
|
||||
CFG(CFG_QOS_WMM_80211E_ENABLED) \
|
||||
CFG(CFG_QOS_WMM_UAPSD_MASK) \
|
||||
CFG(CFG_QOS_WMM_IMPLICIT_SETUP_ENABLED)
|
||||
CFG(CFG_QOS_WMM_IMPLICIT_SETUP_ENABLED) \
|
||||
QOS_CFG \
|
||||
CFG(CFG_QOS_WMM_BURST_SIZE_DEFN) \
|
||||
CFG(CFG_QOS_WMM_TS_INFO_ACK_POLICY) \
|
||||
CFG(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF)
|
||||
|
||||
#endif /* __CFG_MLME_FE_WMM_H */
|
||||
|
@@ -1062,6 +1062,48 @@ QDF_STATUS
|
||||
wlan_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value);
|
||||
|
||||
#ifdef FEATURE_WLAN_ESE
|
||||
/**
|
||||
* wlan_mlme_get_inactivity_interval() - Infra Inactivity Interval
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: pointer to the value which will be filled for the caller
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void wlan_mlme_get_inactivity_interval(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t *value);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_is_ts_burst_size_enable() - Get TS burst size flag
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: pointer to the value which will be filled for the caller
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void wlan_mlme_get_is_ts_burst_size_enable(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_ts_info_ack_policy() - Get TS ack policy
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: pointer to the value which will be filled for the caller
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void wlan_mlme_get_ts_info_ack_policy(struct wlan_objmgr_psoc *psoc,
|
||||
enum mlme_ts_info_ack_policy *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_ts_acm_value_for_ac() - Get ACM value for AC
|
||||
* @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_ts_acm_value_for_ac(struct wlan_objmgr_psoc *psoc, bool *value);
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_wmm_dir_ac_vo() - Get TSPEC direction
|
||||
* for VO
|
||||
|
@@ -176,6 +176,16 @@ struct mlme_edca_ac_be {
|
||||
uint32_t be_aifs;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum mlme_ts_info_ack_policy - TS Info Ack Policy
|
||||
* @TS_INFO_ACK_POLICY_NORMAL_ACK:normal ack
|
||||
* @TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK: HT immediate block ack
|
||||
*/
|
||||
enum mlme_ts_info_ack_policy {
|
||||
TS_INFO_ACK_POLICY_NORMAL_ACK = 0,
|
||||
TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mlme_edca_params - EDCA pramaters related config items
|
||||
*
|
||||
@@ -1114,6 +1124,23 @@ struct wlan_mlme_wmm_config {
|
||||
bool bimplicit_qos_enabled;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_wmm_tspec_element - Default TSPEC parameters
|
||||
* from the wmm spec
|
||||
* @inactivity_interval: inactivity_interval as per wmm spec
|
||||
* @burst_size_def: TS burst size
|
||||
* @ts_ack_policy: TS Info ACK policy
|
||||
* @ts_acm_is_off: ACM is off for AC
|
||||
*/
|
||||
struct wlan_mlme_wmm_tspec_element {
|
||||
#ifdef FEATURE_WLAN_ESE
|
||||
uint32_t inactivity_intv;
|
||||
#endif
|
||||
bool burst_size_def;
|
||||
enum mlme_ts_info_ack_policy ts_ack_policy;
|
||||
bool ts_acm_is_off;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_wmm_ac_vo - Default TSPEC parameters
|
||||
* for AC_VO
|
||||
@@ -1206,6 +1233,9 @@ struct wlan_mlme_wmm_ac_bk {
|
||||
* @wme_enabled: AP is enabled with WMM
|
||||
* @max_sp_length: Maximum SP Length
|
||||
* @wsm_enabled: AP is enabled with WSM
|
||||
* @edca_profile: WMM Edca profile
|
||||
* @wmm_config: WMM configuration
|
||||
* @wmm_tspec_element: Default TSPEC parameters
|
||||
* @ac_vo: Default TSPEC parameters for AC_VO
|
||||
* @ac_vi: Default TSPEC parameters for AC_VI
|
||||
* @ac_be: Default TSPEC parameters for AC_BE
|
||||
@@ -1218,6 +1248,7 @@ struct wlan_mlme_wmm_params {
|
||||
bool wsm_enabled;
|
||||
uint32_t edca_profile;
|
||||
struct wlan_mlme_wmm_config wmm_config;
|
||||
struct wlan_mlme_wmm_tspec_element wmm_tspec_element;
|
||||
struct wlan_mlme_wmm_ac_vo ac_vo;
|
||||
struct wlan_mlme_wmm_ac_vi ac_vi;
|
||||
struct wlan_mlme_wmm_ac_be ac_be;
|
||||
|
@@ -2359,4 +2359,69 @@ ucfg_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
|
||||
return wlan_mlme_get_implicit_qos_is_enabled(psoc, value);
|
||||
}
|
||||
|
||||
#ifdef FEATURE_WLAN_ESE
|
||||
/**
|
||||
* ucfg_mlme_get_inactivity_interval() - Infra Inactivity Interval
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be get from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline void
|
||||
ucfg_mlme_get_inactivity_interval(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t *value)
|
||||
{
|
||||
wlan_mlme_get_inactivity_interval(psoc, value);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_is_ts_burst_size_enable() - Get TS burst size flag
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be get from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline void
|
||||
ucfg_mlme_get_is_ts_burst_size_enable(struct wlan_objmgr_psoc *psoc,
|
||||
bool *value)
|
||||
{
|
||||
wlan_mlme_get_is_ts_burst_size_enable(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_ts_info_ack_policy() - Get TS ack policy
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be get from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline void
|
||||
ucfg_mlme_get_ts_info_ack_policy(struct wlan_objmgr_psoc *psoc,
|
||||
enum mlme_ts_info_ack_policy *value)
|
||||
{
|
||||
wlan_mlme_get_ts_info_ack_policy(psoc, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_ts_acm_value_for_ac() - Get ACM value for AC
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: Value that needs to be get from the caller
|
||||
*
|
||||
* Inline UCFG API to be used by HDD/OSIF callers
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_get_ts_acm_value_for_ac(struct wlan_objmgr_psoc *psoc, bool *value)
|
||||
{
|
||||
return wlan_mlme_get_ts_acm_value_for_ac(psoc, value);
|
||||
}
|
||||
|
||||
#endif /* _WLAN_MLME_UCFG_API_H_ */
|
||||
|
Reference in New Issue
Block a user