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:
Abhinav Kumar
2018-11-05 14:32:49 +05:30
committed by nshrivas
parent 14e7e24803
commit ab57671afd
14 changed files with 356 additions and 134 deletions

View File

@@ -1539,6 +1539,21 @@ static void mlme_init_wep_cfg(struct wlan_mlme_wep_cfg *wep_params)
mlme_init_wep_keys(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, static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_wmm_params *wmm_params) 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); cfg_get(psoc, CFG_QOS_WMM_UAPSD_MASK);
wmm_params->wmm_config.bimplicit_qos_enabled = wmm_params->wmm_config.bimplicit_qos_enabled =
cfg_get(psoc, CFG_QOS_WMM_IMPLICIT_SETUP_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, static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc,

View File

@@ -778,7 +778,7 @@
"WmmIsEnabled", \ "WmmIsEnabled", \
0, \ 0, \
2, \ 2, \
2, \ 0, \
CFG_VALUE_OR_DEFAULT, \ CFG_VALUE_OR_DEFAULT, \
"Enable WMM feature") "Enable WMM feature")
@@ -851,6 +851,115 @@
0, \ 0, \
"Enable implicit QOS") "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 \ #define CFG_WMM_PARAMS_ALL \
CFG(CFG_QOS_ENABLED) \ CFG(CFG_QOS_ENABLED) \
CFG(CFG_WME_ENABLED) \ CFG(CFG_WME_ENABLED) \
@@ -888,6 +997,10 @@
CFG(CFG_QOS_WMM_MODE) \ CFG(CFG_QOS_WMM_MODE) \
CFG(CFG_QOS_WMM_80211E_ENABLED) \ CFG(CFG_QOS_WMM_80211E_ENABLED) \
CFG(CFG_QOS_WMM_UAPSD_MASK) \ 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 */ #endif /* __CFG_MLME_FE_WMM_H */

View File

@@ -1062,6 +1062,48 @@ QDF_STATUS
wlan_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc, wlan_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
bool *value); 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 * wlan_mlme_get_wmm_dir_ac_vo() - Get TSPEC direction
* for VO * for VO

View File

@@ -176,6 +176,16 @@ struct mlme_edca_ac_be {
uint32_t be_aifs; 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 * struct mlme_edca_params - EDCA pramaters related config items
* *
@@ -1114,6 +1124,23 @@ struct wlan_mlme_wmm_config {
bool bimplicit_qos_enabled; 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 * struct wlan_mlme_wmm_ac_vo - Default TSPEC parameters
* for AC_VO * for AC_VO
@@ -1206,6 +1233,9 @@ struct wlan_mlme_wmm_ac_bk {
* @wme_enabled: AP is enabled with WMM * @wme_enabled: AP is enabled with WMM
* @max_sp_length: Maximum SP Length * @max_sp_length: Maximum SP Length
* @wsm_enabled: AP is enabled with WSM * @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_vo: Default TSPEC parameters for AC_VO
* @ac_vi: Default TSPEC parameters for AC_VI * @ac_vi: Default TSPEC parameters for AC_VI
* @ac_be: Default TSPEC parameters for AC_BE * @ac_be: Default TSPEC parameters for AC_BE
@@ -1218,6 +1248,7 @@ struct wlan_mlme_wmm_params {
bool wsm_enabled; bool wsm_enabled;
uint32_t edca_profile; uint32_t edca_profile;
struct wlan_mlme_wmm_config wmm_config; 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_vo ac_vo;
struct wlan_mlme_wmm_ac_vi ac_vi; struct wlan_mlme_wmm_ac_vi ac_vi;
struct wlan_mlme_wmm_ac_be ac_be; struct wlan_mlme_wmm_ac_be ac_be;

View File

@@ -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); 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_ */ #endif /* _WLAN_MLME_UCFG_API_H_ */

View File

@@ -1527,6 +1527,70 @@ wlan_mlme_get_implicit_qos_is_enabled(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS; 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, QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
int value) int value)
{ {

View File

@@ -2731,50 +2731,6 @@ enum station_keepalive_method {
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX (1) #define CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX (1)
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT (0) #define CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT (0)
/*
* <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_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)
/*
* <ini>
* 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
*
* </ini>
*/
#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)
/* /*
* <ini> * <ini>
* gAddTSWhenACMIsOff - Set ACM value for AC * gAddTSWhenACMIsOff - Set ACM value for AC
@@ -2799,30 +2755,6 @@ enum station_keepalive_method {
#define CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT (0) #define CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT (0)
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
/*
* <ini>
* 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
*
* </ini>
*/
#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 */
/* /*
* <ini> * <ini>
* EseEnabled - Enable ESE * EseEnabled - Enable ESE
@@ -6532,7 +6464,6 @@ struct hdd_config {
bool isFastRoamIniFeatureEnabled; bool isFastRoamIniFeatureEnabled;
bool MAWCEnabled; bool MAWCEnabled;
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
uint32_t InfraInactivityInterval;
bool isEseIniFeatureEnabled; bool isEseIniFeatureEnabled;
#endif #endif
bool isFastTransitionEnabled; bool isFastTransitionEnabled;
@@ -6554,10 +6485,6 @@ struct hdd_config {
#ifdef FEATURE_WLAN_SCAN_PNO #ifdef FEATURE_WLAN_SCAN_PNO
bool PnoOffload; bool PnoOffload;
#endif #endif
bool burstSizeDefinition;
uint8_t tsInfoAckPolicy;
bool AddTSWhenACMIsOff;
/* QDF Trace Control*/ /* QDF Trace Control*/
uint16_t qdf_trace_enable_wdi; uint16_t qdf_trace_enable_wdi;

View File

@@ -137,12 +137,6 @@ typedef enum {
HDD_WLAN_WMM_STATUS_MODIFY_UAPSD_SET_FAILED = 21 HDD_WLAN_WMM_STATUS_MODIFY_UAPSD_SET_FAILED = 21
} hdd_wlan_wmm_status_e; } 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 */ /** Enable 11d */
#define ENABLE_11D 1 #define ENABLE_11D 1

View File

@@ -683,13 +683,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX), CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
#ifdef FEATURE_WLAN_ESE #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, REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
struct hdd_config, isEseIniFeatureEnabled, struct hdd_config, isEseIniFeatureEnabled,
@@ -981,13 +974,6 @@ struct reg_table_entry g_registry_table[] = {
cb_notify_set_roam_scan_hi_rssi_scan_params, cb_notify_set_roam_scan_hi_rssi_scan_params,
eCSR_HI_RSSI_SCAN_RSSI_UB_ID), 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 #ifdef FEATURE_WLAN_RA_FILTERING
REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer, 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), CFG_ENABLE_RUNTIME_PM_MAX),
#endif #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, REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
struct hdd_config, sta_keepalive_method, struct hdd_config, sta_keepalive_method,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, 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_MIN,
CFG_STA_KEEPALIVE_METHOD_MAX), 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 */ /* CFG_QDF_TRACE_ENABLE Parameters */
REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer, REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
struct hdd_config, qdf_trace_enable_wdi, 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; pConfig->nhi_rssi_scan_delay;
smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub = smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
pConfig->nhi_rssi_scan_rssi_ub; pConfig->nhi_rssi_scan_rssi_ub;
smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam; smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
/* Enable/Disable MCC */ /* Enable/Disable MCC */

View File

@@ -7810,11 +7810,11 @@ static int __iw_add_tspec(struct net_device *dev, struct iw_request_info *info,
/* validate the ts info ack policy */ /* validate the ts info ack policy */
switch (params[HDD_WLAN_WMM_PARAM_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; tSpec.ts_info.ack_policy = SME_QOS_WMM_TS_ACK_POLICY_NORMAL_ACK;
break; 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 = tSpec.ts_info.ack_policy =
SME_QOS_WMM_TS_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK; SME_QOS_WMM_TS_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK;
break; break;

View File

@@ -1022,6 +1022,8 @@ static void __hdd_wmm_do_implicit_qos(struct work_struct *work)
uint32_t rate_ac = 0; uint32_t rate_ac = 0;
uint16_t sba_ac = 0; uint16_t sba_ac = 0;
uint32_t uapsd_value = 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); hdd_debug("Entered, context %pK", pQosContext);
@@ -1340,19 +1342,21 @@ static void __hdd_wmm_do_implicit_qos(struct work_struct *work)
break; break;
} }
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
qosInfo.inactivity_interval = ucfg_mlme_get_inactivity_interval(hdd_ctx->psoc, &uapsd_value);
(WLAN_HDD_GET_CTX(adapter))->config->InfraInactivityInterval; qosInfo.inactivity_interval = uapsd_value;
#endif #endif
qosInfo.ts_info.burst_size_defn = ucfg_mlme_get_is_ts_burst_size_enable(hdd_ctx->psoc,
(WLAN_HDD_GET_CTX(adapter))->config->burstSizeDefinition; &is_ts_burst_enable);
qosInfo.ts_info.burst_size_defn = is_ts_burst_enable;
switch ((WLAN_HDD_GET_CTX(adapter))->config->tsInfoAckPolicy) { ucfg_mlme_get_ts_info_ack_policy(hdd_ctx->psoc, &ack_policy);
case HDD_WLAN_WMM_TS_INFO_ACK_POLICY_NORMAL_ACK: switch (ack_policy) {
case TS_INFO_ACK_POLICY_NORMAL_ACK:
qosInfo.ts_info.ack_policy = qosInfo.ts_info.ack_policy =
SME_QOS_WMM_TS_ACK_POLICY_NORMAL_ACK; SME_QOS_WMM_TS_ACK_POLICY_NORMAL_ACK;
break; 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 = qosInfo.ts_info.ack_policy =
SME_QOS_WMM_TS_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK; SME_QOS_WMM_TS_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK;
break; break;

View File

@@ -1108,11 +1108,6 @@ typedef struct tagCsrConfigParam {
uint8_t RoamRssiDiff; uint8_t RoamRssiDiff;
bool isWESModeEnabled; bool isWESModeEnabled;
tCsrNeighborRoamConfigParams neighborRoamConfig; 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) * Customer wants to optimize the scan time. Avoiding scans(passive)
* on DFS channels while swipping through both bands can save some time * on DFS channels while swipping through both bands can save some time

View File

@@ -34,6 +34,7 @@
#include "csr_neighbor_roam.h" #include "csr_neighbor_roam.h"
#include "sir_types.h" #include "sir_types.h"
#include "wlan_mlme_public_struct.h"
/* define scan return criteria. LIM should use these define as well */ /* define scan return criteria. LIM should use these define as well */
#define CSR_SCAN_RETURN_AFTER_ALL_CHANNELS (0) #define CSR_SCAN_RETURN_AFTER_ALL_CHANNELS (0)
@@ -471,11 +472,6 @@ struct csr_config {
struct csr_neighbor_roamconfig neighborRoamConfig; 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 * Remove this code once SLM_Sessionization is supported
* BMPS_WORKAROUND_NOT_NEEDED * BMPS_WORKAROUND_NOT_NEEDED
@@ -1048,7 +1044,7 @@ struct csr_roamstruct {
(eCsrDynamicRoaming == (pSession)->roamingReason) || \ (eCsrDynamicRoaming == (pSession)->roamingReason) || \
(eCsrReassocRoaming == (pSession)->roamingReason)) (eCsrReassocRoaming == (pSession)->roamingReason))
#define CSR_IS_ADDTS_WHEN_ACMOFF_SUPPORTED(pMac) \ #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) \ #define CSR_IS_LOSTLINK_ROAMING(reason) \
((eCsrLostlinkRoamingDisassoc == (reason)) || \ ((eCsrLostlinkRoamingDisassoc == (reason)) || \
(eCsrLostlinkRoamingDeauth == (reason))) (eCsrLostlinkRoamingDeauth == (reason)))

View File

@@ -1726,7 +1726,6 @@ static void init_config_param(tpAniSirGlobal pMac)
pMac->roam.configParam.nVhtChannelWidth = pMac->roam.configParam.nVhtChannelWidth =
WNI_CFG_VHT_CHANNEL_WIDTH_80MHZ + 1; WNI_CFG_VHT_CHANNEL_WIDTH_80MHZ + 1;
pMac->roam.configParam.addTSWhenACMIsOff = 0;
pMac->roam.configParam.fScanTwice = false; pMac->roam.configParam.fScanTwice = false;
/* Remove this code once SLM_Sessionization is supported */ /* 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", sme_debug("nRoamBeaconRssiWeight: %d",
pMac->roam.configParam.neighborRoamConfig. pMac->roam.configParam.neighborRoamConfig.
nRoamBeaconRssiWeight); nRoamBeaconRssiWeight);
pMac->roam.configParam.addTSWhenACMIsOff =
pParam->addTSWhenACMIsOff;
pMac->scan.fEnableDFSChnlScan = pParam->fEnableDFSChnlScan; pMac->scan.fEnableDFSChnlScan = pParam->fEnableDFSChnlScan;
pMac->scan.scanResultCfgAgingTime = pParam->scanCfgAgingTime; pMac->scan.scanResultCfgAgingTime = pParam->scanCfgAgingTime;
pMac->roam.configParam.fScanTwice = pParam->fScanTwice; 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->allow_tpc_from_ap = cfg_params->allow_tpc_from_ap;
pParam->statsReqPeriodicity = cfg_params->statsReqPeriodicity; pParam->statsReqPeriodicity = cfg_params->statsReqPeriodicity;
pParam->statsReqPeriodicityInPS = cfg_params->statsReqPeriodicityInPS; pParam->statsReqPeriodicityInPS = cfg_params->statsReqPeriodicityInPS;
pParam->addTSWhenACMIsOff = cfg_params->addTSWhenACMIsOff;
pParam->fEnableDFSChnlScan = pMac->scan.fEnableDFSChnlScan; pParam->fEnableDFSChnlScan = pMac->scan.fEnableDFSChnlScan;
pParam->fScanTwice = cfg_params->fScanTwice; pParam->fScanTwice = cfg_params->fScanTwice;
pParam->fFirstScanOnly2GChnl = pMac->scan.fFirstScanOnly2GChnl; pParam->fFirstScanOnly2GChnl = pMac->scan.fFirstScanOnly2GChnl;