diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c
index 2ea651c562..df084fc23d 100644
--- a/components/mlme/core/src/wlan_mlme_main.c
+++ b/components/mlme/core/src/wlan_mlme_main.c
@@ -1539,6 +1539,21 @@ static void mlme_init_wep_cfg(struct wlan_mlme_wep_cfg *wep_params)
mlme_init_wep_keys(wep_params);
}
+#ifdef FEATURE_WLAN_ESE
+static void mlme_init_inactivity_intv(struct wlan_objmgr_psoc *psoc,
+ struct wlan_mlme_wmm_params *wmm_params)
+{
+ wmm_params->wmm_tspec_element.inactivity_intv =
+ cfg_get(psoc, CFG_QOS_WMM_INACTIVITY_INTERVAL);
+}
+#else
+static inline void
+mlme_init_inactivity_intv(struct wlan_objmgr_psoc *psoc,
+ struct wlan_mlme_wmm_params *wmm_params)
+{
+}
+#endif /* FEATURE_WLAN_ESE */
+
static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_wmm_params *wmm_params)
{
@@ -1614,6 +1629,14 @@ static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc,
cfg_get(psoc, CFG_QOS_WMM_UAPSD_MASK);
wmm_params->wmm_config.bimplicit_qos_enabled =
cfg_get(psoc, CFG_QOS_WMM_IMPLICIT_SETUP_ENABLED);
+
+ mlme_init_inactivity_intv(psoc, wmm_params);
+ wmm_params->wmm_tspec_element.burst_size_def =
+ cfg_get(psoc, CFG_QOS_WMM_BURST_SIZE_DEFN);
+ wmm_params->wmm_tspec_element.ts_ack_policy =
+ cfg_get(psoc, CFG_QOS_WMM_TS_INFO_ACK_POLICY);
+ wmm_params->wmm_tspec_element.ts_acm_is_off =
+ cfg_get(psoc, CFG_QOS_ADDTS_WHEN_ACM_IS_OFF);
}
static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc,
diff --git a/components/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h b/components/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h
index 8347db5e9d..bbde4a2b5b 100644
--- a/components/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h
+++ b/components/mlme/dispatcher/inc/cfg_mlme_fe_wmm.h
@@ -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
+/*
+ *
+ * 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
+ *
+ *
+ */
+#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 */
+
+/*
+ *
+ * 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
+ *
+ *
+ */
+#define CFG_QOS_WMM_BURST_SIZE_DEFN CFG_INI_BOOL( \
+ "burstSizeDefinition", \
+ 0, \
+ "burst size definition")
+
+/*
+ *
+ * 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
+ *
+ *
+ */
+#define CFG_QOS_WMM_TS_INFO_ACK_POLICY CFG_INI_UINT( \
+ "tsInfoAckPolicy", \
+ 0, \
+ 1, \
+ 0, \
+ CFG_VALUE_OR_DEFAULT, \
+ "ts info ack policy")
+
+/*
+ *
+ * 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
+ *
+ *
+ */
+#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 */
diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h
index 69a949d65f..183137cd24 100644
--- a/components/mlme/dispatcher/inc/wlan_mlme_api.h
+++ b/components/mlme/dispatcher/inc/wlan_mlme_api.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
diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
index 6bf9458732..60221c0d15 100644
--- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
+++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
@@ -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;
diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
index 528ce7df5d..deb524930e 100644
--- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
+++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
@@ -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_ */
diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c
index 2024f95fdc..b305951a2c 100644
--- a/components/mlme/dispatcher/src/wlan_mlme_api.c
+++ b/components/mlme/dispatcher/src/wlan_mlme_api.c
@@ -1527,6 +1527,70 @@ wlan_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
+#ifdef FEATURE_WLAN_ESE
+void wlan_mlme_get_inactivity_interval(struct wlan_objmgr_psoc *psoc,
+ uint32_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");
+ *value = cfg_default(CFG_QOS_WMM_INACTIVITY_INTERVAL);
+ return;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.wmm_tspec_element.inactivity_intv;
+}
+#endif
+
+void wlan_mlme_get_is_ts_burst_size_enable(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");
+ *value = cfg_default(CFG_QOS_WMM_BURST_SIZE_DEFN);
+ return;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.wmm_tspec_element.burst_size_def;
+}
+
+void wlan_mlme_get_ts_info_ack_policy(struct wlan_objmgr_psoc *psoc,
+ enum mlme_ts_info_ack_policy *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");
+ *value = cfg_default(CFG_QOS_WMM_TS_INFO_ACK_POLICY);
+ return;
+ }
+
+ *value = mlme_obj->cfg.wmm_params.wmm_tspec_element.ts_ack_policy;
+
+}
+
+QDF_STATUS
+wlan_mlme_get_ts_acm_value_for_ac(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_tspec_element.ts_acm_is_off;
+
+ return QDF_STATUS_SUCCESS;
+}
+
QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
int value)
{
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index ddd1ffe38e..f499300b04 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -2731,50 +2731,6 @@ enum station_keepalive_method {
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX (1)
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT (0)
-/*
- *
- * 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
- *
- *
- */
-#define CFG_QOS_WMM_BURST_SIZE_DEFN_NAME "burstSizeDefinition"
-#define CFG_QOS_WMM_BURST_SIZE_DEFN_MIN (0)
-#define CFG_QOS_WMM_BURST_SIZE_DEFN_MAX (1)
-#define CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT (0)
-
-/*
- *
- * tsInfoAckPolicy - Set TS ack policy
- * @Min: 0x00
- * @Max: 0x01
- * @Default: 0x00
- *
- * This ini is used to set TS ack policy
- *
- * Related: None.
- *
- * Supported Feature: WMM
- *
- * Usage: Internal/External
- *
- *
- */
-#define CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME "tsInfoAckPolicy"
-#define CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN (0x00)
-#define CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX (0x01)
-#define CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT (0x00)
-
/*
*
* gAddTSWhenACMIsOff - Set ACM value for AC
@@ -2799,30 +2755,6 @@ enum station_keepalive_method {
#define CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT (0)
#ifdef FEATURE_WLAN_ESE
-
-/*
- *
- * InfraInactivityInterval - WMM inactivity interval
- * @Min: 0
- * @Max: 4294967295
- * @Default: 0
- *
- * This ini is used to set the value of inactivity interval for WMM TSPEC.
- *
- * Related: None.
- *
- * Supported Feature: WMM/ESE
- *
- * Usage: Internal/External
- *
- *
- */
-
-#define CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME "InfraInactivityInterval"
-#define CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN (0)
-#define CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX (4294967295UL)
-#define CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT (0) /* disabled */
-
/*
*
* EseEnabled - Enable ESE
@@ -6532,7 +6464,6 @@ struct hdd_config {
bool isFastRoamIniFeatureEnabled;
bool MAWCEnabled;
#ifdef FEATURE_WLAN_ESE
- uint32_t InfraInactivityInterval;
bool isEseIniFeatureEnabled;
#endif
bool isFastTransitionEnabled;
@@ -6554,10 +6485,6 @@ struct hdd_config {
#ifdef FEATURE_WLAN_SCAN_PNO
bool PnoOffload;
#endif
- bool burstSizeDefinition;
- uint8_t tsInfoAckPolicy;
-
- bool AddTSWhenACMIsOff;
/* QDF Trace Control*/
uint16_t qdf_trace_enable_wdi;
diff --git a/core/hdd/inc/wlan_hdd_wext.h b/core/hdd/inc/wlan_hdd_wext.h
index edecdc52d4..a501a49a15 100644
--- a/core/hdd/inc/wlan_hdd_wext.h
+++ b/core/hdd/inc/wlan_hdd_wext.h
@@ -137,12 +137,6 @@ typedef enum {
HDD_WLAN_WMM_STATUS_MODIFY_UAPSD_SET_FAILED = 21
} hdd_wlan_wmm_status_e;
-/** TS Info Ack Policy */
-enum hdd_wlan_wmm_ts_info_ack_policy {
- HDD_WLAN_WMM_TS_INFO_ACK_POLICY_NORMAL_ACK = 0,
- HDD_WLAN_WMM_TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK = 1,
-};
-
/** Enable 11d */
#define ENABLE_11D 1
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index 9e46f9178b..66191857a0 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -683,13 +683,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
#ifdef FEATURE_WLAN_ESE
- REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
- WLAN_PARAM_Integer,
- struct hdd_config, InfraInactivityInterval,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
- CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
- CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
struct hdd_config, isEseIniFeatureEnabled,
@@ -981,13 +974,6 @@ struct reg_table_entry g_registry_table[] = {
cb_notify_set_roam_scan_hi_rssi_scan_params,
eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
- REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
- struct hdd_config, burstSizeDefinition,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
- CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
- CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
-
#ifdef FEATURE_WLAN_RA_FILTERING
REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
@@ -1007,13 +993,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ENABLE_RUNTIME_PM_MAX),
#endif
- REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
- struct hdd_config, tsInfoAckPolicy,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
- CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
- CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
-
REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
struct hdd_config, sta_keepalive_method,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1021,13 +1000,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_STA_KEEPALIVE_METHOD_MIN,
CFG_STA_KEEPALIVE_METHOD_MAX),
- REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
- struct hdd_config, AddTSWhenACMIsOff,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
- CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
- CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
-
/* CFG_QDF_TRACE_ENABLE Parameters */
REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
struct hdd_config, qdf_trace_enable_wdi,
@@ -4029,7 +4001,7 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
pConfig->nhi_rssi_scan_delay;
smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
pConfig->nhi_rssi_scan_rssi_ub;
- smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
+
smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
/* Enable/Disable MCC */
diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c
index f8f4ba8f29..2483c41768 100644
--- a/core/hdd/src/wlan_hdd_wext.c
+++ b/core/hdd/src/wlan_hdd_wext.c
@@ -7810,11 +7810,11 @@ static int __iw_add_tspec(struct net_device *dev, struct iw_request_info *info,
/* validate the ts info ack policy */
switch (params[HDD_WLAN_WMM_PARAM_ACK_POLICY]) {
- case HDD_WLAN_WMM_TS_INFO_ACK_POLICY_NORMAL_ACK:
+ case TS_INFO_ACK_POLICY_NORMAL_ACK:
tSpec.ts_info.ack_policy = SME_QOS_WMM_TS_ACK_POLICY_NORMAL_ACK;
break;
- case HDD_WLAN_WMM_TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK:
+ case TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK:
tSpec.ts_info.ack_policy =
SME_QOS_WMM_TS_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK;
break;
diff --git a/core/hdd/src/wlan_hdd_wmm.c b/core/hdd/src/wlan_hdd_wmm.c
index 0628d32ce2..d6cb20ae15 100644
--- a/core/hdd/src/wlan_hdd_wmm.c
+++ b/core/hdd/src/wlan_hdd_wmm.c
@@ -1022,6 +1022,8 @@ static void __hdd_wmm_do_implicit_qos(struct work_struct *work)
uint32_t rate_ac = 0;
uint16_t sba_ac = 0;
uint32_t uapsd_value = 0;
+ bool is_ts_burst_enable;
+ enum mlme_ts_info_ack_policy ack_policy;
hdd_debug("Entered, context %pK", pQosContext);
@@ -1340,19 +1342,21 @@ static void __hdd_wmm_do_implicit_qos(struct work_struct *work)
break;
}
#ifdef FEATURE_WLAN_ESE
- qosInfo.inactivity_interval =
- (WLAN_HDD_GET_CTX(adapter))->config->InfraInactivityInterval;
+ ucfg_mlme_get_inactivity_interval(hdd_ctx->psoc, &uapsd_value);
+ qosInfo.inactivity_interval = uapsd_value;
#endif
- qosInfo.ts_info.burst_size_defn =
- (WLAN_HDD_GET_CTX(adapter))->config->burstSizeDefinition;
+ ucfg_mlme_get_is_ts_burst_size_enable(hdd_ctx->psoc,
+ &is_ts_burst_enable);
+ qosInfo.ts_info.burst_size_defn = is_ts_burst_enable;
- switch ((WLAN_HDD_GET_CTX(adapter))->config->tsInfoAckPolicy) {
- case HDD_WLAN_WMM_TS_INFO_ACK_POLICY_NORMAL_ACK:
+ ucfg_mlme_get_ts_info_ack_policy(hdd_ctx->psoc, &ack_policy);
+ switch (ack_policy) {
+ case TS_INFO_ACK_POLICY_NORMAL_ACK:
qosInfo.ts_info.ack_policy =
SME_QOS_WMM_TS_ACK_POLICY_NORMAL_ACK;
break;
- case HDD_WLAN_WMM_TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK:
+ case TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK:
qosInfo.ts_info.ack_policy =
SME_QOS_WMM_TS_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK;
break;
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index 3362ae0f91..17cb702701 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -1108,11 +1108,6 @@ typedef struct tagCsrConfigParam {
uint8_t RoamRssiDiff;
bool isWESModeEnabled;
tCsrNeighborRoamConfigParams neighborRoamConfig;
- /*
- * Instead of Reassoc, send ADDTS/DELTS even when ACM is off for that AC
- * This is mandated by WMM-AC certification
- */
- bool addTSWhenACMIsOff;
/*
* Customer wants to optimize the scan time. Avoiding scans(passive)
* on DFS channels while swipping through both bands can save some time
diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h
index 08950c3700..fc2c54c12c 100644
--- a/core/sme/inc/csr_internal.h
+++ b/core/sme/inc/csr_internal.h
@@ -34,6 +34,7 @@
#include "csr_neighbor_roam.h"
#include "sir_types.h"
+#include "wlan_mlme_public_struct.h"
/* define scan return criteria. LIM should use these define as well */
#define CSR_SCAN_RETURN_AFTER_ALL_CHANNELS (0)
@@ -471,11 +472,6 @@ struct csr_config {
struct csr_neighbor_roamconfig neighborRoamConfig;
- /*
- * Instead of Reassoc, send ADDTS/DELTS even when ACM is off for
- * that AC This is mandated by WMM-AC certification
- */
- bool addTSWhenACMIsOff;
/*
* Remove this code once SLM_Sessionization is supported
* BMPS_WORKAROUND_NOT_NEEDED
@@ -1048,7 +1044,7 @@ struct csr_roamstruct {
(eCsrDynamicRoaming == (pSession)->roamingReason) || \
(eCsrReassocRoaming == (pSession)->roamingReason))
#define CSR_IS_ADDTS_WHEN_ACMOFF_SUPPORTED(pMac) \
- (pMac->roam.configParam.addTSWhenACMIsOff)
+ (pMac->mlme_cfg->wmm_params.wmm_tspec_element.ts_acm_is_off = 0)
#define CSR_IS_LOSTLINK_ROAMING(reason) \
((eCsrLostlinkRoamingDisassoc == (reason)) || \
(eCsrLostlinkRoamingDeauth == (reason)))
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 0c1257a76b..a250075432 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -1726,7 +1726,6 @@ static void init_config_param(tpAniSirGlobal pMac)
pMac->roam.configParam.nVhtChannelWidth =
WNI_CFG_VHT_CHANNEL_WIDTH_80MHZ + 1;
- pMac->roam.configParam.addTSWhenACMIsOff = 0;
pMac->roam.configParam.fScanTwice = false;
/* Remove this code once SLM_Sessionization is supported */
@@ -2733,8 +2732,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
sme_debug("nRoamBeaconRssiWeight: %d",
pMac->roam.configParam.neighborRoamConfig.
nRoamBeaconRssiWeight);
- pMac->roam.configParam.addTSWhenACMIsOff =
- pParam->addTSWhenACMIsOff;
pMac->scan.fEnableDFSChnlScan = pParam->fEnableDFSChnlScan;
pMac->scan.scanResultCfgAgingTime = pParam->scanCfgAgingTime;
pMac->roam.configParam.fScanTwice = pParam->fScanTwice;
@@ -2922,7 +2919,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
pParam->allow_tpc_from_ap = cfg_params->allow_tpc_from_ap;
pParam->statsReqPeriodicity = cfg_params->statsReqPeriodicity;
pParam->statsReqPeriodicityInPS = cfg_params->statsReqPeriodicityInPS;
- pParam->addTSWhenACMIsOff = cfg_params->addTSWhenACMIsOff;
pParam->fEnableDFSChnlScan = pMac->scan.fEnableDFSChnlScan;
pParam->fScanTwice = cfg_params->fScanTwice;
pParam->fFirstScanOnly2GChnl = pMac->scan.fFirstScanOnly2GChnl;