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;